TTL超时是谁惹得祸?

发布时间:  2012-07-18 浏览次数:  93 下载次数:  0
问题描述

某客户网络: PC---SW1---USG---SW2---Server                   
                                      |           |            |
                                    
SW3---USG---SW4

DMZ区有多台Server,PC访问Server所有应用正常,但是Ping Server时返回“TTL expired in transit”

告警信息
处理过程

1、建议客户全部改为一对一映射,公网IP问题客户不予接受

2、增加 nat server protocol icmp global IP_A  inside IP_B  vrrp 3,解决路由环路问题。

根因

默认情况下网络中数据包的TTL值是16,也就是说如果一个数据包经过了16个路由器或设置了路由功能的计算机后仍然不能顺利到达目的地的话,此数据包将被丢弃,这就是TTL超时。

1、根据上面思路,首先怀疑网络环路,分别断开主用和备用线路,问题依旧,排除了双机的问题。

2、进一步测试,发现有部分Server可以Ping通,部分不能Ping通。

      经过分析NAT Server配置后终于发现问题原因:

nat server protocol tcp global IP_A 80 inside IP_B 80 vrrp 3--------端口映射                                                    nat server protocol global IP_C  inside IP_D vrrp 3 --------一对一地址映射     

PC Ping IP_C是ICMP报备映射成IP_D,可以Ping通;而PC Ping IP_A,没有针对ICMP的映射,又路由回SW1,在SW和USG之间出现环路,不可以Ping通。

建议与总结

该种配置问题应该普遍出在,友商产品大都这样实现,不属于BUG。

在USG上配置黑洞路由也可解决该问题,此时在Ping的结果变为 Time out 。

END