某运营商全省OA系统故障分析与处理

2015-11-27

某运营商OA系统无法访问到集团的OA人力资源系统。具体现象是从省公司访问集团OA人力资源系统正常,而13个地州分公司通过省公司访问集团OA人力资源系统无法打开页面。
故障分析与处理
从 维护的角度上考虑,我们所维护的生产环境正常情况下都是已经搭建OK的。那么首先要搞清楚此问题是突然出现的还是从建环境初期一直存在而未予以解决。经与 客户沟通方知此问题属于历史遗留问题,从建环境初期就存在。得知此结果后心里多少感觉到压力山大。俗话说有压力就有动力。先淡定淡定稳稳神,遇到问题要沉 着冷静的去面对去思考。
   从故障现象描述,首先要考虑网络路径是否可达。为此,使用了网络上常用的2个检测工具 ping 与traceroute。
?用traceroute对目的(集团OA)地址进行跟踪结果显示正常。这说明路由正常。
?接下来,使用带包长度的ping测方法测试整个链路上最小MTU值。(mtu是网络传输最大报文包)
ping具体方法是:在键入ping命令时设置-f和-l参数。
-f参数会使Ping工具发送设置了IP不分段比特的ICMP回应数据包。
-l参数设置ICMP回应数据包的有效负载大小。在-l参数后键入一个数字,以指定此大小。
以太网默认MTU为1500Bytes,因此在最佳情况下,ping实用工具可以回应一个不分段的数据包的大小为1472Bytes(即1500?Bytes减去28Bytes,其中IP首部20个Bytes,ICMP首部8个Bytes)。具体ping命令的语法为:
ping +IP地址?–f?–l?1472
链路上的MTU默认,按最佳情况下数据包的大小ping测,测试结果如下:

上图表明用1470bytes有效负荷在链路上传输时需要分片。另一方面也说明链路的MTU值不够。 把有效负荷下调,调至当前链路最大支持的有效负荷。如图:

上图表明此链路上最大有效负荷为1464Bytes   从此数据可以算出PC(分公司)端访问集团时发出的包的总大小:有效负荷1464Bytes+IP数据包包头的大小20Bytes和TCP数据段的包头 20Bytes =1504Bytes  此值超过了链路上默认的MTU值 。因此需要调整链路的MTU值。
基于上述思路,将OA业务相关联端口的MTU值调整为MTU=1600。调整后测试现象依旧。
经过对网络环境仔细分析,此网络环境涉及到MPLS方式组网。
在涉及mpls l3vpn、pppoe+nat、ipsec、l2tp、gre等组网,通常由于报文太大需要分片,一般可以通过设置tcp mss解决。(MSS:Maxitum Segment Size 最大分段大小)。
关于TCP MSS值,下面举例说明
拓扑环境:
Pc(1.1.1.1)---Router---internet---www.server(3.3.3.3)
建 立tcp连接的两端在三次握手时会协商tcp mss大小,具体如下:pc1发出syn报文,其中option选项填充的mss字段一般为1460,同样www.server收到syn报文后,会发送 syn+ack报文应答,option选项填充的mss字段也为1460;协商双方会比较syn和syn+ack报文中mss字段大小,选择较小的mss 作为发送tcp分片的大小。通过比较,协商双方的tcp mss都是1460,所以会选择1460做为发送TCP分片的大小。

现假设在router的内网口修改tcp mss 值为1200
路由器收到www.server的syn+ack报文时会修改option 选项中的mss字段为1200,然后再转发给PC1,PC1收到报文后认为对端的tcp mss为1200,这样PC1发送数据给www.server时会以1200作为分片大小;但路由器修改tcp mss为1200的操作www.server是不知道的,因此www.server还会以1460作为分片大小发送报文。
   由于之前修改MTU的方案一直没有成功,现尝试通过修改MSS值来达到与修改MTU值一样的效果。具体修改多少合适呢?设备上默认的MSS为1460。各 分公司上连路由器都处于MPLS中的PE角色。各分公司的PC处于CE角色。那么在MPLS网络环境中入口的PE设备会为CE上来的IP包分配压入2个标 签,每一个标签长度为4Bytes,二个标签长度为8Bytes。 用默认值减去二个标签的长度(1460-8=1452)做为此次tcp mss值。
   在分公司上连设备(cisco7206)上开启一个测试端口,把OA相关的配置复制到此接口下,然后接上PC测试。 在不修改接口MSS值的环境下测试现象依旧。修改接口MSS值为1452后能正常访问集团OA人力资源系统。删除测试端口配置直接在OA业务端口下进行 tcp mss的修改,具体修改方法是进入到相应的业务接口下输入:ip tcpadjust-mss1452 经修改后测试正常。至此故障排除心中的大石总算落地。
总结
   工作中常常会遇到各种各样的疑难问题,首先要保持良好的心态,积极的迎接挑战。其次是处理问题的方法,由浅入深、由易到难、逐层分析、抽丝剥茧让故障点无处藏身。次之,每处理完一个故障就是一次宝贵的经验,一定要做好相关的笔记工作


本网站由阿里云提供云计算及安全服务 Powered by CloudDream