NE40路由器配置GRE后业务不通

发布时间:  2015-05-11 浏览次数:  374 下载次数:  0
问题描述

版本信息:Version 5.30(NE40&80 V300R002C01B599)
组网概述:PC-------NE20----Network------NE40----------WebServer
故障现象:PC无法打开WebServer的网页,但ping大包都可以ping通

告警信息

处理过程

1、NE20与NE40之间不启用GRE tunnel的时候,可以正常打开网页
   说明无法打开网页的问题与GRE相关
2、恢复两端的GRE tunnel,在NE40上调整PC网段路由下一跳不走tunnel,修改成下一跳为物理接口
   此时网页可以正常打开,说明问题很可能与NE40的tunnel处理相关
3、在NE20上调整上行路由下一跳不走tunnel,修改成下一跳为物理接口;同时NE40下行还是走tunnel
   此时网页仍然无法打开
4、从上可以判断出问题处在NE40 对Tunnel的处理上
5、抓包后发现报文TCP报文长度显示为1460,计算一下发现如果1460+20字节的TCP头+20字节的IP头就已经是1500了,而从NE40出去的报文应该是GRE封装,因此报文长度应该是1532了。
6、修改接口的MTU值为1532后,两端都走GRE tunnel
   网页可以正常打开

根因

原因分析:NE40E启用GRE后,报文长度超过接口MTU 1500从而导致业务异常。

解决方案

    抓包后发现报文TCP报文长度显示为1460,计算一下发现如果1460+20字节的TCP头+20字节的IP头就已经是1500了,而从NE40出去的报文应该是GRE封装,因此报文长度应该是1532了。修改接口的MTU值为1532后,问题解决。

建议与总结

    GRE是单向Tunnel,在故障排除的时候需要从两个方向来排除。由于GRE封装会增加报文的长度,因此MTU也是考虑的一方面,通过抓包分析一下报文长度确认报文从出接口出去是正常的。

END