我在 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 請求/回應,以避免效能(CPU 或網路)因過多的 ping 活動而受損。在大多數環境中,不鼓勵使用-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 值嗎?每個的追蹤路線是什麼?