IPv6アドレスの設定(2)
ネットワークプレフィクスを払い出すIPv6ルーターを構成したところで、今度はクライアントPCがIPv6ルーターからネットワークプレフィクスを受取り、IPv6アドレスを自動設定する様子を見てみよう。
ルーター通知メッセージ(RA)はIPv6ルータから定期的にローカルネットワーク上に送信される。しかし、IPv6ホストがアドレスを必要とするタイミングと合うかどうかは別である。IPv6が有効になっているWindows PCは、ネットワークインターフェースが有効になると、ローカルネットワーク上にルーター要請メッセージRSを送信する。Guiのネットワーク接続から該当するネットワークインターフェースを明示的に無効・有効しても、RSを送信する。ネットワークカードからLANケーブルを一度抜いて再び接続してもよい。
ネットワーク接続から該当するネットワークインターフェースを明示的に無効・有効しても、RSを送信する。
インターフェースがリンクアップしている場合には、以下に述べる方法が使用できる。ただし、利用しているIPv6ルータの仕様やネットワーク環境によっては、Windows PCのルーター要請メッセージRSに反応しないこともある。
インターフェースのリセット・アドレスの更新
インターフェースのリセット
-
netsh int ipv6 reset
-
今までのインターフェース設定を無かった事にする。
アドレスの更新
-
netsh int ipv6 renew
-
RS(Router Solicitation)の送信、RA(Router Advertisement)の受信、
アドレス自動設定(Neighbor Discovery Protocol)
以前にも述べたが、サーバーやルーターを除くほとんどのホストでは、IPv6 アドレスを手動で設定する必要はない。Windows Server 2003・Windows XPのIPv6プロトコルでは、IPv6アドレスを自動的に設定する。
アドレスをリセットした後、明示的にrenewしてみた。アドレスを確認すると、2004::のプレフィックスでアドレスが設定されている。
アドレス自動設定のプロセス
アドレスをリセットした後、明示的にrenewした時に、アドレスが設定されるまでの様子。
アドレス解決
-
送信元ホストは、適切なインタフェースのマルチキャスト近隣要請メッセージを送信する。
-
送信先ホストは近隣要請メッセージを受信すると、近隣要請メッセージの発信元アドレスと発信元リンク層アドレス オプション内のリンク層アドレスに従って自分の近隣キャッシュを更新する。
-
送信先ノードは、ユニキャスト近隣アドバタイズを近隣要請送信側に送信する。
-
送信元ホストは近隣アドバタイズ メッセージを受信すると、ターゲット リンク層アドレス オプション内の情報を基準に、送信先のエントリで自分の近隣キャッシュを更新する。
リンクローカル重複検出
-
IPv6を有効にしているインターフェースは、FE80::/64 というリンク ローカル プレフィックスと MACアドレスを利用した64 ビット インターフェイスIDに基づいて、仮承諾リンク ローカル アドレスを生成する。
-
ローカルネットワーク内に対して近隣要請Neighbor solicite(solicitation)を送出し、重複アドレスの検出を行う。
-
重複がないと判別されるまでは仮アドレスを使用しないので送信元アドレスは::である。
-
同様に、重複アドレス検出近隣要請への近隣アドバタイズ応答では、リンク ローカル スコープ全ノード マルチキャスト アドレス (FF02::1) が宛先として設定される。
-
重複アドレスが検出された場合は、近隣アドバタイズ応答がある。ノードを手動で構成する必要がある。
-
重複アドレスが検出されなかった場合、近隣アドバタイズ応答はない。仮承諾リンク ローカル アドレスは一意かつ有効なものと見なされ、インターフェイスのアドレスはこのリンク ローカル アドレスで初期化される。
-
リンク ローカル アドレスには、MACアドレスから生成されるものと匿名アドレスと2個あり、それぞれについて重複検査が行われる。
-
インターフェースに、対応する要請ノードのマルチキャスト リンク層アドレスが登録される。
ステートレス自動構成アドレス(グローバルアドレスの自動構成)
Microsoftのドキュメントでは、リンクローカルアドレスの重複検出の後、次のアドレス自動構成が行われる記述があるが、キャプチャデータからは、リンクローカルアドレス重複検出のNS送信以前に、リンクローカルアドレスからルーター要請メッセージRSを送信しているように見える。
-
ホストがルーター要請メッセージRS…Router solicite(solicitation)を送信する。(defaultで3回)
-
ルーター通知メッセージRA…Router Advertisementが返されると、そのメッセージに含まれる構成情報がホストに適用される。
-
メッセージにステートレス アドレス プレフィックスが含まれている場合、ステートレス自動構成アドレス プレフィックスごとに、次の処理が行われる。
-
アドレス プレフィックスおよびMACアドレスを利用した64 ビット インターフェイスIDを使用して、仮承諾アドレスを生成する。
-
重複アドレスの検出が行われる。
-
リンク ローカル アドレスと同様、グローバルアドレスにもMACアドレスから生成されるものと匿名アドレスと2個あり、それぞれについて重複検査が行われる。
-
仮承諾アドレスが使用中でなかった場合は、アドレスが初期化される。初期化処理では、ルーター通知メッセージRAに含まれる情報に基づいて、有効な生存期間と優先する生存期間が設定される。
-
更に、ルーター通知メッセージRA内にアドレス プレフィックスが含まれていない場合、もしくは、ルーター通知メッセージRAを受取らない場合、ホストはステートフルなアドレス構成プロトコルを使用して追加のアドレスまたは構成パラメータを取得する。
※ IPv6マシンは,自分のIPv6アドレスを自ら作成して設定する「ステートレスアドレス自動設定」の機能を備えている。ただし,管理者が明示的にホストにIPv6アドレスを割り当てる方法もある。これがステートフルアドレス自動設定だ。ステートフルアドレス自動設定を使うときは,DHCPv6サーバをネットワーク上に設置する。IPv6対応ルータの多くはDHCPv6サーバとなる機能を実装している。
※ 現時点でMicrosoftのOSはステートフルなアドレス構成に対応していない。
アドレスを自動構成したWindows XPで、IPv6ルータであるWindows Server 2003に対してpingを実行すると、自動設定されたアドレスで
pingを実行しているのが確認できる。
このときのWindows Server 2003からのNAとWindows XPからのNAでは、メッセージ内の値が異なっているのが判る。
このping実行の後にnetsh int ipv6 show Neighbor intfacenameコマンドで、Neighbor cacheを表示するとアドレス解決しているのがわかる。このコマンドはIPv4のarp -aにあたる。
ICMPv6
IPv6 の近隣探索プロトコルNDP…Neighbor Discovery Protocolは、近隣ノード (同一リンク上のノード) との相互作用を管理するICMPv6…Internet Control Message Protcol for IPv6メッセージ群で構成される。近隣探索プロトコルNDPでは、
- これまでのブロードキャストに基づく Address Resolution Protocol…ARP メッセージ、
-
ICMPv4 ルーター発見メッセージ、
-
ICMPv4リダイレクト メッセージ
に代わって、効率的なマルチキャストおよびユニキャストの近隣探索メッセージとして使用される。
つづく・・・・
|