近隣探索プロトコル

読み:きんりんたんさくぷろとこる / 英語表記:Neighbor Discovery Protocol

IPv6で同じリンク上の機器と通信するために、アドレス解決、ルータ探索、近隣機器への到達性の確認などの手順を定めたプロトコルである。ICMPv6の5種類のメッセージを使って、問い合わせや応答、ネットワーク情報の通知などを行う。

イマシルちゃんの解説

IPv6で通信するときは、外へデータを渡すルーターを見つけたり、同じネットワークの相手と通信できるか確かめたりするよ。
こうした確認や情報交換の手順をまとめて定めたのが、近隣探索プロトコルなんだ。
実際のやり取りには、通信の通知や確認に使うICMPv6のメッセージを使うよ。

たとえば、機器が「ルーターはいますか」と問い合わせると、ルーターが自分の存在やネットワークの情報を知らせるの。
イーサネットで相手のMACアドレスを調べるときには、別の種類のメッセージを使うんだ。
目的に応じてメッセージを使い分け、データを渡す相手を見つけたり、その相手とまだ通信できるか確かめたりするんだよ。

より深い解説

定義

近隣探索プロトコル(NDP:Neighbor Discovery Protocol)は、RFC 4861で定められた、IPv6のリンク(同じネットワーク)上の機器同士が互いを見つけ、情報を交換するための仕組みである。ICMPv6の5種類のメッセージを使って実現するプロトコルである。

使うメッセージ

タイプメッセージ送る側 → 受ける側
133ルータ要請(RS:Router Solicitation)ホスト → ルータ。「ルータはいますか」
134ルータ広告(RA:Router Advertisement)ルータ → ホスト。プレフィックスなどを知らせる
135近隣要請(NS:Neighbor Solicitation)「このアドレスの人はいますか」
136近隣広告(NA:Neighbor Advertisement)「それは私です。MACアドレスはこれです」
137リダイレクトルータ → ホスト。よりよい次の転送先を教える

主な機能

機能内容
アドレス解決NSとNAで、IPv6アドレスからMACアドレスを求める。IPv4のARPに当たる
ルータ探索RSとRAで、デフォルトゲートウェイになるルータを見つける
プレフィックス探索RAで、そのネットワークのプレフィックスを知る。これをもとにアドレスを自動生成できる(SLAAC)
重複アドレス検出(DAD)NSで、使おうとしているアドレスがほかの機器と重複していないかを確かめる
近隣到達不能検出(NUD)相手が今も通信できる状態かを確かめる
リダイレクトよりよい経路をホストに知らせる

ブロードキャストを使わない工夫

IPv4のARPはブロードキャストで全員に問い合わせるが、NDPのアドレス解決は要請ノードマルチキャストアドレス(ff02::1:ff00:0/104 に、問い合わせたいアドレスの下位24ビットを付けたもの)宛てに送る。下位24ビットが同じ機器だけが受け取るので、関係のない機器の負担が減る。

ルータ広告のフラグ

RAには、アドレスをどう設定するかを指示するフラグがある。

フラグ意味
M(Managed)アドレスをDHCPv6サーバから取得する
O(Other)アドレス以外の情報(DNSサーバなど)をDHCPv6から取得する

RAはDHCPv6を使うべきかどうかを知らせるだけで、DHCPv6サーバのアドレスそのものは、ホストがDHCPv6のメッセージをマルチキャストで送って見つける。

セキュリティ

NDPには認証の仕組みがないため、偽のRAを送ってデフォルトゲートウェイになりすます攻撃などが可能である。スイッチで不正なRAを遮断するRAガードなどの対策がある。

実際の試験ではここに出る!全5問

ネットワークスペシャリスト

午前Ⅱ
午後Ⅱ

この用語が出てくる記事

↑