Ping

為什麼 ping IP 與 ping 網站不同?

  • July 11, 2014

我注意到一個奇怪的行為(至少,我不能出去)。

Ping IP,指定數據包大小:

ping -s 128 8.8.8.8 

我得到:

PING 8.8.8.8 (8.8.8.8) 128(156) bytes of data.
72 bytes from 8.8.8.8: icmp_req=1 ttl=43 (truncated)

Ping 網站,指定數據包大小:

ping -s 128 www.google.com

我得到:

PING www.google.com (173.194.35.19) 128(156) bytes of data.
136 bytes from mil01s16-in-f19.1e100.net (173.194.35.19): icmp_req=1 ttl=52 time=8.36 ms

那麼,為什麼 ping 純 IP 數據包大小會被截斷?

Ping man,我得到:

-s packetsize:指定要發送的數據字節數。預設值為 56,當與 8 字節的 ICMP 報頭數據組合時,它轉換為 64 個 ICMP 數據字節。

看起來這只是 Google DNS 伺服器施加的限制。無論發送的數據包大小如何,它們顯然都將響應限制為 72 個字節。這可能是一種防止他們的伺服器被用於某種 DOS 攻擊的方法,或者防止他們的上行鏈路因大量 ping 響應而過載。

請參閱Ken Felix 安全部落格。他寫:

以穀歌為例,有 ipv4 dns 伺服器可能每秒都在 ping,只有上帝知道誰。因此,他們部署了 icmp ( echo-r​​eply ) 速率控制。

$$ example elided $$ 所以我的 200 字節回應要求只返回了 72 字節。他們必須這樣做,否則,他們會看到更多的 icmp 出站流量,這將與傳遞 DNS 響應或其他關鍵業務服務的整個對象發生衝突。

引用自:https://unix.stackexchange.com/questions/143999