传输GE口MTU值问题导致S9700下部分用户无法打开部分网页

问题描述

传输GE口MTU值问题导致S9700下部分用户无法打开部分网页

1. 组网:分中心某局点采用使用S9706交换机作为网关,网关上运行了MPLS 协议,通过传输专线与远端机房路由器连接。
2. 故障现象:S9706下挂的部分PC机能正常访问部分网页,其余的无法打开面,例如测试时使用的www.huawei.com等网站可打开,打不开www.sohu.com、www.online.sh.cn等网站,但这些网站能ping 通小包。

告警信息

处理过程

① 组网如上文中拓扑图示意,首先推断是S9706和NE40E 互通问题,经检Ping等基本检查,发现链路连通性良好,无丢包现象,初步判断上层协议问题。
② 尝试用不同PC机上网测试,但无论用实施工程师、客户工程师以及其他笔记本电脑都出现只能打开部分网站的情况,将S9706 和NE40E的GE链路的MPLS LDP disable,所有PC上网正常。恢复配置,重现故障情况,从PC  Ping 外网,发现大于1468bytes的报文无法ping 通。
③ 怀疑是MPLS 的MTU问题,修改S9706的GE端口的物理MTU为1600,MPLS MTU 为1522,inet MTU保持1500,故障现象依旧。
④ 参考一个MPLS MTU问题的案例解决方法,尝试调整GE口物理MTU设置为1522,inet MTU为1500,MPLS的MTU为1508,NE40E上GE口 MPLS MTU设置为1508,inet MTU 为1500,物理端口MTU 为1522,两端对应配置完毕,故障现象依旧。
⑤ 继续加大S9706和NE40E链路两端端口的物理MTU、MPLS MTU,故障现象依旧。
⑥ 故障时,在S9706上做端口镜像,抓上行GE口的双向报文。 有特定PC用户的TCP syn报文,网站回应tcp ack报文;PC发送http get报文,但是没有收到网站的http continuation报文。而如果不用浏览器访问,直接用PC机ping正常,且回程报文DF字段一般没有置位。如果做ping大于1468 bytes的报文,只有发出的echo request报文,没有echo reply报文。判断确实是MTU的限制问题,但是与两端设备上的值无关。
⑧ 重新与用户确认组网,经核实,组网实际线路连接中间有Z厂商的传输,而进一步确认,该传输设备GE口目前MTU为1500。
⑨ 经过上述⑧的确认,最终我们对于工程师电脑和客户电脑进行报文比较分析,发现工程师的电脑发出的SYN携带的MSS=1260,网站ACK携带的一般是1460,www.huawei.com网站回应的是536。客户工程师的电脑发出的SYN携带的MSS=1460,而网站回的ACK携带的是空值。考虑到MSS=MTU-20(TCP header)-20(IP header)以及传输MTU=1500,判断丢包发生在传输上。可以采取如下两种方法之一解决:
1) 修改S9706和NE40E互连两端口的MTU调整为1496或1492(是否有VLAN考虑)
2) 是否有条件改为裸光纤连接两个设备
经过协商,用户采用了第二种方法整改后,所有PC访问网站正常。
12、经传输核实,该套Z公司传输设备MTU固定为1500,不能调整,导致问题发生。

根因

①  PC访问网站时,是不对称的流量和报文,上行流量小,报文小(一般只有几十到几百bytes)。本次排障使用了工程师自己的笔记本电脑和用户技术人员的PC机,其中工程师的电脑可以正常打开网页,客户的PC机无法打开网页。
② PC和网站建立FTP连接时,SYN报文中会携带MSS(Maxitum Segment Size)参数,用于协商两端最大的报文长度,MSS=MTU(Maxitum Transmission Unit)-20(TCP header)-20(IP header),取两者最小值。如果网站(server)同意PC的MSS参数,则ACK  报文中就不会携带该参数,否则携带自己的MSS,以供PC(client)抉择。
③ 一旦两端协商好MSS值后,就会以这个为最大报文发送,避免分片。
④ 整个过程网络层设备都使能了MPLS,这样链路层GE净荷需要支持最小1504 bytes。如果服务器端以1460 bytes返回报文,送到Ethernet接口的就是1504,而此时传输MTU为1500,传输一般不能识别MPLS协议,一般也不支持分片,此时报文就会被丢弃。
⑤ 而工程师的电脑访问之所以正常,就在于协商的MSS不会大于1260 bytes。
⑥ 所有电脑都能访问www.huawei.com,就在于协商的MSS不会大于www.huawei.com的值。

建议与总结

在网络上由于VLAN tag,VLAN嵌套,MPLS label等标签技术的应用,数据包的包头长度增加,导致数据包的整体长度增加,此时容易出现本案例中遇到的某些网页可以访问,某些网页不能访问的问题,要解决上述问题,主要的手段就是调整转发路径上各设备包括传输设备的MTU,以适应业务的需求。
上一篇 Oracle系列之二:Oracle数据字典
下一篇 Linux---线程---全面讲解