2011年7月25日

Windows Vista/Server 2008/7/Server 2008 R2でIPv6コンポーネントを無効にする

Windows Vista以降のOSではIPv4とIPv6がデュアルIPレイヤという形で統合されて実装されていて、IPv6が不要であってもアンインストールできなくなっています。そこでIPv6が不要な(あるいは邪魔な)場合にIPv6コンポーネントを無効にする方法(ただしIPv6のループバックインタフェースは無効にならないので注意)。とりあえずメモ。

診断ツール Fix it: Windows Vista、Windows 7、および Windows Server 2008 で特定の IPv6 (Internet Protocol version 6) を無効にする方法に関する問題

直接レジストリ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents
の値(DWORD)を、
  • 0: IPv6有効(デフォルト)
  • 0xFFFFFFFF: IPv6無効
  • 0x20: プレフィックスポリシーでIPv4を使用
  • 0x10: IPv6ネイティブインタフェース無効
  • 0x01: IPv6トンネルインタフェース無効
と書き換えても問題ありませんが、レジストリの書き換えを行ってくれるFix itウィザードも用意されています。

またIPv6を無効にするまでもないけれどもIPv4を優先に設定したいような場合はコマンドプロンプトから

netsh interface ipv6 show prefixpolicies
で表示されるプレフィックス"::ffff:0:0/96"(IPv4-Mapped IPv6 Address)が最優先になるように、管理者権限を持つコマンドプロンプトから

netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 100 4
(最後から2番目の値が優先度(大きいほうが優先)で最後の値が当該プレフィックスのラベル)とすればいいようです(こちらはIPv6を有効にしたWindows XPでも使えます)。デフォルトの設定に戻すときは管理者権限を持つコマンドプロンプトから

netsh interface ipv6 reset
として再起動します。

元ねたはセキュリティホール memo2011/07/12の記事と、IPv4 を IPv6 より優先にするおよびWindows 7でIPv4をIPv6に対して優先にする方法 - 徒然日記(2011-03-30)

0 件のコメント: