细说诊断工具ping( 二 )


下例中,尝试向一台已配置拒绝从源设备接收数据流的路由器发送数据:
bsd1# ping 172.16.3.10
PING 172.16.3.10 (172.16.3.10): 56 data bytes
36 bytes from 172.16.2.1: Communication prohibited by filter
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 5618 0 0000 ff 01 0859 172.16.2.13 172.16.3.10
36 bytes from 172.16.2.1: Communication prohibited by filter
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 561b 0 0000 ff 01 0856 172.16.2.13 172.16.3.10
^C
--- 172.16.3.10 ping statistics ---
2 packets transmitted, 0 packets received, 100% packet loss
被过滤条件阻止的告警信息表明报文被丢弃 。但也有可能过滤条件不显示该告警 。
下例中,
bsd1# ping 172.16.3.10
PING 172.16.3.10 (172.16.3.10): 56 data bytes
^C
--- 172.16.3.10 ping statistics ---
6 packets transmitted, 0 packets received, 100% packet loss
路由器上使用同样的过滤条件,但应用于离开网络的数据流,而不作用于inbound数据流 。因此,没有消息发送 。这时,ping就无法告诉你为什么报文没有收到回复 。
ping的选项:一些选项控制发送报文的速率和数量,-c选项允许用户指定发送报文的数量 。例如,ping –c10会发送10个报文然后停止 。这一命令在脚本中很有用处 。
命令-f和-l用于将报文泛洪到网络上 。-f选项表明报文发送速率与接收主机能够处理速率相同 。这一参数可用于链路压力测试或接口性能比较 。
-l选项用于计数,尽可能快的发送该数量报文,然后恢复正常 。该命令用于测试处理泛洪的能力,需要root权限执行 。
-i选项用于用户在两个连续报文之间指定等待秒数 。该命令对于将报文间隔开或用在脚本中非常有用 。正常情况下,偶然的ping包对数据流的影响是很小的 。但重复报文或报文泛洪影响就很大了 。因此,使用以上选项时需谨慎 。
-n选项将输出限制为数字形式,这在碰见DNS问题时很有用 。-v显示更详尽输出,较少输出为-q和-Q 。
-s选项指定发送数据的大小 。但如果设置的太小,小于8,则报文中就没有空间留给时间戳了 。设置报文大小能诊断有路径MTU(Maximum Transmission Unit)设置或分段而导致的问题 。如果不使用该选项,ping默认是64字节 。
 




推荐阅读