ne20e 因为MTU导致mpls vpn经过路由器内网网站打不开

发布时间:  2014-12-23 浏览次数:  295 下载次数:  0
问题描述
1、客户的网络走的是mpls vpn,经过ne20e内网网站打不开,但是可以ping通
拓扑大致如下:
pc----ne20e-----s8500-----内网-----网站  (ne20e作为PE,s8500做为P,内网设备为不可操作)

2、但是如果将网络拓扑该为如下(不经过ne20e),网站可以打开,也可以ping通
pc-----s8500-----内网-----网站   (S8500作为PE,内网设备为不可以操作)

3、怀疑是ne20e设备引起的,怀疑在ne20e上丢掉了报文。
告警信息
处理过程
1、因为不正常情况下可以ping通网站服务器,尝试ping大包,测试如下:
PC直接ping 网站服务器,通
PC上带报文大小ping 1468 通
PC上带报文大小ping 1469 不通

2、ping 1469字节不通,而mpls vpn也是额外会增加字节,怀疑就与MTU有关系。

3、抓包分析:(在s8500连接内网的接口上抓包),对比正常和不正常的情况:


从抓包的对比来看,正常的包在pc发起了get http报文之后,s8500后面收到了1518字节的tcp分片数据报文(服务器分的片)和http报文
不正常的包在pc发起了get http 报文之后,s8500就没有收到任何数据报文
 
为什么会没收到?找到一个相同的tcp 3次握手报文



正常的s8500收到的只有一层标签,70字节。
不正常的s8500收到的有两层标签,多了4字节,为74字节。

多的这个4个字节完全可以让远端设备因为超过mtu值而将tcp数据报文或者http报文不转发过来。

正常收到的tcp数据报文为1518,那么不正常的时候s8500应该收到的tcp数据报文为1522


总结:
1、数据包是被s8500之外直连的mpls设备丢掉的
2、丢掉的原因是因为多了mpls一层标签,4个字节
3、丢数据的设备的mtu应该是1500或者1504 (就看他对mpls字段算不算mtu里了)。且不分片
4、跟ne20e没关系
5、查相关资料,s8500属于老设备,本身也不支持分片,如果收到自己无法处理的大数据的时候,也会将报文丢掉。

根因
解决方案
1、让远端设备强行分片,或者将mtu值改大,+4个字节。
2、网络不要这么组网,不要有s8500,不要新加P设备,这样就不会出现两层标签。也就是ne20e直接挂在出口(做为PE设备)。
建议与总结

END