IPv6 Neighbor Discovery
IPv6ネイバーディスカバリープロセスでは、ICMPメッセージとsolicited-nodeマルチキャストアドレスを
使用して、同一セグメント( local-link
)上のネイバーのMACアドレスを知ることができます。その他に
アドレスが重複していないかの確認、local-link上でのルータとデフォルトルートの発見、宛先に対して
より良いネクストホップへのリダイレクションなどもネイバーディスカバリーにより実現することが可能。
NDは [ ICMPv6 ] を使用します。以下では、MACアドレス解決のために使用するICMPv6
Type=135と
ルータアドバタイズメントで使用するICMPv6
Type=134について、詳細に説明していきたいと思います。
IPv6 Neighbor Discovery - Neighbor Solicitation
Message
ICMPv6 Type=135は [ neighbor solicitation
message ] の際に使用されます。このメッセージはノードが
同じセグメント( local-link )上のネイバーのMACアドレスを知るために送信されます。neighbor
solicitation
メッセージの送信元は送信者のIPv6アドレスとなり、宛先は宛先ノードが持つIPv6アドレスから生成された
solicited-nodeマルチキャストアドレスとなります。neighbor
solicitationメッセージを受信した宛先ノードは
neighbor advertisement message (
ICMPv6
Type=136) を送信して応答します。このメッセージを受信する
ことによりホスト間の通信が行われるようになります。※これらのメッセージは他の用途でも使用されます。

IPv6 Neighbor Discovery - Router Advertisement
Message
ICMPv6 Type=134 [ Router Advertisement
message ] はIPv6ルータのI/F上から定期的に送信されます。
ステートレスautoconfigurationを適切に動作させるために、RAメッセージでアドバタイズするprefix
lengthは
常に [ 64 ] ビットである必要があります。RAメッセージは
all-nodeマルチキャストアドレスに送信されます。
○ RAメッセージには以下の情報が含まれます。
・ ローカルリンク上でノードが自動的にIPv6アドレスを構成できるようにするIPv6アドレスのプレフィックス
・ そのIPv6アドレスのプレフィックスのライフタイム
( 使用できる期間 )
・ autoconfigurationのタイプ ( ステートレス
or ステートフル ) を示すフラグ
・ デフォルトルータ情報 ( アドバタイズメントを送信するルータをデフォルトルータとして使用するかどうか
)
・ hop limit や MTU などホストのための追加の情報
○ RAメッセージのパラメータは以下を変更できます。
・ 定期的なRAメッセージの送信間隔
・ デフォルトルータとしてのライフタイム
・ IPv6アドレスのプレフィックス
・ neighbor solicitation message再送の送信間隔
・ ノードがネイバーに対してreachabilityがあると見なす時間
RAは設定された値で定期的に送信されますが、RS(
Router Solicitiation Message ) を受信した場合は
そのレスポンスとして即座に送信されます。RSはICMPv6
Type=133により送信されます。RSはシステム
スタートアップしたホストにより送信されます。RSのあて先はall-routersマルチキャストアドレスとなります。
Ciscoルータでは、[ ipv6 unicast-routing
] とグローバルで定義することにより、[ イーサネットとFDDI
] の
I/F上ではデフォルトでRAメッセージが送信されることになります。その他のI/Fタイプの場合は、I/F上で
手動で [ no ipv6 nd ra suppress ] とコマンド設定することによりRAメッセージを送信することができます。
また、RAメッセージは [ ipv6 nd ra
suppress
] によりインターフェースごとに個別でディセーブルにできます。
ICMPv6
このように、IPv6ではIPv6ネットワークを構成する上で
[ ICMP ] が大きな役割を果たすことになります。
IPv4ではIPアドレスからMACアドレスを解決するプロトコルがARPでしたがIPv6ではICMPを使用します。
ICMPv6では、ICMPを大きく2種類のタイプ (
エラーメッセージと情報メッセージ ) に分類しています。
ICMPv6エラーメッセージはタイプ [
0 〜 127
] です。IPv6パケットの転送中に宛先ホストまで到達でき
なかった時にエラーが発生したホストやルータにより送信されます。ICMPv6情報メッセージは、タイプ
[ 128 〜 255 ] です。これらは情報通知用として使用されます。また、タイプ
133〜137までについては
Neighbor Discovery用として使用されるICMPv6メッセージです。以下は、主要なICMPv6メッセージです。
| ICMPv6エラーメッセージ |
| タイプ ( 10進数 ) |
内容 |
| 1 |
Destination Unreachable |
| 2 |
Pakcet Too Big |
| 3 |
TIme Exceeded |
| 4 |
Parameter Problem |
| ICMPv6情報メッセージ |
| タイプ( 10進数 ) |
内容 |
| 128 |
Echo Request |
| 129 |
Echo Reply |
| 130 |
Multicast Listener Query |
| 131 |
Multicast Listener Report |
| 132 |
Multicast Listener Done |
| 133 |
Router Solicitation |
| 134 |
Router Advertisement |
| 135 |
Neighbor Solicitation |
| 136 |
Neighbor Advertisement |
| 137 |
Redirect Message |
| 138 |
Router Renumbering |
| 139 |
ICMP Node Information Query |
| 140 |
ICMP Node Information Response |
| 141 |
Inverse Neighbor Discovery Solicitation |
| 142 |
Inverse Neighbor Discovery Advertisement |
|