近隣探索プロトコル(NDP)とは
近隣探索プロトコル(Neighbor Discovery Protocol, NDP)は、
IPv6ネットワークにおいて、近隣のノード(ルータやホスト)を発見し、それらの情報を管理するためのプロトコルです。
IPv4ではARP(
Address Resolution Protocol)が同様の役割を担っていましたが、
IPv6ではNDPがその役割を引き継ぎ、より高度な機能を提供します。NDPは、RFC 4861で詳細に定義されており、ICMPv6(
Internet Control Message Protocol for
IPv6)を基盤として動作します。
NDPの主な機能
NDPは、ネットワークにおける多様な課題を解決するために、以下の機能を提供します。
1. ルータ発見 (Router Discovery)
ホストが、同一リンク上に存在するルータの位置を特定する機能です。これにより、ホストはネットワークへの経路情報を取得し、外部ネットワークとの通信が可能になります。
2. プレフィックス発見 (Prefix Discovery)
ホストが、接続しているリンクのネットワークアドレスプレフィックスを自動的に発見する機能です。これにより、ホストは自分の属するネットワークを認識し、適切な
IPアドレスを生成できます。
3. パラメータ発見 (Parameter Discovery)
リンクMTU(最大転送単位)や、パケットのホップリミットなど、ネットワークに関するパラメータを学習する機能です。これにより、ホストはネットワーク環境に適した通信を行うことができます。
4. アドレス自動設定 (Address Autoconfiguration)
インターフェースに自動的に
IPアドレスを設定する機能です。これにより、ネットワーク管理者は、手動で
IPアドレスを設定する手間を省き、ネットワークの運用管理を容易にすることができます。
5. アドレス解決 (Address Resolution)
宛先の
IPアドレスから、
リンク層アドレス(MACアドレスなど)を特定する機能です。これにより、ホストは近隣のノードと直接通信することができます。
6. 次転送先決定 (Next-hop Determination)
宛先
IPアドレスに基づいて、パケットを転送すべき次のノードの
IPアドレスを決定する機能です。これにより、ホストは効率的に目的の宛先へパケットを転送することができます。
7. 近隣者到達不可能性検出 (NUD, Neighbor Unreachability Detection)
近隣のノードが通信不能になったことを検出する機能です。これにより、ホストは通信経路の障害を検知し、代替経路への切り替えなどの措置を講じることができます。
8. 重複アドレス検出 (DAD, Duplicate Address Detection)
使用しようとする
IPアドレスが、ネットワーク上で他のノードによって使用されていないかを確認する機能です。これにより、
IPアドレスの競合を回避し、ネットワークの安定性を保つことができます。
9. リダイレクト (Redirect)
ルータが、特定の宛先へのより最適な経路をホストに通知する機能です。これにより、ホストはより効率的な経路で通信を行うことができます。
NDPで使用されるICMPv6メッセージ
NDPは、上記の機能を実行するために、以下の5種類のICMPv6メッセージを使用します。
1.
ルータ要請 (Router Solicitation):タイプ133
- ホストがネットワークに接続した際に、ルータからのルータ広告を即座に受信するために送信します。
2.
ルータ広告 (Router Advertisement):タイプ134
- ルータが、自身の存在と、ネットワークに関する情報(プレフィックス、パラメータなど)を定期的に、またはルータ要請に応じて送信します。
3.
近隣者要請 (Neighbor Solicitation):タイプ135
- 近隣のノードの
リンク層アドレスを解決するため、または、キャッシュされたアドレスの有効性を確認するために送信します。
4.
近隣者広告 (Neighbor Advertisement):タイプ136
- 近隣者要請に対する応答として、または、自身の
リンク層アドレスに変更があった場合に送信します。
5.
リダイレクト (Redirect):タイプ137
- ルータが、ホストに対して、より効率的な経路情報を通知するために送信します。
NDPの重要性
NDPは、
IPv6ネットワークにおいて、アドレス自動設定、経路発見、近隣の可用性監視など、重要な機能を担っています。これらの機能は、ネットワークの円滑な運用と、効率的な通信を支える基盤となります。NDPなしでは、
IPv6ネットワークは正常に動作しないと言っても過言ではありません。
関連情報