Windows10:IPv4とIPv6の優先度を変更する

私達が普段使っているWindowsやLinuxでもIPv6が使えるようになっていますが、まだまだ普及しているとは言えない昨今です。

Windows10では、デフォルトでIPv4よりIPv6が優先して使用されるようになっていますが、まだまだIPv4が大勢を占めている状況では、今しばらくはIPv4を優先して使用するよう設定するのが無用なトラブルを避ける意味でも有効かと思います。

ただし、IPv6もこれから徐々に普及していくことを考えると、IPv6を無効化してしまうのではなく、優先度をIPv4より低くしておくのがベターではないでしょうか。

そこで、ここでは Windows10でIPv4を優先して使うよう設定する方法を紹介します。

手順

現在の状態を確認

コマンドプロンプトで、以下のコマンドを実行し現在の優先順位を確認します。

netsh interface ipv6 show prefixpolicies

アクティブ状態を照会しています...

優先順位   ラベル  プレフィックス
----------  -----  --------------------------------
        50      0  ::1/128      ←IPv6ループバックアドレス
        40      1  ::/0         ←IPv6デフォルトルート
        35      4  ::ffff:0:0/96
        30      2  2002::/16
         5      5  2001::/32
         3     13  fc00::/7
         1     11  fec0::/10
         1     12  3ffe::/16
         1      3  ::/96

優先順位「35」のプレフィックス「::ffff:0:0/96」がIPv4通信に相当します。見ていただくと「::ffff:0:0/96」の上に「::1/128」「::/0」があります。これらがIPv6通信となり優先順位がIPv4より高いことがわかります。

試しに自分自身にPingを打ってみると、以下のように自分自身のアドレスが「::1」となっていることからIPv6で通信していることがわかります。

ping localhost

PC-001 [::1]に ping を送信しています 32 バイトのデータ:
::1 からの応答: 時間 <1ms
::1 からの応答: 時間 <1ms
::1 からの応答: 時間 =1ms
::1 からの応答: 時間 <1ms

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

設定変更

プレフィックス「::ffff:0:0/96」の優先度を一番高くすることでIPv4通信を優先的に利用できるようになります。ここでは、優先順位を「60」にして一番上にします。

管理者権限でコマンドプロンプトを起動し、以下のコマンドを実行し優先順位を変更します。変更したら、再度状態を確認してみます。

netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 60 4
OK
netsh interface ipv6 show prefixpolicies
アクティブ状態を照会しています...

優先順位   ラベル  プレフィックス
----------  -----  --------------------------------
        60      4  ::ffff:0:0/96  ←一番上になりました
        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を打ってみます。自身のIPアドレスが「127.0.0.1」であることからIPv4で通信していることがわかります。

ping localhost

PC-001 [127.0.0.1]に ping を送信しています 32 バイトのデータ:
127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128
127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128
127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128
127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128

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

これで変更完了です。

元に戻すには

設定をデフォルトの状態に戻すには、管理者権限でコマンドプロンプト起動し「netsh interface ipv6 reset」 コマンドを実行し、マシンを再起動します。

まとめ

IPv6に対応したサイト・サービスがもう少し普及してきたら、IPv6優先に戻そうかな。

スポンサーリンク