我有一个奇怪的问题,托管在 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”都没有显示任何损失,而只是对我的。
我已经搜索了一个小时,如果有人能指出一些测试丢包的详细说明,将不胜感激。
如果某些机器(主机、防火墙或路由器)完全允许 ICMP 传输,它们会限制 ICMP ping 请求/响应,以避免过度 ping 活动影响性能(CPU 或网络)。在大多数环境中不鼓励使用 -f 而不设置合理的间隔(请参阅 ping 的 -i 参数),因为它可能会造成破坏(实际上 -f -c 100 会连续发送 100 个 ping 请求,它们之间没有间隙)。虽然您可以在自己的网络上使用 -f 作为参数(始终使用保守的 -c 和/或 -i 参数),但大多数其他网络管理员不希望您在他们的网络上这样做。
我可能会建议使用 Nmap 进行数据包跟踪,这可能会让您了解数据包丢失的位置。
http://nmap.org/book/output-formats-commandline-flags.html#output-formats-ex-packettrace
另一个想法,您是否尝试过这样做,同时指定一个间隔来减慢它的速度
ping -f -i 0.5 google.co.uk
如果您没有得到如此大量的数据包丢失,则可能表明防火墙或阻止它的东西。
是的,我会尝试删除 -f flood 选项。很可能是防火墙不满意。您通常在两个方向上都能获得良好的 ping 吗?每个跟踪路线的含义是什么?