Windows 10 IPv6を無効化せずにIPv4を優先させる

スポンサーリンク

IPv6を有効のままで、IPv4を優先させる設定変更の方法です。

IPv6を有効かつIPv4を優先する設定の理由

Windows 10は、初期インストール状態で、IPv6が有効で、かつ、IPv4よりも優先されています。多くの場合、IPv4ネットワークの環境では、IPv6を無効化していましたが、そろそろ、IPv6も意識した方が良いのかも知れません。ただ、実際は、まだまだ、IPv4ネットワーク環境が殆どだと思いますので、IPv6を無効化せずにIPv4を優先的に使用するようにします。

設定変更前の状態

自身のホスト名(testserv)にpingを実行すると、IPv6のリンクローカルアドレスで応答が返ってくると思います。

IPv6のリンクローカルアドレスは、同一セグメント上で使用するアドレスです。
先頭10ビットが「1111 1110 10」から始まり、16進数表記では「fe80::/10」となります。ただし、続く54ビットは、オールゼロとなりますので、実際は、「fe80::/64]となります。

この検証で返されたIPアドレスは、「fe80::6d77:7a35:92c1:ac8e%14」で、下記のように分けられます。

fe80:: → リンクローカルアドレスであることを示している。(10ビット+54ビット)
6d77:7a35:92c1:ac8e → 自動割り振りされたインターフェースIDを示している(64ビット)
%14 → アダプターのID番号

PS C:\> ping testserv

TESTSERV.intad.orangetakam.com [fe80::6d77:7a35:92c1:ac8e%14]に ping を送信しています 32 バイトのデータ:
fe80::6d77:7a35:92c1:ac8e%14 からの応答: 時間 <1ms
fe80::6d77:7a35:92c1:ac8e%14 からの応答: 時間 <1ms
fe80::6d77:7a35:92c1:ac8e%14 からの応答: 時間 <1ms
fe80::6d77:7a35:92c1:ac8e%14 からの応答: 時間 <1ms

fe80::6d77:7a35:92c1:ac8e%14 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 0ms、平均 = 0ms

現在の状態を確認します。優先順位の値が大きいものが優先されます。

PS C:\> netsh interface ipv6 show prefixpolicies
アクティブ状態を照会しています...

優先順位      ラベル  プレフィックス
----------  -----  --------------------------------
        50      0  ::1/128       ・・・ ループバックアドレス
        40      1  ::/0          ・・・ デフォルトルート
        35      4  ::ffff:0:0/96 ・・・ IPv4射影アドレス これを上位に持っていく
        30      2  2002::/16     ・・・ 6to4
         5      5  2001::/32     ・・・ teredo
         3     13  fc00::/7      ・・・ ユニークローカルアドレス
         1     11  fec0::/10     ・・・ サイトローカルアドレス(廃止)
         1     12  3ffe::/16     ・・・ 6bone(返還)
         1      3  ::/96         ・・・ IPv4互換アドレス(廃止)

設定変更の実行

設定変更はコマンドで行います。すべてのものについて、再設定が必要となります。

PS C:\> netsh interface ipv6 set prefixpolicy ::1/128 50 0
OK

PS C:\> netsh interface ipv6 set prefixpolicy ::/0 40 1
OK

PS C:\> netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 100 4 ・・・ 優先順位「100」に
OK

PS C:\> netsh interface ipv6 set prefixpolicy 2002::/16 30 2
OK

PS C:\> netsh interface ipv6 set prefixpolicy 2001::/32 5 5
OK

PS C:\> netsh interface ipv6 set prefixpolicy fc00::/7 3 13
OK

PS C:\> netsh interface ipv6 set prefixpolicy fec0::/10 1 11
OK

PS C:\> netsh interface ipv6 set prefixpolicy 3ffe::/16 1 12
OK

PS C:\> netsh interface ipv6 set prefixpolicy ::/96 1 3
OK

設定変更後の状態

優先順位が問題なく設定できているかを確認します。

PS C:\> netsh interface ipv6 show prefixpolicies
アクティブ状態を照会しています...

優先順位   ラベル  プレフィックス
----------  -----  --------------------------------
       100      4  ::ffff:0:0/96 ・・・ これが上位になった(IPv4射影アドレス)
        50      0  ::1/128
        40      1  ::/0
        30      2  2002::/16
         5      5  2001::/32
         3     13  fc00::/7
         1     11  fec0::/10
         1     12  3ffe::/16
         1      3  ::/96

自身のホスト名に対し、pingを実行してIPv4が返ってくることを確認します。

PS C:\> ping testserv

TESTSERV.intad.orangetakam.com [192.168.11.200]に ping を送信しています 32 バイトのデータ:
192.168.11.200 からの応答: バイト数 =32 時間 <1ms TTL=128
192.168.11.200 からの応答: バイト数 =32 時間 <1ms TTL=128
192.168.11.200 からの応答: バイト数 =32 時間 <1ms TTL=128
192.168.11.200 からの応答: バイト数 =32 時間 <1ms TTL=128

192.168.11.200 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 0ms、平均 = 0ms