こんにちは、阿久津です。2011年6月から実施が始まったWorld IPv6 dayは、ISOC(Internet Society)のIPv6トライアルに参加している数百もの法人団体が、自社サービスを一日だけIPv6に対応させるという催しです。ちょうど先週となる6日に第二回が実施されましたが、最近ひしひしとIPv6への切り替えが必要な気がしてきました。

そもそもはIPアドレス枯渇問題が起因となって誕生したIPv6。十数年前からIPv4アドレスが枯渇するとして、ネットワークに強いコンピューター雑誌で話題に上るようになりました。かく言う筆者もその存在は認識していましたが、ISP(インターネットサービスプロバイダー)が対応しないとユーザーレベルでは何もできませんので、そのまま記憶の片隅に追いやっていたのが現状です。

既にWindows XPの時点でIPv6をサポートし、Windows Vista以降は初期状態で有効になりましたが、ネットワーク環境によってはWebサーバーに接続するまでに遅延が発生するケースもあり、無効にしていた方も少なくないでしょう。IPv4環境でもIPv6を必要するサーバーに接続する際に、同パケットをIPv4でカプセル化する技術を用いることで、そのままネット接続することもできますので、今すぐIPv6環境に切り替える必要はありません。

従来はネットワークデバイスのプロパティダイアログの「インターネットプロトコルバージョン6」を外す方法や、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\ParametersキーにDWORD値「DisabledComponents」を作成し、値のデータを「FF」に変更して、IPv6を無効にしていたことでしょう(図01~02)。

図01 <インターネットプロトコルバージョン6>のチェックを外して、IPv6を無効にすることができます

図02 レジストリからIPv6を無効にしますと、各ネットワークデバイスに対して抑制効果が発揮されます

今回はこの「DisabledComponents」のデータ値を操作して、IPv6の無効化を切り替えるチューニングをお届けします。

1.管理者権限でレジストリエディターを起動します。
2.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parametersキーを開きます。
3.DWORD値「DisabledComponents」を作成します。
4.値のデータを「ffffffff」に変更します。
5.レジストリエディターを終了し、コンピューターを再起動します。

これでチューニングが終了しました(図03~09)。

図03 [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「regedit」と入力して<OK>ボタンをクリックします

図04 レジストリエディターが起動したら、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parametersキーをたどって開きます

図05 右ペインの何もないところを右クリックし、メニューから<新規>→<DWORD値>とクリックします

図06 値名を「新しい値 #1」から「DisabledComponents」に変更します

図07 DWORD値「DisabledComponents」をダブルクリックし、値のデータを「ffffffff」に変更して<OK>ボタンをクリックします

図08 操作を終えたら<×>ボタンをクリックしてレジストリエディターを終了させます

図09 <スタート>メニューの電源ボタンから<再起動>をクリックしてコンピューターを再起動します

早速結果を確認してみましょう。Windows 7にログオンしましたら、コマンドプロンプトを起動し、「netsh interface ipv6 show interface」を実行してください。同コマンドはIPv6が割り当てられたネットワークインターフェースを表示させるというもの。するとチューニング前には各ネットワークインターフェースが表示されていましたが、チューニング後はIPv6ループバックインターフェースのみとなりました。また、「ipconfig」コマンドによる実行結果も、IPv4アドレスのみとなります(図10~12)。

図10 こちらはチューニング前の状態。各ネットワークインターフェースが列挙されます

図11 こちらはチューニング後の状態。IPv6ループバックインターフェースのみとなりました

図12 「ipconfig」コマンドによる結果も紹介しましょう。ご覧のとおりIPv6アドレスの割り当ては行われていません

ちなみにステップ03で入力した16進数は、32ビットのバイナリデータですので、プリフィックスポリシーでIPv4ではなくIPv6を使用する場合は、6番目のビットを「0」に変更します。今回設定した「0xffffffff」を2進数に変換しますと「11111111111111111111111111111111」ですので、同設定を適用すると「11111111111111111111111111011111」。これを16進数に変換しますと「0xffffffdf」となります。

"ネイティブのIPv6インターフェースを有効にする"場合は5番目、"すべてのIPv6トンネルインターフェースを有効にする"場合は0番目、"IPv6ループバックインターフェースを除くすべてのIPv6インターフェースを有効にする"場合は、0番目と5番目のビットを「0」に変更してください。なお、2進数16進数の変換はWindows 7の付属ツールである電卓の「プログラマ」モードが便利なのでお勧めです。

それでは、また次号でお会いしましょう。

阿久津良和(Cactus)