【ネットワーク】ICMP

概要

ICMP(Internet Control Message Protocol)はネットワークの設定の正常性を確認し、トラブルシューティングを支援するためのプロトコルです。複数のルーターを経由して通信を行う際に、通信の到達状況や成功の可否についての情報を提供します。

ICMPには主に、エラー通知メッセージと診断目的の問い合わせメッセージの2種類があります。

主なメッセージ

ICMP到達不能メッセージ(タイプ3)

IPルーターが宛先にデータを配送できない場合にこのメッセージを送信ホストに対して送信し、メッセージにてその理由を示します。実際には「0」や「1」のエラーが多く、ネットワークが未接続やホストの電源がOFFなどで発生します。

コード番号到達不能メッセージ
ネットワーク到達不能
ホスト到達不能
プロトコル到達不能
ポート到達不能
分割処理が必要だが禁止フラグが設定されている
ソースルートに失敗
宛先ネットワークが不明
宛先ホスト不明
送信元ホストは孤立している
宛先ネットワークとの通信は管理上禁止
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

IPv4ではICMPは補助的な役割を果たしており、なくても通信は可能ですが、IPv6ではICMPv6がなければ通信ができません。特にARPの機能が近隣探索メッセージに変更されており、IPv4のいくつかの機能が統合されています。ICMPv6では、タイプ0から127までを「エラーメッセージ」、タイプ128から255までを「情報メッセージ」として分類しています。

近隣探索

ICMPメッセージのタイプ133~137は近隣探索メッセージに割り当てられており、IPv6アドレスとMACアドレスを調べる際には近隣要請メッセージをマルチキャストで送信し、該当端末は近隣告知メッセージで応答します。

IPv6ではプラグ&プレイ機能によりDHCPサーバーがなくても自動的にIPアドレスを設定することが可能です。ルーターが存在しない環境ではリンクローカルユニキャストアドレスが付与されます。ルーターが存在する環境では、ルーター要請メッセージと告知メッセージを使用してルーターからIPv6アドレスの上位ビットを取得し、自身のMACアドレスを下位ビットに割り当ててIPv6アドレスを設定します。

コメント

タイトルとURLをコピーしました