`
liyx985
  • 浏览: 215174 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

TTL expired in transit

 
阅读更多

转:

 昨晚上一同事在营业厅报说整理机柜之后无法上网,路由器背后E0/E1模块没有信号,指示灯不亮,全厅的机器无法获取IP地址,设定固定IP后可PING通路由器。
    自己随即PING营业厅路由器IP地址,但是给了我这样一个回应消息:TTL expired in transit。用google搜索了关于此消息的条目,大概明白了是怎样一回事。
 

    在TCP/IP网络中,网络层并不对数据包进行可靠性传输保证,只通过ICMP报文提供反馈机制(例如:差错控制)。PING命令就是ICMP的请求/响应报文,也是网络最常用的测试手段。通常使用PING命令测试互通性时有以下几种消息反馈:
1、Request Time Out
2、Destination Unreachable
3、TTL Expired in transit
情况1:当信源机PING某信宿机时,信源机在一段时间内(信源机发送ICMP请求报文后,会启动定时器0)无法收到ICMP响应报文,就会产生该种情况。出现上述问题的原因在于,信源到信宿的路由正常,而信宿到信源无可用通路。
情况2:当信源机到信宿机无可用通路时,就会产生该种原因。
情况3:当信源机发送IP数据包时(ICMP是被直接封装在IP包中),会加上包的TTL(Time to Live)时间,数据包在每经过一个路由器时,路由器会将包的TTL时间减1,如果在ICMP请求报文未到信宿机之前,该数据包的TTL为0,则相应的网关丢弃该报文,同时向信源机发送ICMP的超时报文,在信源机上应将显示TTL Expired in transit消息。该问题主要是在网络内部出现了路由循环造成数据包无法到达信宿机,可使用Tracert跟踪,判断故障出处(使用该命令时最好在主机上完成)。

注:某些路由器对包的TTL时间并不是减1,但一般情况是这样。
方法:如果正常PING通某主机的情况下,可简单从回应信息中分析数据包所经过的路由跳数
i.e. replay xxx.xxx.xxx.xxx: byte=xxx time=xxxms ttl=xxx
用256减去该条信息中TTL的值,即可得所经的路由跳数,如TTL时间过小,则可能网络中出现短暂的路由环路。
在配置静态路由时易出现该种情况,动态路由协议中RIPV1易出现,而RIPV2和OSPF不易出现。
 
处理过程:
1、利用tracert命令跟踪到目标主机之间所经过的路由器,发现包在两台路由器之间来回循环;
2、检查有问题的路由器的路由表,路由设置有问题,造成ICMP请求报文在两台路由器之间来回振荡;
3、将有问题的路由删除,重新配置正确的路由,恢复正常。

 
    按照此文中所述,对营业厅路由器作了一个tracert,结果发现在中途两个节点(*.*.24.130,*.*.24.133)之间反复来回震荡,ICMP包在TTL存活时间耗尽之后被丢弃。
    打电话询问了系统监控和传输部门,传输在营业厅对线路进行测试之后最终发现是位于广州机房的设备出了问题。机房对设备检修之后营业厅线路传输终于恢复正常。
 
    晚上10点到凌晨两点半,这活还是少干为妙。到现在还是狂犯困!晕啊~~
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics