ping -f 显示问题,但常规 ping 没有问题

ping -f 显示问题,但常规 ping 没有问题

我遇到了一个奇怪的问题,托管在 Softlayer 华盛顿数据中心。

从 EC2 实例到我在 Softlayer 的服务器进行测试:-

[root@EC2-box ~]# ping -f -c 100 MY-SL-BOX
PING MY-SL-BOX (MY-SL-BOX) 56(84) bytes of data.
..................................................
--- MY-SL-BOX ping statistics ---
100 packets transmitted, 50 received, 50% packet loss, time 743ms
rtt min/avg/max/mdev = 2.464/2.906/3.606/0.220 ms, ipg/ewma 7.505/2.927 ms
[root@EC2-box ~]# 

从 EC2 实例到 www.softlayer.com(或任何其他网站)进行测试:-

[root@EC2-box ~]# ping -f -c 100 www.softlayer.com
PING www.softlayer.com (66.228.118.51) 56(84) bytes of data.

--- www.softlayer.com ping statistics ---
100 packets transmitted, 100 received, 0% packet loss, time 1168ms
rtt min/avg/max/mdev = 35.143/35.485/36.216/0.211 ms, pipe 4, ipg/ewma 11.804/35.518 ms
[root@EC2-box ~]#

从我的 softlayer 服务器测试 EC2 实例:-

[root@MY-SL-BOX ~]# ping -f -c 100 7EC2-box
PING 7EC2-box (7EC2-box) 56(84) bytes of data.
.................................................
--- 7EC2-box ping statistics ---
100 packets transmitted, 51 received, 49% packet loss, time 866ms
rtt min/avg/max/mdev = 2.067/2.378/2.679/0.131 ms, ipg/ewma 8.756/2.414 ms

从我在 softlayer 的服务器测试 www.softlayer.com 实例:-

[root@MY-SL-BOX ~]# ping -f -c 100 www.softlayer.com
PING www.softlayer.com (66.228.118.51) 56(84) bytes of data.
....................................................
--- www.softlayer.com ping statistics ---
100 packets transmitted, 48 received, 52% packet loss, time 1424ms
rtt min/avg/max/mdev = 33.677/34.041/34.693/0.240 ms, pipe 4, ipg/ewma 14.386/34.083 ms

注意……在上述所有情况下,当我不使用“-f”选项时,根本没有数据包丢失。7EC2-box 和 MY-SL-BOX 是真实 IP。我将它们屏蔽后发布到这里。

如果我从我的服务器对任何其他 IP 进行跟踪路由,甚至 ping -f 那里显示的第一个节点,它会显示 50% 的数据包丢失,而没有“-f”则不会丢失。

我与支持人员进行了交谈,他们说由于没有“-f”也没有问题,所以这里没有问题。

他们是对的吗?

奇怪的是,从任何外部网络到任何站点的“ping -f”都没有显示丢失,只有我的站点有丢失。

我已经搜索了一个小时了,如果有人能给我提供一些有关测试数据包丢失的详细说明,我将非常感激。

答案1

有些机器(主机、防火墙或路由器)如果允许 ICMP 传输,就会限制 ICMP ping 请求/响应,以避免过多的 ping 活动损害性能(CPU 或网络)。大多数环境中不建议使用 -f 而不设置合理的间隔(请参阅 ping 的 -i 参数),因为这可能会造成破坏(实际上 -f -c 100 会连续发送 100 个 ping 请求,中间没有间隙)。虽然您可能在自己的网络上使用 -f 作为参数(始终使用保守的 -c 和/或 -i 参数),但大多数其他网络管理员不希望您在他们的网络上这样做。

答案2

我或许建议使用 Nmap 进行数据包跟踪,这样可能会让您了解数据包在哪里丢失。

http://nmap.org/book/output-formats-commandline-flags.html#output-formats-ex-packettrace

另一个想法是,你尝试过在指定间隔的同时做这件事,以减慢速度

ping -f -i 0.5 google.co.uk

如果你没有发现如此大量的数据包丢失,这可能表明防火墙或其他东西阻止了它。

答案3

是的,我会尝试删除 -f 泛洪选项。很可能是防火墙不满意。您通常能在两个方向上获得良好的 ping 吗?每个方向的跟踪路由都说了什么?

相关内容