故障表现:部分网页显示不全,如农业银行和微信公众号不显示图片,截图如下。


猜测故障原因是MSS设置不正确,而服务器有设置不允许分片,所以导致部分数据包被丢包,最终结果如上。由于MSS属于Option,非强制要求。
修改方法如下:
1,登录原有光猫,查看原有MTU值,如下图可见MTU=1492。

2,修改ROS上pppoe虚接口的MTU设置。将MAX MTU参数设为第一步在光猫中看到的值。如果pppoe已拨通,Actual MTU值与光猫看到的值不一致,则不要修改Max MTU,以Actual MTU为准。强行修改可能会导致拨号不通或不能上网。修改MTU会导致pppoe线路断开。

3,IP–>Firewall–>Mangle中修改ipv4 mss。新增一条规则:
General标签中Chain选择forward。Protocol选择tcp。

Advance标签中设置TCP Flags为syn。

Action标签中设置动作为change MSS。New TCP MSS设为1440。MSS值计算方法是MTU-40,即IP报头20,TCP报头20。
如果MTU是1492,则对应MSS是1492-40=1452。

4,IPv6–>Firewall–>Mangle中修改ipv6 mss,如果没有ipv6此步骤可忽略。新增一条规则:
General标签中Chain选择forward。Protocol选择tcp。

Advance标签中设置TCP Flags为syn。

Action标签中设置动作为change MSS。New TCP MSS设为1420。MSS值计算方法是MTU-60,即IPv6头部固定长度40,TCP报头20。
如果MTU是1492,则对应MSS是1492-60=1432。
IPv6 MSS最小是1280,参考RFC-2460.

配置完成后不能显示图片的问题即恢复正常。
本文链接地址: https://danteng.org/ros-change-mtu-mss-solve-page-problems/