热烈祝贺台州朗动科技的站长论坛隆重上线!(2012-05-28)    热烈庆祝伟大的祖国60周年生日 点击进来我们一起为她祝福吧(2009-09-26)    站长论坛禁止发布广告,一经发现立即删除。谢谢各位合作!.(2009-08-08)    热烈祝贺台州网址导航全面升级,全新版本上线!希望各位一如既往地支持台州网址导航的发展.(2009-03-28)    台州站长论坛恭祝各位新年快乐,牛年行大运!(2009-01-24)    台州Link正式更名为台州网址导航,专业做以台州网址为主的网址导航!(2008-05-23)    热烈祝贺台州Link资讯改名为中国站长资讯!希望在以后日子里得到大家的大力支持和帮助!(2008-04-10)    热烈祝贺台州Link论坛改名为台州站长论坛!希望大家继续支持和鼓励!(2008-04-10)    台州站长论坛原[社会琐碎]版块更名为[生活百科]版块!(2007-09-05)    特此通知:新台州站长论坛的数据信息全部升级成功!">特此通知:新台州站长论坛的数据信息全部升级成功!(2007-09-01)    台州站长论坛对未通过验证的会员进行合理的清除,请您谅解(2007-08-30)    台州网址导航|上网导航诚邀世界各地的网站友情链接和友谊联盟,共同引领网站导航、前进!(2007-08-30)    禁止发广告之类的帖,已发现立即删除!(2007-08-30)    希望各位上传与下载有用资源和最新信息(2007-08-30)    热烈祝贺台州站长论坛全面升级成功,全新上线!(2007-08-30)    
便民网址导航,轻松网上冲浪。
台州维博网络专业开发网站门户平台系统
您当前的位置: 首页 » 生活百科 » 通过Ping命令排除路由器故障

通过Ping命令排除路由器故障

论坛链接
  • 通过Ping命令排除路由器故障
  • 发布时间:2007-10-08 16:00:31    浏览数:7604    发布者:musiccoffe    设置字体【   
在路由器的故障分析中,Ping命令是一个常见而实用的网络管理工具,用这种工具可以测试端到端的连通性,即检查源端到目的端网络是否通畅。Ping的原理很简单,就是从源端向目的端发出一定数量的网络包,然后从目的端返回这些包的响应,如果在一定的时间内源端收到响应,则程序返回从包发出到收到的时间间隔,根据时间间隔就可以统计网络的延迟。如果网络包的响应在一定时间间隔内没有收到,则程序认为包丢失,返回请求超时的结果。我们经常让Ping一次发一定数量的包,然后检查收到相应的包的数量,则可统计出端到端网络的丢包率,而丢包率是检验网络质量的重要参数。

  在路由器上Ping返回符号的含义如下表所示:

符号 描述
! 收到一个响应
. 在等待时,网络服务器超时
U 目标无法到达,受到错误的PDU
Q 源消失(目标设备太忙)
M 数据无法分割
? 包类型未知
& 报的有效期过了


  在路由器上无法Ping通一个地址的原因有很多种,譬如线路故障,对方路由器的接口没有起来,路由器的路由表中没有该地址的路由信息等等都会造成网络无法Ping通。

  实例一:

  网络结构如(图1)示。
 
 



  图1

  
  Router1#Ping 34.0.0.4
  Type escape sequence to abort.
  Sending 5, 100-byte ICMP Echos to 34.0.0.4, timeout is 2 seconds:
  .....
  Success rate is 0 percent (0/5)

  在Router1上无法Ping通Router4的接口,通过使用DEBUG命令来获得更多的信息,便于进一步的分析:

  
  Router1#debug ip packet
  IP packet debugging is on
  Router1#Ping 34.0.0.4
  Type escape sequence to abort.
  Sending 5, 100-byte ICMP Echos to 34.0.0.4, timeout is 2 seconds:
  5d21h: IP: s=12.0.0.1 (local), d=34.0.0.4, Len 100, unroutable.
  5d21h: IP: s=12.0.0.1 (local), d=34.0.0.4, Len 100, unroutable.
  ……
  Success rate is 0 percent (0/5)

  我们看到 “unroutable”的消息,表明在Router1的路由表中不存在该地址的路由信息,Router1不知道该地址向何处转发,现增加一条缺省路由到Router1中:

  

  Router1#configure terminal
  Enter configuration commands, one per line. End with CNTL/Z.
  Router1(config)#ip route 0.0.0.0 0.0.0.0 Serial0/0


  然后,再在Router1上使用Ping:

  
  Router1#Ping 34.0.0.4
  Type escape sequence to abort.
  Sending 5, 100-byte ICMP Echos to 34.0.0.4, timeout is 2 seconds:
  U.U.U
  Success rate is 0 percent (0/5)
  6d03h: IP: s=12.0.0.1 (local), d=34.0.0.4 (Serial0/0), Len 100, sending
  6d03h: ICMP type=8, code=0
  6d03h: IP: s=12.0.0.2 (Serial0/0), d=12.0.0.1 (Serial0/0), Len 56, rcvd 3
  6d03h: ICMP type=3, code=1
  ……
  再看看在Router2上收到了什么信息:

  

  Router2#
  21:56:04: IP: s=12.0.0.1 (Serial1), d=34.0.0.4, Len 100, unroutable
  21:56:04: ICMP type=8, code=0
  21:56:04: IP: s=12.0.0.2 (local), d=12.0.0.1 (Serial1), Len 56, sending
  21:56:04: ICMP type=3, code=1
  ……
  从上面的信息可以看出Router1已经能正确地发送包到Router2,但好象Router2并不知道如何转发地址34.0.0.4,所以Router2发送了“unreachable”的消息给Router1。因此分别给Router2和Router3加上动态路由协议RIP:
  



  Router2#
  router rip
  network 12.0.0.0
  network 23.0.0.0
  Router3#
  router rip
  network 23.0.0.0
  network 34.0.0.0
      然后,在Router1上Ping Router4的接口:

  
  Router1#Ping 34.0.0.4
  Type escape sequence to abort.
  Sending 5, 100-byte ICMP Echos to 34.0.0.4, timeout is 2 seconds:
  5d21h: IP: s=12.0.0.1 (local), d=34.0.0.4 (Serial0/0), Len 100, sending.
  5d21h: IP: s=12.0.0.1 (local), d=34.0.0.4 (Serial0/0), Len 100, sending.
  ……
  Success rate is 0 percent (0/5)


  现在情况看起来好点,Router1能发包到Router4,只是收不到任何从Router4返回的信息。看来Router4上也有问题:

  
  Router4#
  6d23h: IP: s=12.0.0.1 (Serial0/0), d=34.0.0.4 (Serial0/0), Len 100, rcvd 3
  6d23h: IP: s=34.0.0.4 (local), d=12.0.0.1, Len 100, unroutable
  ……
  Router4收到了ICMP的包,但由于没有到12.0.0.1的路由信息,因此无法响应12.0.0.1所发过来的包。在Router4上增加一条缺省路由:

  
Router4(config)#ip route 0.0.0.0 0.0.0.0 Serial0/0


  这样问题得到了解决:

  
  Router1#Ping 34.0.0.4
  Type escape sequence to abort.
  Sending 5, 100-byte ICMP Echos to 34.0.0.4, timeout is 2 seconds:
  !!!!!
  Success rate is 100 percent (5/5), round-trip min/avg/max = 32/35/36 ms
  实例 二:

  网络结构如(图2)示:
  


  图2

  Router1上增加了一个LAN的接口:

     Router1(config)#interface e0/1
  Router1(config-if)#ip address
  Router1(config-if)#ip address 20.0.0.1 255.255.255.0


  结果LAN上的一台PC机能Ping通Router1,但却无法Ping通Router2,而在Router1上却能Ping通Router2。

  
  Router1#Ping 12.0.0.2
  Type escape sequence to abort.
  Sending 5, 100-byte ICMP Echos to 12.0.0.2, timeout is 2 seconds:
  !!!!!
  Success rate is 100 percent (5/5), round-trip min/avg/max = 4/7/9 ms
  Router1#
  5d23h: IP: s=12.0.0.1 (local), d=12.0.0.2 (Serial0/0), Len 100, sending
  5d23h: IP: s=12.0.0.2 (Serial0/0), d=12.0.0.1 (Serial0/0), Len 100, rcvd 3
  在路由器上使用普通Ping时,其源IP地址为路由器上Ping包所出去的接口IP地址,在路由器上能通过使用扩展的Ping命令来更改缺省的源IP地址。现在在router1上通过使用扩展的Ping命令来模拟从LAN上发包到Router2:

  
  Router1#Ping
  Protocol [ip]:
  Target IP address: 12.0.0.2
  Repeat count [5]:
  Datagram size [100]:
  Timeout in seconds [2]:
  Extended commands [n]: y
  Source address or interface: 20.0.0.1
  Type of service [0]:
  Set DF bit in IP header? [no]:
  Validate reply data? [no]:
  Data pattern [0xABCD]:
  Loose, Strict, Record, Timestamp, Verbose[none]:
  Sweep range of sizes [n]:
  Type escape sequence to abort.
  Sending 5, 100-byte ICMP Echos to 12.0.0.2, timeout is 2 seconds:
  5d23h: IP: s=20.0.0.1 (local), d=12.0.0.2 (Serial0/0), Len 100, sending.
  ……
  Success rate is 0 percent (0/5)
  从上面的信息看,当源IP地址为20.0.0.1的时候, Router1能发包到Router2,只是无法收到Router2的响应包。解决的办法很简单,只有在Router2上增加一条路由到20.0.0.0就可以了。Ping成功的基本原则就是被Ping设备也必须知道如何发送回包到发起Ping的源地址。从Router1能Ping通Router2是因为默认下是把包出口的接口的IP地址作为源地址。但由于原先Router2并不知道新的LAN,所以当源地址为新的LAN的时候,就不知道如何发送回包到新的LAN。

  从以上两个实例中可以看出来,在Debug命令的帮助下,我们也能通过Ping命令来发现和解决网络中的一些比较复杂的故障,而并不只是把它简单的作为测试网络是否通的工具而已。特别是路由器中的扩展的Ping命令所具有的可以任意设定源IP地址的特性,在实际使用当中更是能给我们在判断网络故障等方面带来很多的方便。
娱乐休闲专区A 影视预告B 音乐咖啡C 英语阶梯D 生活百科
网页编程专区E AMPZF HTMLG CSSH JSI ASPJ PHPK JSPL MySQLM AJAX
Linux技术区 N 系统管理O 服务器架设P 网络/硬件Q 编程序开发R 内核/嵌入
管理中心专区S 发布网址T 版主议事U 事务处理