近隣探索プロトコル
IPv6で、同じネットワークにいる機器やルータを見つけるための仕組み。ICMPv6のメッセージを使って、MACアドレスの解決やアドレスの重複の確認などを行う。
イマシルちゃんの解説
IPv6の機器がネットワークにつながると、まず「ご近所さん」を調べるんだ。
「このIPアドレスの人の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には、アドレスをどう設定するかを指示するフラグがある。
RAはDHCPv6を使うべきかどうかを知らせるだけで、DHCPv6サーバのアドレスそのものは、ホストがDHCPv6のメッセージをマルチキャストで送って見つける。
セキュリティ
NDPには認証の仕組みがないため、偽のRAを送ってデフォルトゲートウェイになりすます攻撃などが可能である。スイッチで不正なRAを遮断するRAガードなどの対策がある。
実際の試験ではここに出る!
- ネットワークスペシャリスト 令和7年度 春期 午前Ⅱ 問12
- ネットワークスペシャリスト 令和7年度 春期 午後Ⅱ 問1
- ネットワークスペシャリスト 令和6年度 春期 午前Ⅱ 問6
- ネットワークスペシャリスト 令和5年度 春期 午前Ⅱ 問1