Solaris のシステム管理 (第 3 巻)

IPv6 の近傍探索

IPv6 では、同じリンクに接続されたノード間の対話に関連した問題をまとめて解決しました。そのため、次のような問題を個々に解決する仕組みを定義しています。

近傍探索では、ルーター要請メッセージとルーター通知メッセージのペア、近傍要請メッセージと近傍通知メッセージのペア、リダイレクトメッセージという 5 種類の ICMP (インターネット制御メッセージプロトコル) パケットタイプを定義します。これらのメッセージの目的は、次のとおりです。

ルーター通知

マルチキャスト対応リンクとポイントツーポイントリンクでは、ルーターは定期的にルーター通知パケットをマルチキャストして利用できることを知らせます。ホストはすべてのルーターからルーター通知を受け取り、デフォルトルーターのリストを作成します。利用できるルーターをホストが短時間 (2、3 分以内) に知ることができるように、ルーターは頻繁にルーター通知を生成します。ただし、通知がないからといってルーターエラーであると判断できるほどの頻度ではありません。エラー検出には、分離近傍不到達検出アルゴリズムを利用します。

ルーター通知プレフィックス

ルーター通知には、オンリンク判定や自動アドレス設定に使用するプレフィックスリストが含まれます。プレフィックスに付属するフラグは特定のプレフィックスの使用目的を表します。ホストでは、パケット宛先がいつオンリンクになっているか、あるいはルーターを離れているかを知るために、通知されたオンリンクプレフィックスからリストを作成し管理します。通知されたオンリンクプレフィックスになくても宛先がオンリンクの場合があります。その場合、ルーターからリダイレクトを送信して宛先が近傍であることを送信者に知らせることができます。

ルーター通知 (およびプレフィックス別のフラグ) では、ルーターからホストにアドレスの自動設定の方法を伝えることができます。たとえば、ステートフル (DHCPv6) か自動 (ステートレス) のどちらのアドレス設定を使用するかなどがあります。

ルーター通知メッセージ

ルーター通知メッセージには、ホストが出力パケットの使用することを指定するホップ制限などのインターネットパラメータや、オプションでリンク MTU などのリンクパラメータも組み込むことができます。これにより、ルーターに設定されて関連付けられたすべてのホストに伝達される重要なパラメータを簡単に集中管理できます。

ノードでは、宛先ノードに対してそのリンク層アドレスを戻すよう要求する近傍要請をマルチキャストしてアドレス解決を行います。近傍要請メッセージは、宛先アドレスの要請先のノードマルチキャストアドレスにマルチキャストされます。宛先は、そのリンク層アドレスをユニキャスト近傍通知メッセージで戻します。発信元と宛先の両方に対して 1 つの要求応答パケットペアで互いのリンク層アドレスを処理できます。発信元は、近傍要請に発信元のリンク層アドレスを組み込みます。

近傍要請と不到達

近傍要請メッセージでは、複数のノードに同じユニキャストアドレスが割り当てられていないかを確認することもできます。

近傍不到達検出では、近傍エラーや近傍への送信パスのエラーを検出します。そのためには、近傍に送信されるパケットがその近傍に実際にアクセスして、その IP 層で正しく処理されたかどうかを確認する肯定確認が必要です。近傍不到達検出では、2 つのソースの確認を使用します。可能な場合、上位層のプロトコルでは、接続が送信を処理中である、すなわち先に送信されたデータは正しく配信されたという肯定確認を戻します (たとえば、最も新しい TCP 肯定を受信したなど)。肯定応答が得られない場合、ノードは次のホップからのアクセス確認として、近傍通知を要請するユニキャスト近傍要請メッセージを送信します。不要なネットワークトラフィックを避けるため、検証メッセージはノードがアクティブでパケットを送信中の近傍にだけ送信されます。

上記の一般的な問題以外に、近傍探索では次のような状況にも対応します。

IPv4 との比較

IPv6 近傍探索プロトコルは、IPv4 プロトコル ARP (アドレス解決プロトコル)、ICMP ルーター発見、ICMP リダイレクトを組み合わせたようなものです。ホスト条件ではデッドゲートウェイ検出 (近傍不到達検出の課題) に対応できる可能性のあるアルゴリズムがいくつか指定されていますが、IPv4 には近傍不到達検出に全般的に対応できるプロトコルや機構はありませんでした。

近傍探索プロトコルでは、IPv4 プロトコルセットに対するさまざまな強化措置が施されています。