IPv6ホストは,ネットワークに接続した段階で各種設定を自動実行する「プラグ・アンド・プレイ」と呼ばれる機能を持つ。このプラグ・アンド・プレイを支える重要なしくみが近隣探索 (neighbor discovery;ND)である。近隣探索はIPv6向けに開発されたIPv6特有のしくみである。

 近隣探索は,IPv6用のICMPを使って,プラグ・アンド・プレイに関連するいくつかの制御機能を自動実行する基本的なメカニズムである。IPv4では個別に定義・実装されていたいくつかの制御機能は,IPv6では近隣探索という統一的なしくみでまかなうようになっている。

 近隣探索の主な役割は,(1)ルーターとプレフィクスの検索,(2)アドレス解決,(3)近隣不能の検知,(4)リダイレクト――である。

 ルーターとプレフィクスの検索は,ホストが同一リンク上にあるルーターを見つけ,そのリンクに割り当てられているプレフィクスを取得する処理である。ホストはリンク全体に,ルーター発見メッセージである「RS」を送信する。RSを受け取ったルーターはRSの送出元に対し,プレフィクス情報を含むメッセージである「RA」を返信する。IPv4のICMPにもルーターを発見するメッセージはある。ただしプレフィクスはIPv6独特のしくみなので,プレフィクスを取得するしくみはなかった。

 RS/RAのやり取りで,ホストはルーターのアドレスとプレフィクスの情報を取得する。ルーターとプレフィクスには有効期限がある。受け取った情報はそれぞれ,デフォルト・ルーター・リストとプレフィクス・リストとして保存し,有効期限が切れたら使わないようにする。

 IPv6ホストは,ネットワークに接続した段階で各種設定を自動実行する「プラグ・アンド・プレイ」と呼ばれる機能を持つ。このプラグ・アンド・プレイを支える重要なしくみが近隣探索 (neighbor discovery;ND)である。近隣探索はIPv6向けに開発されたIPv6特有のしくみである。

 アドレス解決は,IPv6アドレスとリンク層アドレス(例えばLANのMACアドレス)を対応付ける処理のこと。IPv4においては,IPアドレスからMACアドレスを見つける「ARP」と呼ぶしくみがあったが,これに相当する。IP通信では,IPアドレスを知っていてもリンク層アドレスを知らなければ送信できない。そこで送信先IPアドレスのリンク層アドレスを知る必要がある。問い合わせ結果は,IPアドレスとリンク層アドレスをペアにしてキャッシュされる。このキャッシュを近隣キャッシュ(Neighbor Cache)と呼ぶ。キャッシュされたそれぞれのエントリは,新しさなどの状態を監視される。状態は,時間経過などに変化する。

 アドレス解決でキャッシュされたそれぞれのエントリにはタイマーがある。一定時間が過ぎたエントリは内容が正しいかどうか確認される。この確認処理で,確認できなかったエントリは,その対応関係が無効であると判断され,リストから削除される。この一連のプロセスを到達不能検知と呼ぶ。IPv4は,ARPの結果を一定期間保持するARPキャッシュを持つが,ARPキャッシュの内容を確認するプロセスはない。ARPキャッシュは,一定の時間経過とともに削除される。

 最後のリダイレクトは,IPv6パケットの中継において,より好ましい中継点ノード(ルーター)が見つかった場合,そのルーターを経由するように隣接ルーターに指示する機能のこと。これを受け取ったルーターは,次回からは指示されたルーターを経由するようにパケット中継の経路を変える。

(遠藤正仁▼横河電機 IT事業部 ITプロダクト事業センター)