LoveUnix » 网络 & 安全 » 真的ping不通?
让LU留住您的每

一天 让LU博客留住您的每一天
2004-5-18 20:57 豆豆
Ping这个词源于声纳定位操作,本意是指来自声纳设备的脉冲信号.在网络设备中Ping几乎是使用频率最高的网络测试命令。本文将详细介绍Ping命令的基本原理、相关参数、使用技巧及其注意事项。<br />一、Ping工作原理<br />提到Ping命令,就不能不介绍ICMP 。 因特网控制信息协议ICMP通常被认为是IP层的一个组成部分,用于传递差错报文和其它需要注意的信息。ICMP报文是在IP数据包内部传输的。<br />二Ping命令的格式和参数<br />Ping命令格式如下:(in windows os , may differ in various router os , unix)<br />Ping [-n number][-w number][-l number] ip-address<br />-n Ping报文的个数缺省值是5个<br />-w 设置Ping报文的超时时间以毫秒为单位缺省值为2000<br />-l 设置Ping报文的大小缺省值是32 byte<br /><br />分析Ping 202.101.6.21命令,虽然没有附加参数,实际使用的是缺省值。路由器将发送5个大小为32个字节的ICMP报文,并认为正常的相应时间为2000毫秒,而这些缺省参数通常为我们所忽视.<br /><br /><br />1 真的Ping不通?<br />案例一:工程师小L在配置完一台路由器之后执行Ping命令,检测链路是否通畅。发送了五<br />个报文都没有Ping通,于是检查双方配置命令和路由表,一直没有找出错误。最后无奈之下重复执行了一遍相同的Ping命令,发现此次的五个报文中竟有两个Ping通了。原来线路质量不好,存在着严重的丢包现象。<br />点评:小L被Ping命令的缺省参数-n给迷惑了。Ping不通的背后可能隐藏着丢包现象。毕竟<br />配置错误和线路质量不好的解决方法大相径庭。有了此次教训之后,小L再遇到Ping不通的情况都会将命令多执行一遍,并加上参数-n 10 。这意味着连续Ping10个报文来检验是否存在丢包现象。或者干脆用-t, 一路ping下去。<br />命令格式: Ping -n 10 ip-address<br />案例二:工程师小L配置完一台路由器之后,执行Ping命令访问internet某站点IP地址,没有<br />Ping通。有了上次教训小L再一次Ping了10个报文仍没有响应。于是小L断定为网络故障。在费<br />劲周折检查了配置链路后仍没有发现任何可疑之处。最后小L采取逐段检测法对链路网关进<br />行逐级测试。发现每段都可Ping通但响应时间越来越长最后一个网关的响应时间已达到<br />1800ms左右。会不会是由于超时而导致显示为Ping不同呢?受此启发小L将Ping命令回显时间改为4000ms。 Ping通了!观察发现所有报文响应时间都在2100ms左右。<br />点评:这一次小L被Ping命令的另一个缺省参数-w 给迷惑了。Ping不通的背后可能隐藏着<br />超时处理。系统缺省认为Ping报文应该在2000ms内有回应,如果超出该时间,即使有回应报文送达,也认为Ping不通。有了这次教训之后,小L再遇到Ping不通的情况都要把命令再敲一遍并加上参数-n 10 -w 4000 。这意味着连续Ping10个报文,每个报文的超时设置为4000ms ,以此检验是否存在丢包和响应时间过长等现象。<br />命令格式:Ping -n 10 -w 4000 ip-address<br />2 真的能Ping通?<br />案例一:工程师小L在一次工程中需要在ATM接口上运行OSPF协议。由于该ATM接口只<br />有一个对端便将OSPF接口类型改为point-wo-point 。ATM顺利调通之后可正常Ping通对端地<br />址,但是OSPF却无法正常运行。<br />系统配置如下:(华为)<br />interface Atm2/0/0.100<br />ip address 202.111.128.214 255.255.255.252<br />map-group atmzz<br />atm pvc 1 163 199 aal5snap ipoa ubr 155000 155000 32<br />ip ospf network point-wo-point<br />map-list atmzz<br />ip 202.111.128.213 atm-vc 1<br />查看调试信息发现,双方都没有收到对端发来的Hello报文。打开Debug开关,发现本端发送<br />的Hello报文由OSPF交给IP层,但IP层交给ATM层时却被ATM层丢弃了。细查原因原来OSPF<br />Hello报文为多播报文,类似广播报文,而ATM的缺省设置不支持发送广播报文,而需要特殊配置。将配置改为ip 202.111.128.213 atm-vc 1 broadcast ,增加broadcast参数后支持广播报文的发送,问题解决。<br />点评:Ping命令只能用于测试单播报文而不能测试广播和多播报文。<br />案例二:小L在一次工程中需要在NE路由器和JUNIPER路由器之间通过POS接口相连<br />并运行OSPF路由协议。配置完成后一切正常,割接后设备运行稳定未出现任何故障。但两个<br />月之后用户突然反馈网络中断。小L登录路由器后,观察POS接口连接正常,可以Ping通对端地址,但OSPF协议中断。接着按照以下步骤进行查询:<br />查看邻居状态,STATE处于exstart状态;打开NE路由器Debug 开关,查看相应报文信息,<br />发现相互之间可以收到Hello报文,但是NE发送DD报文后却一直没有收到对方回应的<br />DD报文。<br />打开JUNIPER路由器Debug开关,发现对方收到NE DD报文后发送了相应DD报文予以<br />回应,但是NE没有收到。<br />初步断定NE没有接收到这个报文,但对方确实发送出来了。既然可以接收到Hello报文,说<br />明链路通畅,而且多播报文收发也正常。有一种可能就是对方发送的DD报文有错误,导致NE拒收。查看相应信息,NE并没有报告接收到错误的DD报文。仔细查看对端路由器调试信息,发现该DD报文很大,有2000多字节。会不会是由于报文太大导致的问题呢?小L试着Ping了一个2000字节的报文,竟然不通。仔细察看,发现双方的MTU设置不一致,导致大包不通所致。JUNIPER路由器的MTU为4000多,而NE为1500。 将JUNIPER MTU改为1500 ,问题解决。为什么工程初期没有问题?这是因为后来网络扩容导致路由信息过多,使DD报文长度超过了1500字节。<br />点评:这一次小L是被Ping命令的另一个缺省参数-l 给迷惑了。由于Ping缺省报文为32个<br />字节,所以显示Ping通的信息只表示56字节的报文可以通,并不表示其他大小的报文都可以通。这并不意味我们必须从56个字节逐级向上Ping ,通常如果大包可以Ping通,则小包一定会通。有了这次教训之后,小L在Ping通的情况,都要把命令再敲一遍,并加上参数-l 8000 测试一下大包是否能通。<br />命令格式:Ping -l 8000 ip-address<br />3 、A能Ping通B 则B一定能Ping通A?<br />小L在学习了Ping的工作原理之后,一直这样认为:如果A能够Ping通B,则B也一定能够<br />Ping通A。(不考虑防火墙因素)但是在一次工程实践中,如图所示,却发现并非如此:<br />3.3.3.3/8 E0---routerA—s0----s0—routerB—E0 2.2.2.2/8<br />1.1.1.1 1.1.1.2<br />在路由器A上Ping路由器B以太网地址2.2.2.2,显示可以正常Ping通。但在路由器B上Ping路由<br />器A以太网地址3.3.3.3时,却返回无法Ping通。仔细察配置发现路由器A配置了一条指向<br />2.0.0.0/8网段的静态路由,但在路由器B上却没有相应配置到3.0.0.0/8的路由。因此路由器B Ping不通3.3.3.3。 但是为什么路由器A可以Ping通2.2.2.2呢?同样没有回程路由。小L百思不得其解。打开路由器IP报文调试开关后,终于真相大白。原来从路由器A上发出的ICMP报文的源地址填写的是1.1.1.1,而不是3.3.3.3。由于两台路由器的s0接口处于同一网段,所以响应的报文可以顺利送达路由器A。<br />点评:A能够Ping通B ,则B一定能够Ping通A( 不考虑防火墙的因素)这句话本身并没有<br />错。关键是这里的A B究竟指的是什么。如果是指两台主机或两个IP地址,那么这句话是正确<br />的。但是如果指两台路由器,那就不一定了。因为路由器通常都含有多个IP地址,现在就有如下问题:当从一台路由器上执行Ping命令,它发出的ICMP报文的源地址究竟选择哪一个呢?实际上路由器选择的是发出报文的接口IP地址。

2004-5-18 21:48 阿土
呵呵,好贴啊~~再温习一遍,以前果壳发过。 <!--emo&:P--><img src='style_emoticons/default/tongue.gif' border='0' style='vertical-align:middle' alt='tongue.gif' /><!--endemo-->

页: [1]
查看完整版本: 真的ping不通?


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.