トップ回答者
IPv6のDHCPサーバー機能について

質問
-
お世話になります。
IPv6のDHCPサーバー機能が実装されておりますが、クライアント(Vista)からのIPv6の取得が
うまくいきません。
何が問題なのかご教示いただければと思います。
サーバー側IPv6アドレス: 2001:1::1/64
DHCPスコープ範囲: 2001:1::1~2001:1::FFFF
除外アドレス:2001:1::1/64
ちなみに、ネットワークモニタでパケットをみると、ipconfig /renew6 の際に
IPv6:RouterSolicitationパケットがクライアントからサーバーへ出ていますが、
サーバーからの応答はありません。
IPv6のアドレッシングについてよくわかっていない部分もありますので、基本的な設定に問題が
あるかもしれませんが、そのあたりについてもアドバイス頂ければと思います。
よろしくおねがいします。
回答
-
DHCPv6 は DHCPv4 と動作が異なり、RA(Router Advertisement) を喋るルータ等のL3中継装置とセットで動作します。
DHCPv6 クライアントの動作コントロールは、ルータのMフラグとOフラグの設定で以下のような意味になります。
Mフラグ/Oフラグ
ON/ON: アドレスとそれ以外の情報をDHCPv6で構成する(ステートフル)
ON/OFF: アドレス構成はDHCPv6を使用するが、それ以外の情報は手動等の別の手段で設定する
OFF/ON: アドレス構成にはRAを使用するが、それ以外の情報はDHCPv6を使用する(ステートレス)
OFF/OFF: DHCPv6を使用しない ← 今この状態だと思います
ちなみに、DHCPv4はステートフル動作ですが、DHCPv6の場合は、ステートレスで構成するのが一般的です。
田辺さんの書かれた方法は、サーバにRAを喋られせる方法です。1セグメントのテスト環境とかであればこの設定もありですが、運用環境ではルータかL3SWにRAを喋らせるのが一般的な構成ですね。(WS2008をルータにするのなら話は別ですが)
RAの設定がされていれば、Vista(及びWS2008) はデフォルト状態で IPv6 アドスレを自動構成します(特に設定変更は必要ありません)
完全に蛇足ですが、IPv4で言うところのプライベートアドレスはIPv6だと RFC4193 の ULA(Unique Local IPv6 Unicast Address)となり、アドレス空間は fd00::/8 になります。
一応 RFC では計算してた値を ULA として使えとありますが、一時的なテストであれば適当でも良いかもです。
社内でパーマネントに使う ULA でしたら、kame プロジェクトの ULA 計算サイトで計算できます。
http://www.kame.net/~suz/gen-ula.html -
デフォルトのままでは、DHCPv6 solicit や、request が出ない様です。
Vistaの中身に関して詳しくないので、正しいのかどうか分かりませんが、
safe-mode で立ち上げて、netsh から
routerdiscovery=enabled
managedaddress=enabled.
とすると、取敢えず DHCPv6 solicit, request を出して serverからの replyを
受付ける様になりました。 当初 routerdiscovery が、disable のままだと
managedaddress を変更できなかったのですが、試しにdchp に変更すると
managedaddressも変更可能となりました。 きちんと調べて正しく
設定し直す必要があると思いますが。
すべての返信
-
クライアント側で、DHCP からアドレスを取るようになっていますでしょうか?
netsh interface ipv6 show interface 8 の
ルーター発見 : dhcp
管理されたアドレス構成 : enabled
その他のステートフル構成 : enabled
の部分です。(8 はインターフェイスのインデックス、または "ローカル エリア接続" など。)
上記の設定は、
netsh interface ipv6 set interface 8 router=dhcp
netsh interface ipv6 set interface 8 managedaddress=enabled
netsh interface ipv6 set interface 8 othersettings=enabled
で行います。くわしくは、以下をご参照ください。
Cable Guy: DHCPv6 プロトコル (TechNet Magazine 2007 年 3 月号)
http://www.microsoft.com/technet/technetmag/issues/2007/03/CableGuy/default.aspx?loc=jp/
-
訂正追加です。
クライアント側で設定をするのではなく、サーバー側で適切に設定するべきでした。
つまり、
-
クライアント側
-
デフォルト設定のまま
-
-
サーバー (Windows Server 2008) 側
-
ルーターアドバタイズの有効化
-
netsh interface ipv6 set interface [if] advertise=enabled
-
-
ステートフル管理の有効化 (DHCPv6 による IP アドレス管理)
-
netsh interface ipv6 set interface [if] managedaddress=enabled
-
-
その他のステートフル構成フラグの有効化 (必要であれば)
-
netsh interface ipv6 set interface [if] otherstateful=enabled
-
-
DHCPv6 の設定
-
スコープを作成し、有効化
-
-
のようにしてお試しください。
-
-
デフォルトのままでは、DHCPv6 solicit や、request が出ない様です。
Vistaの中身に関して詳しくないので、正しいのかどうか分かりませんが、
safe-mode で立ち上げて、netsh から
routerdiscovery=enabled
managedaddress=enabled.
とすると、取敢えず DHCPv6 solicit, request を出して serverからの replyを
受付ける様になりました。 当初 routerdiscovery が、disable のままだと
managedaddress を変更できなかったのですが、試しにdchp に変更すると
managedaddressも変更可能となりました。 きちんと調べて正しく
設定し直す必要があると思いますが。
-
DHCPv6 は DHCPv4 と動作が異なり、RA(Router Advertisement) を喋るルータ等のL3中継装置とセットで動作します。
DHCPv6 クライアントの動作コントロールは、ルータのMフラグとOフラグの設定で以下のような意味になります。
Mフラグ/Oフラグ
ON/ON: アドレスとそれ以外の情報をDHCPv6で構成する(ステートフル)
ON/OFF: アドレス構成はDHCPv6を使用するが、それ以外の情報は手動等の別の手段で設定する
OFF/ON: アドレス構成にはRAを使用するが、それ以外の情報はDHCPv6を使用する(ステートレス)
OFF/OFF: DHCPv6を使用しない ← 今この状態だと思います
ちなみに、DHCPv4はステートフル動作ですが、DHCPv6の場合は、ステートレスで構成するのが一般的です。
田辺さんの書かれた方法は、サーバにRAを喋られせる方法です。1セグメントのテスト環境とかであればこの設定もありですが、運用環境ではルータかL3SWにRAを喋らせるのが一般的な構成ですね。(WS2008をルータにするのなら話は別ですが)
RAの設定がされていれば、Vista(及びWS2008) はデフォルト状態で IPv6 アドスレを自動構成します(特に設定変更は必要ありません)
完全に蛇足ですが、IPv4で言うところのプライベートアドレスはIPv6だと RFC4193 の ULA(Unique Local IPv6 Unicast Address)となり、アドレス空間は fd00::/8 になります。
一応 RFC では計算してた値を ULA として使えとありますが、一時的なテストであれば適当でも良いかもです。
社内でパーマネントに使う ULA でしたら、kame プロジェクトの ULA 計算サイトで計算できます。
http://www.kame.net/~suz/gen-ula.html