我在这里有一些关于 ping 的基本网络问题。
在完全不同的子网上对特定主机执行 ping 操作时,我得到如下响应:
PING myhost.example.com (1.2.3.4) 56(84) bytes of data.
64 bytes from 1.2.3.4: icmp_req=1 ttl=115 time=1.88 ms
64 bytes from 1.2.3.4: icmp_req=2 ttl=115 time=1.66 ms
64 bytes from 1.2.3.4: icmp_req=3 ttl=115 time=1.96 ms
64 bytes from 1.2.3.4: icmp_req=4 ttl=115 time=1.95 ms
--- myhost.example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 48191ms
rtt min/avg/max/mdev = 1.669/1.868/1.969/0.127 ms
这最初看起来很正常,但随后您会看到获得这 4 个响应的总时间为 48 秒。当 ping 运行时,在打印每行之前有大约 10 秒的明显间隔。但是,rtt 几乎是我所期望的。
这引起了一些问题,因为我正在尝试使用 nagios 监视此主机,并且主机检查当前出现“网络无法访问”错误。网络是可达的,rtt 是正常的,但我不禁想知道这个缓慢的总时间是否与它有关。
主机距离 14 跳,traceroute 看起来像这样(我已经匿名化了中间步骤,它们都是不同的 IP!):
traceroute to myhost (1.2.3.4), 30 hops max, 60 byte packets
1 10.A.B.C (10.A.B.C) 0.680 ms 0.729 ms 0.833 ms
2 10.A.B.C (10.A.B.C) 0.636 ms 0.678 ms 0.759 ms
3 10.A.B.C (10.A.B.C) 0.803 ms 0.867 ms 0.923 ms
4 10.A.B.C (10.A.B.C) 0.702 ms 0.738 ms 0.782 ms
5 10.A.B.C (10.A.B.C) 1.027 ms 1.251 ms 1.342 ms
6 10.A.B.C (10.A.B.C) 2.688 ms 1.436 ms 1.484 ms
7 10.A.B.C (10.A.B.C) 2.960 ms 3.475 ms 3.527 ms
8 10.A.B.C (10.A.B.C) 1.284 ms 1.310 ms 1.393 ms
9 10.A.B.C (10.A.B.C) 1.990 ms 1.865 ms 1.964 ms
10 10.A.B.C (10.A.B.C) 1.750 ms 1.841 ms 1.748 ms
11 10.A.B.C (10.A.B.C) 1.849 ms 1.614 ms 1.628 ms
12 10.A.B.C (10.A.B.C) 1.997 ms 2.150 ms 2.119 ms
13 10.A.B.C (10.A.B.C) 2.442 ms 2.454 ms 2.560 ms
14 1.2.3.4 (1.2.3.4) 1.978 ms * *
什么会导致这个?
这是一个有点疯狂的猜测......
您正在通过 DNS 名称 ping。
myhost.example.com 的 DNS 查找是否需要那么长时间才能解析?
如果您通过 ip-address ping 会发生什么情况?
尝试编辑
/etc/nsswitch.conf
. mDNS 给我带来了同样的问题。如果你有:
尝试替换为:
除了DNS查找问题外,还有可能是ping包的间隔问题:
如果你通过 ip ping 谷歌的服务器:
总时间仍然比 rtts 的总和大得多。
但是,如果您在泛洪模式下使用 ping:
或将间隔设置为 0:
总时间几乎是rtts的总和。