先週までは、Active Directoryに関連する仕様変更について取り上げた。今週からはネットワーク関連の仕様変更について考える。今回は、Windows Server 2008で標準対応になったIPv6を見てみよう。
設定手順の変更とGUI化
Windows XPやWindows Server 2003でも、IPv6を利用することはできた。ただし、初期状態ではIPv6を組み込んだ状態になっておらず、後からネットワーク接続設定のプロパティ画面で追加する必要がある。
また、こうしてIPv6を追加しても、IPv4と違ってプロパティ画面を表示させることができない。IPv6関連の設定を変更する際には、コマンドプロンプトでnetshコマンドを使用する必要があった。もっとも、IPv6が備える特徴の1つは構成の自動化であり、IPv4のように手作業でIPアドレスを設定しなければならない場面は少ないが、何であれ設定を変更するためにnetshコマンドを使用しなければならないのは、やはり敷居が高い。
それに対してWindows Server 2008では、Windows Vitstaと同様に最初からIPv6とIPv4の両方を組み込んだデュアルスタックになっており、かつ、通信可能であればIPv6を優先的に使用するようになっている。
Windows Server 2008の既定の状態では、IPv4と同様にIPv6アドレスも自動構成する設定になっている。もしもIPv6用のDHCPサーバやルータが稼働していなければ、LINKLOCALアドレスを使って自動構成する。この動作もWindows Vistaと同様であり、クローズドなLAN内部では何も手間をかけずにIPv6を利用できるようになっている(ただし、LINKLOCALアドレスはルータやレイヤー3スイッチの中継対象にならないので、ルータやレイヤー3スイッチをまたいでLINKLOCALアドレスで通信することはできない)。
現実の運用では、128ビットもあるIPv6アドレスをすべて手作業で設定する場面は考えにくい。ネットワークプレフィックスだけ決定して、それをIPv6対応ルータに設定してルータアドバタイズを有効にするのが、もっとも現実的な設定方法だろう。こうするだけで、IPv6用のアドレスとデフォルトゲートウェイは自動構成する。
IPv6 完全対応 (DNSサーバ、DHCPサーバも対応)
Windows Server 2008はWindows Vistaと同様、OSのプロトコルスタックにIPv6が加わったというだけでなく、TCP/IP関連のツール類や各種のサーバ機能についても、全面的にIPv6に対応している。
たとえば、DNSサーバでは前方参照ゾーンにAレコードとAAAAレコードの両方を登録できる。前者はIPv4、後者はIPv6を利用しているホストの登録に使用するものだ。逆引き参照ゾーンについても、IPv4用の逆引き参照ゾーンとIPv6用の逆引き参照ゾーンの両方を登録できる。もちろん、いずれについてもDNS動的更新が機能する。
IPv6アドレスの割り当てに際しては、ステートフルとステートレスという2種類の方法がある。Windows Server 2008のDHCPサーバ機能は、単にIPv6に対応しただけでなく、IPv6ステートレスとIPv6ステートフルの両方に対応している。
IPv6ステートレスとは、IPv6アドレスを構成する128ビットのうち上位64ビットのネットワークプレフィックス(IPv4でいうところのネットワークアドレスのこと)を与えると、下位64ビットのインタフェースIDについては、個々のクライアントがMACアドレスを基にして自動構成するものだ。
ただし、IPv6ステートレスでは同じLANアダプタを使い続ける限り、常に同じインタフェースIDを設定することになる。すると、ネットワークプレフィックスとMACアドレスが分かればIPv6アドレスがいくつになるかも分かってしまうため、そのことがセキュリティ上のリスクにつながる可能性も考えられる。そこで、MACアドレスによらずに、インタフェースIDを割り当てられるようにするのがIPv6ステートフルだ。