
奇妙な行動を見つけました(少なくとも出ることはできませんでした)。
フラット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 -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パケットサイズが切り捨てられるのはなぜですか?
~から平らなねえ、私は次のようになります:
-s packetsize: 送信するデータバイト数を指定します。デフォルトは56です。これは、8バイトのICMPヘッダーデータと組み合わせると64個のICMPデータバイトに変換されます。
答え1
これはGoogle DNSサーバーによって課された制限のようです。彼らは送信されたパケットのサイズに関係なく、応答を72バイトに制限するようです。これは、サーバーが一種のDOS攻撃に使用されるのを防ぐか、または大規模なping応答によってアップリンクが過負荷になるのを防ぐ方法です。
バラよりKen Felixセキュリティブログ。彼が書いた:
たとえば、Googleを例として、そこにはipv4 DNSサーバーがあり、誰が毎秒pingを送信するのかを知っています。したがって、彼らはicmp(エコー応答)速度制御を展開しました。
[例略]
したがって、私の200バイトのエコー要求は72バイトのみを返しました。そうしないと、アウトバウンドでより多くのICMPトラフィックが発生し、DNS応答の全体的な目標やその他の重要なビジネスサービスの提供と競合する可能性があります。