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 プロトコルセットに対するさまざまな強化措置が施されています。
ルーター検索はベースプロトコルセットの一部であり、ホストがルーティングプロトコルを snoop する必要はない
ルーター通知ではリンク層アドレスが伝達される。ルーターのリンク層アドレスの解決に、これ以外のパケット交換は不要
ルーター通知ではリンクのプレフィックスが伝達される。ネットマスクを設定する独立した機構は不要
ルーター通知では、アドレス自動設定が使用可能になる
ルーターは、ホストがリンクで使用するMTU を通知できる。したがって、MTU が定義されていないすべてのノードはリンク上の同じ MTU 値を使用する
アドレス解決マルチキャストは、40 億 (2^32) マルチキャストアドレスに展開され、宛先以外のノードに対するアドレス解決関係の割り込みを大幅に削減した。さらに、IPv6 以外のマシンの割り込みをなくした
リダイレクトには、新しい最初のホップのリンク層アドレスを保存する。独立したアドレス解決がなくてもリダイレクトを受信できる
同じリンクに複数のプレフィックスを関連付けられる。デフォルトで、ホストはルーター通知からすべてのオンリンクプレフィックスを受け取る。ただし、ルーター通知にあるプレフィックスをすべて、あるいは一部省略するようにルーターを設定できる。その場合、ホストは宛先がオフリンクであるとみなす。その結果、ホストはルーターにトラフィックを送信する。ルーターは適宜リダイレクトを発行する
IPv4 と異なり、IPv6 リダイレクトメッセージの受信者は新しい次のホップがオンリンクであるとみなす。IPv4 では、ホストはリダイレクトメッセージを無視し、リンクのネットワークマスクに基づいて、リンクにない次ホップを指定する。IPv6 リダイレクト機構は XRedirect 機能に似ている。リダイレクト機構は、非ブロードキャストおよび共有メディアリンクで有効。これらのリンクでは、ノードはオンリンク宛先のすべてのプレフィックスを確認できない
近傍不能性検出により、障害ルーターがある場合のパケット伝送能力が改善される。また、この機能により、部分的に障害があるリンクやパーティション化されたリンクを経由するパケット伝送、あるいはリンク層アドレスが変更されたノードを経由するパケット伝送が改善される。たとえば、移動ノードは、頻繁に更新される ARP キャッシュのおかげでオフリンクになっても接続が切れない
ARPとは異なり、近傍検索では、近傍不到達検出により、ハーフリンクエラーを検出する。近傍検索は、双方向接続がない近傍にトラフィックが送信されるのを防ぐ
IPv4 ルーター検索と異なり、ルーター通知メッセージにはユーザー定義フィールドはない。安定性の異なるルーターの操作にユーザー定義フィールドは不要。近傍不能性検出で、デッドルーターを検出し、アクティブルーターに切り替えることができる
リンクローカルアドレスでルーターを一意に識別しておけば、ホストでルーター関連付けを維持できる。ルーターを識別する機能は、ルーター通知で必要とされる。また、この機能はリダイレクトメッセージも必要とされる。サイトが新しいグローバルプレフィックスを使用しても、ホストはルーター関連付けを維持する必要がある。
近傍検索メッセージのホップ制限は受信時に 255 なので、プロトコルがオフリンクノードによるスプーフィングの被害を受けることがない。これに対し、IPv4 オフリンクノードは、ICMP (インターネット制御メッセージプロトコル) リダイレクトメッセージと、ルーター通知メッセージを送ることができる。
ICMP 層にアドレス解決を配置すると、プロトコルが ARP よりも媒体に依存しなくなる。その結果、標準 IP 認証とセキュリティ機構が使用できるようになる