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