我正在 Ubuntu 14.04LTS 上设置 VPN,它使用 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 服务器 ping 我的客户端,我确定它的 MTU 约为 1380。VPN 服务器的 MTU 为 1500。
这是怎么回事应该可以正常工作吗?MTU 可能会有所不同,因此如果 BBC 设置了不分段,请问应该如何处理?
我认为,如果设置了不分片,则所有内容都应就最小的通用 MTU 达成一致。我能找出谁行为不当吗?
答案1
问题原来是防火墙(不是 Ubuntu ufw,而是我们 IT 部门提供的服务器外部的防火墙)不允许 ICMP 数据包传出。
一旦启用该功能,MTU 路径发现(或任何正在发生的事情)就开始工作,一切正常。