Internet Control Message Protocol(ICMP)は、IP とともに制御、エラー、診断の情報を運びます。IPv4 用の ICMP と ICMPv6 は関連していますが、メッセージタイプの番号や責務が異なる別々のプロトコルです。
トラブルシューティング · レッスン 1
ICMP
ICMP が IP のエラーを通知し、診断を支援し、IPv4 と IPv6 の重要な動作を実現する仕組みを学びます。
タイプ、コード、チェックサム
ICMP メッセージにはタイプ、必要に応じてさらに詳しいコード、そしてチェックサムがあります。エラーメッセージには通常、送信側がエラーを通信フローと対応付けられるよう、原因となったパケットの一部が含まれます。
ICMP のコードは何を示しますか?
Echo とエラーメッセージ
ICMPv4 では Echo Request がタイプ 8、Echo Reply がタイプ 0 です。Destination Unreachable はタイプ 3、Time Exceeded はタイプ 11 です。ICMPv6 では異なるタイプ番号を使うため、キャプチャを解釈する前に必ずアドレスファミリーを特定してください。
ICMPv4 の Echo Request のタイプ番号はどれですか?
Path MTU と不可欠な ICMP
ICMP は、単なる任意の ping トラフィックではありません。IPv4 の fragmentation needed エラーと ICMPv6 の Packet Too Big メッセージは、Path MTU Discovery を支えます。ICMPv6 は Neighbor Discovery と Router Advertisement も運びます。そのため、ICMP をすべて遮断するとブラックホールが生じ、IPv6 の動作が壊れる場合があります。
一律に遮断するのではなく、必要なタイプ、方向、レート、スコープに基づいてフィルタリングしてください。一部の ICMP は攻撃者が偽装できるため、引用されたパケットの文脈を検証し、ローカルルートやキャプチャとも照合します。
ICMP をすべて遮断すると、正当な通信が壊れる可能性があるのはなぜですか?
応答がない場合の解釈
ICMP 応答がない原因には、フィルタリング、レート制限、非対称ルーティング、戻り経路の欠落、ホスト停止、そのメッセージに単に応答しない機器などがあります。反対に、ICMP エラーは最終宛先ではなく、中継機器が生成することもあります。
Echo Reply がないという事実だけから、何が証明できますか?
レッスン完了
ICMP を完了しました
これで、ICMP を二択の接続判定ではなく、制御に関する証拠として解釈できます。
正しい IP ファミリーのタイプとコードを読む。
Echo、Unreachable、Time Exceeded の役割を識別する。
Path MTU と IPv6 の動作に必要な ICMP を維持する。
エラーや無応答を、ほかの経路情報と照合する。