概要
ICMP(Internet Control Message Protocol)はネットワークの設定の正常性を確認し、トラブルシューティングを支援するためのプロトコルです。複数のルーターを経由して通信を行う際に、通信の到達状況や成功の可否についての情報を提供します。
ICMPには主に、エラー通知メッセージと診断目的の問い合わせメッセージの2種類があります。
主なメッセージ
ICMP到達不能メッセージ(タイプ3)
IPルーターが宛先にデータを配送できない場合にこのメッセージを送信ホストに対して送信し、メッセージにてその理由を示します。実際には「0」や「1」のエラーが多く、ネットワークが未接続やホストの電源がOFFなどで発生します。
コード番号 | 到達不能メッセージ |
---|---|
0 | ネットワーク到達不能 |
1 | ホスト到達不能 |
2 | プロトコル到達不能 |
3 | ポート到達不能 |
4 | 分割処理が必要だが禁止フラグが設定されている |
5 | ソースルートに失敗 |
6 | 宛先ネットワークが不明 |
7 | 宛先ホスト不明 |
8 | 送信元ホストは孤立している |
9 | 宛先ネットワークとの通信は管理上禁止 |
10 | 宛先ホストとの通信は管理上禁止 |
ICMPリダイレクトメッセージ(タイプ5)
送信元ホストが最適でない経路を使用している事をルーターが検知すればこのメッセージにてより良い経路情報を送信ホストに対して送信します。下図の例では端末Bが端末Cへ通信を行いたいが経路情報を持っていないためARP要求を一度ルーター1にパケットを送信したのちにルーター2へ転送するといった処理が行われます。この様に同じ経路を往復するような無駄が発生した場合に「端末Cはルーター2」という情報をこのメッセージで端末Bへ送信します。
ICMP時間超過メッセージ(タイプ11)
IPパケットのTTLが0になりパケットが破棄された場合にルーターはこnメッセージのコード「0」を送信元に送信する事でパケットが破棄された事を通知します。
ICMPエコーメッセージ(タイプ0,8)
宛先にIPパケットが到達するかどうかを調べるさいに利用します。まず宛先にエコー要求メッセージ(タイプ8)を送信し、受け取った宛先端末はエコー応答メッセージ(タイプ0)で応答し、それがかえってくれば通信が可能という事です。「PING」がこのメッセージを利用して調べています。
ICMPルーター探索メッセージ(タイプ9,10)
自分が接続されているルーターを調べる際に利用され、ホストがルーター請願メッセージ(タイプ10)を送信し、受信したルーターがルーター広告メッセージ(タイプ9)を返します。
ICMP拡張エコーメッセージ(タイプ42,43)
ICMPエコーメッセージでは双方向の疎通確認だけでしたが、これではパケットの宛先ノードに対して2つの事を確認できます。
「別のインターフェースの状態確認」では複数のネットワークインターフェースが接続された機器で指定した別のインターフェースでIPv4通信が可能か、またはIPv6通信が可能かを確認できます。
「別のノードへの通信可否」では問い合わせた機器のARPテーブルや近隣キャッシュの状態から指定した別のノードと通信可能かを確認できます。
ICMPv6
近隣探索
ICMPメッセージのタイプ133~137は近隣探索メッセージに割り当てられており、IPv6アドレスとMACアドレスを調べる際には近隣要請メッセージをマルチキャストで送信し、該当端末は近隣告知メッセージで応答します。
IPv6ではプラグ&プレイ機能によりDHCPサーバーがなくても自動的にIPアドレスを設定することが可能です。ルーターが存在しない環境ではリンクローカルユニキャストアドレスが付与されます。ルーターが存在する環境では、ルーター要請メッセージと告知メッセージを使用してルーターからIPv6アドレスの上位ビットを取得し、自身のMACアドレスを下位ビットに割り当ててIPv6アドレスを設定します。
コメント