Я настраиваю VPN на Ubuntu 14.04LTS, который использует IPSEC и выполняет NAT для клиентов. Он в основном работает - я могу подключиться к нему с клинета (устройства Android) и просмотреть (например) www.google.com.
Однако я не могу просматривать www.bbc.co.uk. Когда я пробую, мой VPN-сервер получает ответ от www.bbc.co.uk с установленным битом запрета фрагментации и отбрасывает его. Wireshark показывает многие из них:
119 7.904053000 212.58.246.95 MY.IP.MY.IP TCP 1414 [TCP segment of a reassembled PDU]
120 7.904094000 MY.IP.MY.IP 212.58.246.95 ICMP 590 Destination unreachable (Fragmentation needed)
Выполнив эхо-запрос моего клиента с сервера VPN, я убедился, что его MTU составляет около 1380. MTU сервера VPN составляет 1500.
Как это предполагаемый работать пожалуйста? MTU могут различаться, поэтому, если BBC настроен без фрагментации, пожалуйста, как с этим поступить?
Я бы предположил, что, если установлен параметр not-fragment, все должно согласиться с наименьшим общим MTU. Могу ли я определить, кто плохо себя ведет?
Проблема оказалась в том, что брандмауэр (не Ubuntu ufw, а брандмауэр за пределами моего сервера, предоставленный нашим ИТ-отделом) не пропускал пакеты ICMP.
Как только это было включено, обнаружение пути MTU (или что-то еще) начало работать, и все в порядке.