IPv6 では、同じリンクに接続されたノード間の対話に関連した問題をまとめて解決しました。そのため、次のような問題を個々に解決する仕組みを定義しています。
ルーター発見 - 接続されたリンクにあるルーターをホストが探索する
プレフィックス探索 - どの宛先がリンクに接続されているかを定義するアドレスプレフィックスのセットをホストが探索する (オンリンクということもある)。(リンクにある宛先と、ルーターからだけアクセスできる宛先を、ノードではプレフィックスで区別します)
パラメータ探索 - リンク MTU (最大伝送単位) などのリンクパラメータ、またはホップ制限値などのインターネットパラメータをノードが調べて出力パケットを転送する
アドレス自動設定 - インタフェースのアドレスをノードが自動的に設定する
アドレス解決 - 宛先の IP アドレス以外不明な場合に、ノードが近傍のリンク層を判定する
次のホップの決定 - 宛先のトラフィックを送信する宛先になる近傍の IP アドレスに到る IP 宛先アドレスの対応付けがアルゴリズムで決まる。次のホップはルーターか宛先になる
近傍不到達検出 - 近傍にアクセスできないことをノードが判定する。ルーターに使用される近傍の場合、代替デフォルトルーターを試行できる。ルーターとホストの場合、アドレス解決を再試行できる
重複アドレス検出 - あるノードがアドレスを要求したところ、別のノードが使用している場合にそれを判定する
リダイレクト - 特定の宛先へのアクセス手段として、最適な最初のホップノードをルーターからホストに知らせる
近傍探索では、ルーター要請メッセージとルーター通知メッセージのペア、近傍要請メッセージと近傍通知メッセージのペア、リダイレクトメッセージという 5 種類の ICMP (インターネット制御メッセージプロトコル) パケットタイプを定義します。これらのメッセージの目的は、次のとおりです。
ルーター要請 - インタフェースが使用可能になると、ホストはルーターに対して、次回に予定されているタイミングではなく、今すぐルーター通知を生成するように求めるルーター要請を送信できる
ルーター通知 - 定期的に、あるいはルーター要請メッセージに応じて、ルーターはさまざまなリンクパラメータやインターネットパラメータとともにその存在を通知する。ルーター通知には、オンリンク判定またはアドレス設定、あるいはホップ制限値の選択肢などに使用するプレフィックスが含まれる
近傍要請 - 近傍のリンク層アドレスを判定するため、あるいは近傍がキャッシュリンク層アドレスでアクセスできるかどうかを確認するための情報としてノードから送信される。近傍要請は重複アドレス検出にも使用する
近傍通知 - 近傍要請メッセージに対する応答として、ノードでは未要請の近傍通知も送信してリンク層アドレスの変更を伝える
リダイレクト - 宛先までの最適な最初のホップ、または宛先がオンリンクであることをルーターからホストに知らせる
マルチキャスト対応リンクとポイントツーポイントリンクでは、ルーターは定期的にルーター通知パケットをマルチキャストして利用できることを知らせます。ホストはすべてのルーターからルーター通知を受け取り、デフォルトルーターのリストを作成します。利用できるルーターをホストが短時間 (2、3 分以内) に知ることができるように、ルーターは頻繁にルーター通知を生成します。ただし、通知がないからといってルーターエラーであると判断できるほどの頻度ではありません。エラー検出には、分離近傍不到達検出アルゴリズムを利用します。
ルーター通知には、オンリンク判定や自動アドレス設定に使用するプレフィックスリストが含まれます。プレフィックスに付属するフラグは特定のプレフィックスの使用目的を表します。ホストでは、パケット宛先がいつオンリンクになっているか、あるいはルーターを離れているかを知るために、通知されたオンリンクプレフィックスからリストを作成し管理します。通知されたオンリンクプレフィックスになくても宛先がオンリンクの場合があります。その場合、ルーターからリダイレクトを送信して宛先が近傍であることを送信者に知らせることができます。
ルーター通知 (およびプレフィックス別のフラグ) では、ルーターからホストにアドレスの自動設定の方法を伝えることができます。たとえば、ステートフル (DHCPv6) か自動 (ステートレス) のどちらのアドレス設定を使用するかなどがあります。
ルーター通知メッセージには、ホストが出力パケットの使用することを指定するホップ制限などのインターネットパラメータや、オプションでリンク MTU などのリンクパラメータも組み込むことができます。これにより、ルーターに設定されて関連付けられたすべてのホストに伝達される重要なパラメータを簡単に集中管理できます。
ノードでは、宛先ノードに対してそのリンク層アドレスを戻すよう要求する近傍要請をマルチキャストしてアドレス解決を行います。近傍要請メッセージは、宛先アドレスの要請先のノードマルチキャストアドレスにマルチキャストされます。宛先は、そのリンク層アドレスをユニキャスト近傍通知メッセージで戻します。発信元と宛先の両方に対して 1 つの要求応答パケットペアで互いのリンク層アドレスを処理できます。発信元は、近傍要請に発信元のリンク層アドレスを組み込みます。
近傍要請メッセージでは、複数のノードに同じユニキャストアドレスが割り当てられていないかを確認することもできます。
近傍不到達検出では、近傍エラーや近傍への送信パスのエラーを検出します。そのためには、近傍に送信されるパケットがその近傍に実際にアクセスして、その IP 層で正しく処理されたかどうかを確認する肯定確認が必要です。近傍不到達検出では、2 つのソースの確認を使用します。可能な場合、上位層のプロトコルでは、接続が送信を処理中である、すなわち先に送信されたデータは正しく配信されたという肯定確認を戻します (たとえば、最も新しい TCP 肯定を受信したなど)。肯定応答が得られない場合、ノードは次のホップからのアクセス確認として、近傍通知を要請するユニキャスト近傍要請メッセージを送信します。不要なネットワークトラフィックを避けるため、検証メッセージはノードがアクティブでパケットを送信中の近傍にだけ送信されます。
上記の一般的な問題以外に、近傍探索では次のような状況にも対応します。
リンク層アドレスの変更 - リンク層アドレスの変更を認識したノードは、小数の (非要請) 近傍通知パケットをすべてのノードにマルチキャストして、無効になったキャッシュリンク層アドレスを更新できる。非要請通知の送信は、性能強化が目的。近傍不到達検出アルゴリズムにより、すべてのノードが確実に新しいアドレスを探索できるが、遅延が多少伸びる
入力負荷調整 - インタフェースを複写したノードでは、同じリンク上の複数のネットワークインタフェース間の入力パケットの複写の負荷調整ができる。このようなノード間では、同じインタフェースに複数のリンク層アドレスが割り当てられる。たとえば、1 つのネットワークドライバで、複数のネットワークインタフェースカードを、複数のリンク層アドレスを持つ 1 つの論理インタフェースとして表現できる
ルーターではソースリンク層アドレスをルーター通知パケットから省略させ、これによって近傍では近傍要請メッセージでルーターのリンク層アドレスを確認することで負荷を調整する。近傍通知メッセージの戻りには、要請元によって異なるリンク層アドレスが組み込まれる
任意キャストアドレス - 任意キャストアドレスでは、等価サービスを提供するノードセットの 1 つを識別し、同じリンクの複数のノードは同じ任意キャストを認識するように設定できる。近傍探索では、ノードが同じ宛先に対する複数の近傍通知を受け取るようノードを設定して任意キャストを処理する。任意キャストアドレスの通知には、すべて取り消しできない通知としてのタグが設定される。これで複数の通知のどれを使用するかを判定する特定の規則が呼び出される
プロキシ通知 - 近傍要請に応答できない宛先アドレスのかわりにパケットを受信するルーターは、取り消し無効の近傍通知を発行できる。現在は、プロキシの使用方法は指定されていないが、オフリンクになった移動ノードをプロキシ通知で処理できる可能性がある。ただし、たとえばこのプロトコルを実装していないノードを処理するといった一般的な機能ではない
IPv6 近傍探索プロトコルは、IPv4 プロトコル ARP (アドレス解決プロトコル)、ICMP ルーター発見、ICMP リダイレクトを組み合わせたようなものです。ホスト条件ではデッドゲートウェイ検出 (近傍不到達検出の課題) に対応できる可能性のあるアルゴリズムがいくつか指定されていますが、IPv4 には近傍不到達検出に全般的に対応できるプロトコルや機構はありませんでした。
近傍探索プロトコルでは、IPv4 プロトコルセットに対するさまざまな強化措置が施されています。
ルーター発見はベースプロトコルセットの一部であり、ホストがルーティングプロトコルをスヌープする必要はない
ルーター通知ではリンク層アドレスが伝達される。ルーターのリンク層アドレスの解決に、これ以外のパケット交換は不要
ルーター通知ではリンクのプレフィックスが伝達される。ネットマスクを設定する独立した機構は不要
ルーター通知では、アドレス自動設定が使用可能になる
ルーターでは、MTU が定義されていないすべてのノードで同じ MTU 値を使用するように、ホストがリンクで使用する MTU を通知する
アドレス解決マルチキャストは、40 億 (2^32) マルチキャストアドレスに展開され、宛先以外のノードに対するアドレス解決関係の割り込みを大幅に削減した。さらに、IPv6 以外のマシンの割り込みをなくした
リダイレクトには、新しい最初のホップのリンク層アドレスを保存する。独立したアドレス解決がなくてもリダイレクトを受信できる
同じリンクに複数のプレフィックスを関連付けられる。デフォルトで、ホストはルーター通知からすべてのオンリンクプレフィックスを受け取る。ただし、ルーター通知にあるプレフィックスをすべて、あるいは一部省略するようにルーターを設定できる。その場合、ホストは宛先がオフリンクであるとみなし、ルーターにトラフィックを送信する。ルーターは適宜リダイレクトを発行する
IPv4 と異なり、IPv6 リダイレクトの受信者は新しい次のホップがオンリンクであるとみなす。IPv4 では、ホストはリダイレクトを無視し、リンクのネットワークマスクに基づいて、リンクにない次のホップを指定する。IPv6 リダイレクト機構は XRedirect 機能に似ている。ノードがオンリンク宛先のすべてのプレフィックスを知ることが望ましくない場合、あるいは不可能な場合は、非ブロードキャストと共有媒体リンクで有効
近傍不到達検出は、障害ルーター、部分的に障害があるリンクやパーティション化されたリンク、リンク層アドレスが変更されたノードがあるときの、パケットの頑強性を大幅に強化した主要機能のひとつ。たとえば、移動ノードは、頻繁に更新される ARP キャッシュのおかげでオフリンクになっても接続が切れない
ARP と異なり、近傍探索では、ハーフリンクエラー (近傍不到達検出を利用) を検出し、双方向接続がない近傍にトラフィックが送信されるのを防ぐ
IPv4 ルーターと異なり、ルーター通知メッセージにはユーザー定義フィールドはない。安定性の異なるルーターの操作にユーザー定義フィールドは不要。近傍不到達検出で、デッドルーターを検出し、アクティブルーターに切り替えることができる
リンクローカルアドレスで (ルーター通知とリダイレクトメッセージ用に) ルーターを一意に識別しておけば、サイトの番号付けの変更で新しいグローバルプレフィックスが使用されても、ホストでルーター関連付けを維持できる
近傍探索メッセージのホップ制限は受信時に 255 なので、プロトコルがオフリンクノードによるスプーフエラーの被害を受けることがない。これに対し、IPv4 オフリンクノードでは ICMP (インターネット制御メッセージプロトコル) リダイレクトとルーター通知メッセージの両方を送信できる
ICMP 層にアドレス解決を配置すると、プロトコルが ARP よりも媒体に依存しなくなり、標準 IP 認証とセキュリティ機構を必要に応じて使用できるようになる