こんにちは、小澤です。
前回まで、ICMPv6 の概要やフォーマットについて説明しました。ICMPv6 は、ネットワーク上の問題を検出したり、エラー情報を送信したりするときに使用され、ネットワークの正常な運用やエラー通知に重要な役割を果たすものでしたね。
さて今回からは、近隣探索プロトコルについて説明します。今回は、この近隣探索プロトコルの導入部の説明をします。教科書では「第6 章 近隣探索プロトコル」(127 ページ〜129 ページ)の部分です。
なお、「プロフェッショナルIPv6」の電子書籍は無償でダウンロードできます。以下をご覧ください。
https://booth.pm/ja/items/913273
近隣探索プロトコルとは
IPv6 の近隣探索プロトコル(Neighbor Discovery Protocol, NDP)は、IPv6ネットワーク内でのホスト間およびルータ間の通信をサポートするために設計された一連のメッセージおよびプロセスです。IPv4 のARP(Address Resolution Protocol)、ICMP Router Discovery、およびICMP Redirect などで実現されていた機能を含み、IPv6 環境に適した形で提供されています。RFC4861における近隣探索プロトコルRFC4861 は「IPv6 のための近隣探索プロトコル(Neighbor Discovery for IPv6)」に関する文書で、このRFC では、IPv6 ネットワーク上でホストとルータが互いに通信し、情報を発見および交換するためのメカニズムを定義し
ています。RFC4861 に定義された近隣探索プロトコルの主な機能には以下のものがあります。
1. ルータの探索と選択(Router Discovery)
ホストは利用可能なルータを発見し、デフォルトルータとしての選択を行うことができます。
2. プレフィックスの探索(Prefix Discovery)
ネットワーク上のプレフィックス(ネットワークアドレス部分)の情報を発見し、アドレスの自動設定を行います。
3. パラメータの探索(Parameter Discovery)
リンクMTU(最大伝送単位)やホップリミットなどのネットワークパラメータを発見します。
4. アドレス自動設定(Address Autoconfiguration)
プレフィックスの探索を利用して行われるプロセスです。ネットワークから提供されるプレフィックス情報を基に、ホストが自身のIPv6 アドレスを自動的に生成します。
5. 近隣の探索(Address Resolution)
同じリンク上のデバイスの物理アドレスを発見し、IP アドレスとMACアドレスを関連付けます。
6. 次のホップの決定(Next-hop Determination)
ルータの探索と選択、リダイレクトのプロセスに関連しています。パケットが宛先に到達するために次に転送されるべきルータ(またはデバイス)を決定するプロセスです。
7. 到達可能性(不到達性)の検証(Neighbor UnreachabilityDetection)
近隣のデバイスが引き続き到達可能であるかどうかを確認します。
8. アドレスの重複検出(Duplicate Address Detection, DAD)
同一リンク内でIPv6 アドレスが一意であることを確認します。
9. リダイレクト(Redirect)
ホストがデータをより適切なルータへ送信するように指示します。
近隣探索プロトコルで使用するメッセージ
近隣探索プロトコルでは、以下のようなICMPv6 メッセージを使用します。これらのメッセージはネットワークの構成や状態が変化する際に自動的に交換されます。各メッセージの詳細については、次回以降で説明していきます。
1. Router Advertisement(RA;ルータ広告)
ルータからホストへ、ルータ情報やネットワークパラメータを提供します。
2. Router Solicitation(RS;ルータ要請)
ホストからルータへ、ルータ情報の提供を要求します。
3. Neighbor Solicitation(NS;近隣要請)
あるノードから他のノードへ、そのノードの物理アドレスを問い合わせます。また、DAD のプロセスで使用されます。
4. Neighbor Advertisement(NA;近隣広告)
近隣要請に応答して、ノードの物理アドレス情報を提供します。
5. Redirect(リダイレクト)
ルータからホストへ、特定の宛先に対するより良いルータが存在することを通知します。ここで「Advertisement(広告)」と「Solicitation(要請)」は、ネットワーク内の機器間で情報を交換するための特定のタイプのメッセージを指します。ホストやルータがネットワークの状態などについて、互いに通知し合うた
めに使用されるものです。Advertisement(広告)メッセージは、あるデバイスがネットワーク上の他のデバイスに対して自身の存在や機能、設定などの情報を通知するために使用されます。一方、Solicitation(要請)メッセージは、情報やサービスを要求するためにデバイスから送信されます。これらは、ネットワーク上の特定の情報や機能について他のデバイスからの応答を引き出すことを目的としています。要するに、「広告」は情報の提供を意味し、「要請」は情報の要求を意味します。
近隣探索プロトコルの使い所
近隣探索プロトコルの使いどころをいくつか示しましょう。
1. ネットワークへの参加とアドレスの自動設定
新しいデバイスがIPv6 ネットワークに接続されると、最初に行うべきことの一つが、ネットワーク内のルータを発見し、自分自身にIPv6 アドレスを割り当てることです。
2. 近隣デバイスの物理アドレスの発見(アドレス解決)
IPv6 アドレスを知っているが、対応する物理アドレス(MAC アドレス)を知らない場合、デバイスはその情報を発見する必要があります。
3. アドレスの重複検出(DAD)
デバイスが新たにIPv6 アドレスを自動設定する場合、そのアドレスがネットワーク内で一意であることを確認する必要があります。
4. 到達可能性の検証
デバイスは、定期的にネットワーク上の他のデバイスが引き続き到達可能であるかどうかを確認することが重要です。
5. リダイレクト
ルータは、ホストがより効率的なルートを使用して特定の宛先にパケットを送信するべきであると判断した場合、リダイレクトメッセージを送信することがあります。
つまり、これらは、RFC4861 に定義された近隣探索プロトコルの主な機能そのものです。
まとめ
今回は、近隣探索プロトコルの概要について簡単に説明しました。また、どのような状況で使用されるかの具体的な例も示しました。近隣探索プロトコルはIPv6 ネットワークの重要な部分で、ネットワーク上のデバイス間の通信や情報交換を助けるための重要なツールです。次回は、近隣探索プロトコルについて更に詳しく説明していきますので、引き続きご覧いただければ幸いです。
<お知らせ>
IPv6 の学習のチェックにIPv6 基礎検定はいかがでしょうか?全国350 か所で
通年受験が可能です。詳細は以下をご覧ください。