解决方法:
假设PC建立了到SERVER的HTTP连接,PC希望从SERVER下载一个大的网页。SERVER接收到PC的请求后开始发送大网页文件,其IP的DF位置1,不允许分片,IP报文长度为1500字节。到达VPN网关2的外网口(以太)后,VPN网关2发现其长度超过了1500个字节,于是将其丢弃,并给SERVER发回一个目的地址不可达的ICMP信息,同时指出“MTU of next hop: 1500”。PC接收到该消息后,又按照1500字节对外发送,又被丢弃,于是就形成了循环,无法通讯。
根据上述的分析,很容易得到如下解决方式,在VPN网关2的出接口设置MTU为1500-4-20=1476,这样VPN网关2返回ICMP不可达消息时将给出”MTU of next hop: 1476”。SERVER将以1476作为自己的最大MTU对外发送,到达VPN网关1,封装GRE和外层IP头后就不会超过1500而顺利发到对端。这个是下载问题的解决,如果要解决上传的问题,在相应方向的接口修改MTU即可。当然也可以修改TCPMSS,不过这个是影响到TCP的windows从而减小了包的长度。另外修改操作系统的最大MTU值也是可行的,不过比较麻烦。