IPv6 向けインターネット制御メッセージ プロトコル|
 ICMPv6メッセージの一般的な構造 |
| 略語 | ICMPv6 |
|---|
| 目的 | IPv6の補助プロトコル |
|---|
| 導入 | 1995年12月 (1995-12) |
|---|
| OSI層 | ネットワーク層 |
|---|
| RFC(s) | 4443 |
|---|
インターネット制御メッセージプロトコルバージョン6(ICMPv6 )は、インターネットプロトコルバージョン6(IPv6)用のインターネット制御メッセージプロトコル(ICMP)の実装です。 [ 1 ] ICMPv6はIPv6の不可欠な部分であり、エラー報告と診断機能を実行します。
ICMPv6 には、新機能を実装するための拡張機能のフレームワークがあります。新しい ICMPv6 メッセージ タイプと既存の ICMPv6 メッセージ タイプの新しいオプションを定義する拡張機能がいくつか公開されています。たとえば、近隣探索プロトコル(NDP) は ICMPv6 に基づくノード探索プロトコルであり、ARPの機能を置き換えて拡張します。[ 2 ]セキュア近隣探索(SEND) は NDP の拡張機能で、セキュリティが強化されています。マルチキャスト リスナー探索(MLD) は、インターネット グループ管理プロトコル(IGMP) がIPv4で使用されるのと同様に、直接接続されたリンク上のマルチキャストリスナーを検出するために IPv6 ルーターによって使用されます。マルチキャスト ルーター探索(MRD) を使用すると、マルチキャスト ルーターを検出できます。
ICMPv6メッセージは、エラーメッセージと情報メッセージに分類できます。ICMPv6メッセージは、ICMPv6のIPv6ネクストヘッダー値が58に設定されたIPv6パケットによって転送されます。
ICMPv6メッセージはヘッダーとプロトコルペイロードで構成されます。ヘッダーには、タイプ(8ビット)、コード(8ビット)、チェックサム(16ビット)の3つのフィールドのみが含まれます。
ICMPv6メッセージ | オフセット | オクテット | 0 | 1 | 2 | 3 |
|---|
| オクテット | 少し | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|---|
| 0 | 0 | タイプ | コード | チェックサム |
|---|
| 4 | 32 | メッセージ本文 |
|---|
| 8 | 64 |
|---|
| ⋮ | ⋮ |
|---|
- タイプ: 8ビット
- メッセージの種類を指定します。0~127(上位ビットが0)の範囲の値はエラーメッセージを示し、128~255(上位ビットが1)の範囲の値は情報メッセージを示します。
- コード: 8ビット
- コードフィールドの値はメッセージの種類によって異なり、メッセージの粒度をさらに高めます。
- チェックサム: 16ビット
- ICMPメッセージの整合性検証を最低限提供します。チェックサムはICMPメッセージ(Typeフィールドから始まる)から計算され、先頭にIPv6疑似ヘッダーが付加されます。[ 1 ]下記参照。
- メッセージ本文: 変数
- 内容はメッセージによって異なります。
種類
制御メッセージは、タイプフィールドの値によって識別されます。コードフィールドは、メッセージの追加のコンテキスト情報を提供します。一部のメッセージは、対応する名前のICMPメッセージタイプと同じ目的を果たします。
| タイプ | コード |
|---|
| 価値 | 意味 | 価値 | 意味 |
|---|
| ICMPv6 エラーメッセージ |
|---|
| 1 | 宛先に到達できません | 0 | 目的地までのルートがありません |
| 1 | 宛先との通信が管理上禁止されている |
| 2 | 送信元アドレスの範囲外 |
| 3 | アドレスに到達できません |
| 4 | ポートに到達できません |
| 5 | 送信元アドレスがイングレス/エグレスポリシーに失敗した |
| 6 | 目的地へのルートを拒否 |
| 7 | ソースルーティングヘッダーのエラー |
| 2 | パケットが大きすぎます | 0 |
| 3 | 時間超過 | 0 | 転送中にホップ制限を超えました |
| 1 | フラグメント再構成時間を超過しました |
| 4 | パラメータの問題 | 0 | 誤ったヘッダーフィールドが検出されました |
| 1 | 認識できない次のヘッダータイプが検出されました |
| 2 | 認識できない IPv6 オプションが検出されました |
| 100 | 個人的な実験 | | |
| 101 | 個人的な実験 | | |
| 127 | ICMPv6エラーメッセージの拡張用に予約されています | | |
| ICMPv6 情報メッセージ |
|---|
| 128 | エコー要求 | 0 | |
| 129 | エコー返信 | 0 | |
| 130 | マルチキャストリスナークエリ(MLD) | 0 | マルチキャスト リスナー クエリ メッセージには 2 つのサブタイプがあります。 - 一般クエリ。接続されたリンク上にリスナーを持つマルチキャスト アドレスを確認するために使用されます。
- マルチキャスト アドレス固有のクエリ。特定のマルチキャスト アドレスが接続されたリンク上にリスナーを持っているかどうかを確認するために使用されます。
これら2つのサブタイプは、RFC 2710のセクション3.6に記載されているマルチキャストアドレスフィールドの内容によって区別されます。 |
| 131 | マルチキャストリスナーレポート(MLD) | 0 | |
| 132 | マルチキャスト リスナー完了 ( MLD ) | 0 | |
| 133 | ルータ要請(NDP) | 0 | |
| 134 | ルーター広告(NDP) | 0 | |
| 135 | 近隣勧誘(NDP) | 0 | |
| 136 | 近隣広告(NDP) | 0 | |
| 137 | リダイレクトメッセージ(NDP) | 0 | |
| 138 | ルータの番号変更[ 3 ] | 0 | ルータの再番号付けコマンド |
| 1 | ルータの再番号付け結果 |
| 255 | シーケンス番号のリセット |
| 139 | ICMPノード情報クエリ | 0 | データ フィールドには、このクエリの主題である IPv6 アドレスが含まれています。 |
| 1 | データ フィールドには、このクエリの主題となる名前が含まれますが、NOOP の場合は空になります。 |
| 2 | データ フィールドには、このクエリの主題である IPv4 アドレスが含まれています。 |
| 140 | ICMPノード情報応答 | 0 | 応答は成功しました。応答データフィールドは空の場合とそうでない場合があります。 |
| 1 | 応答側は回答の提供を拒否します。応答データフィールドは空になります。 |
| 2 | クエリのQtypeは応答側では不明です。応答データフィールドは空になります。 |
| 141 | 逆近隣探索要請メッセージ | 0 | |
| 142 | 逆近隣探索広告メッセージ | 0 | |
| 143 | マルチキャストリスナー検出(MLDv2)レポート[ 4 ] | | |
| 144 | ホームエージェントアドレス検出要求メッセージ | 0 | |
| 145 | ホームエージェントアドレス検出応答メッセージ | 0 | |
| 146 | モバイルプレフィックス勧誘 | 0 | |
| 147 | モバイルプレフィックス広告 | 0 | |
| 148 | 認証パス要請(SEND) | | |
| 149 | 証明書パス広告(SEND) | | |
| 151 | マルチキャストルータ広告(MRD) | | |
| 152 | マルチキャストルータ要請(MRD) | | |
| 153 | マルチキャストルータ終端(MRD) | | |
| 155 | RPL制御メッセージ | | |
| 160 | 拡張エコー要求[ 5 ] | 0 | 拡張エコーの要求 |
| 161 | 拡張エコー応答[ 5 ] | 0 | エラーなし |
| 1 | 不正なクエリ |
| 2 | そのようなインターフェースはありません |
| 3 | そのようなテーブルエントリはありません |
| 4 | 複数のインターフェースがクエリを満たす |
| 200 | 個人的な実験 | | |
| 201 | 個人的な実験 | | |
| 255 | ICMPv6情報メッセージの拡張用に予約されています | | |
上記の表は包括的なものではないことにご注意ください。現在割り当てられているICMPv6タイプの完全なリストは、こちらのリンク先をご覧ください:IANA: ICMPv6パラメータ。
チェックサム
ICMPv6 は、ヘッダーに16 ビットのチェックサムを含めることで、最低限のメッセージ整合性検証を実現しています。チェックサムはIPv6 標準[ 6 ]に従って IPv6 ヘッダーフィールドの疑似ヘッダーから計算されます。このヘッダーフィールドは、送信元アドレスと宛先アドレス、パケット長、次のヘッダーフィールドで構成され、次のヘッダーフィールドは58に設定されます。この疑似ヘッダーに続いて、ICMPv6 メッセージが続きます。チェックサムの計算は、インターネットプロトコル標準に従い、16 ビットの1 の補数の合計を使用して実行され、最後にチェックサム自体の 1 の補数が計算されて、それがチェックサムフィールドに挿入されます。[ 7 ]これはICMPでの IPv4 の計算方法とは異なりますが、 TCP での計算方法と似ています。
ICMPv6疑似ヘッダー | オフセット | オクテット | 0 | 1 | 2 | 3 |
|---|
| オクテット | 少し | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|---|
| 0 | 0 | 送信元アドレス |
|---|
| 4 | 32 |
|---|
| 8 | 64 |
|---|
| 12 | 96 |
|---|
| 16 | 128 | 宛先アドレス |
|---|
| 20 | 160 |
|---|
| 24 | 192 |
|---|
| 28 | 224 |
|---|
| 32 | 256 | ICMPv6 長さ |
|---|
| 36 | 288 | ゼロ | 次のヘッダー (58) |
|---|
ICMPv6メッセージのペイロードは、送信されるメッセージの種類によって異なります。ペイロードは、上記のヘッダーの直後のビット32から始まります。宛先到達不能や時間超過などの一部のメッセージでは、メッセージ本体は定義されていません。
宛先に到達できません | ビットオフセット | 0~7 | 8~15歳 | 16~31 |
|---|
| 0 | 1 | コード | チェックサム |
| 32 | 未使用 |
| 64 | メッセージ本文(可変サイズ) |
時間切れ | ビットオフセット | 0~7 | 8~15歳 | 16~31 |
|---|
| 0 | 3 | コード | チェックサム |
| 32 | 未使用 |
| 64 | メッセージ本文(可変サイズ) |
その他は、本体の最初の 4 バイトのみの使用を定義し、他の定義済みコンテンツは定義しません。
パケットが大きすぎます | ビットオフセット | 0~7 | 8~15歳 | 16~31 |
|---|
| 0 | 2 | 0 | チェックサム |
| 32 | 最大伝送ユニット |
| 64 | メッセージ本文(可変サイズ) |
パラメータの問題 | ビットオフセット | 0~7 | 8~15歳 | 16~31 |
|---|
| 0 | 4 | コード | チェックサム |
| 32 | ポインター |
| 64 | メッセージ本文(可変サイズ) |
エコー要求 | ビットオフセット | 0~7 | 8~15歳 | 16~31 |
|---|
| 0 | 128 | 0 | チェックサム |
| 32 | 識別子 | シーケンス番号 |
| 64 | データ(可変サイズ) |
エコー返信 | ビットオフセット | 0~7 | 8~15歳 | 16~31 |
|---|
| 0 | 129 | 0 | チェックサム |
| 32 | 識別子 | シーケンス番号 |
| 64 | データ(可変サイズ) |
NDPメッセージの場合、最初の4バイトは予約されているか、フラグ/ホップリミットに使用されます。残りの本文には、以下の未指定の構造化データが含まれます。
ルータ要請 | ビットオフセット | 0~7 | 8~15歳 | 16~31 |
|---|
| 0 | 133 | 0 | チェックサム |
| 32 | 予約済み |
| 64 | オプション(可変サイズ) |
ルーター広告 | ビットオフセット | 0~7 | 8~15歳 | 16~31 |
|---|
| 0 | 134 | 0 | チェックサム |
| 32 | 現在のホップ制限 | 管理対象アドレスフラグ | その他の構成フラグ | 予約済み | ルーターの寿命 |
| 64 | 到達可能時間 |
| 96 | 再送信時間 |
| 128 | オプション(可変サイズ) |
近隣勧誘 | ビットオフセット | 0~7 | 8~15歳 | 16~31 |
|---|
| 0 | 135 | 0 | チェックサム |
| 32 | 予約済み |
| 64 | ターゲットアドレス(16バイト) |
| 192 | オプション(可変サイズ) |
近隣広告 | ビットオフセット | 0~7 | 8~15歳 | 16~31 |
|---|
| 0 | 136 | 0 | チェックサム |
| 32 | ルータ(R)から | 要請旗(S) | オーバーライド(O) | 予約済み |
| 64 | ターゲットアドレス(16バイト) |
| 192 | オプション(可変サイズ) |
リダイレクトの場合、メッセージ本文の最初のバイトは予約されていますが、使用されません。その後にターゲットと宛先アドレスが続きます。最後に、指定されていないオプションを追加できます。
ICMPv6 リダイレクト | ビットオフセット | 0~7 | 8~15歳 | 16~31 |
|---|
| 0 | 137 | 0 | チェックサム |
| 32 | 予約済み |
| 64 | ターゲットアドレス(16バイト) |
| 192 | 宛先アドレス(16バイト) |
| 320 | オプション(可変サイズ) |
メッセージ処理
ICMPv6ノードはパケットを受信すると、メッセージの種類に応じて適切なアクションを実行する必要があります。ICMPv6プロトコルは、ネットワークの過負荷を回避するため、同じ宛先に送信されるエラーメッセージの数を制限しなければなりません。例えば、ノードがエラーのあるパケットを転送し続ける場合、ICMPは最初のパケットに対してエラーを通知し、その後は一定の最小周期または一定のネットワーク最大負荷で定期的に通知します。ICMPエラーメッセージは、別のICMPエラーメッセージへの応答として送信されてはなりません。
参考文献
外部リンク