Windows10でIPv4とIPv6の優先度を変更する方法

Windows10でIPv4とIPv6の優先度を変更する方法

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

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

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

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

CentOS7でIPv4とIPv6の優先度を変更する方法
最近のOSではWindows、Linux問わずIPv4よりIPv6が優先されていますが、世の中的にはまだまだIPv4の利用が多く、IPv6が優先的に使用されると通信トラブルに見舞われることがあります。

動作環境

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
Windows10 Pro 64bit21H1

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

IPv4の優先順位を上げる

IPv4の優先度を上げるには、プレフィックス「::ffff:0:0/96」の優先順位を一番高くします。

管理者権限でコマンドプロンプトを起動し、以下のコマンドを実行し優先順位を変更します。

以下のコマンドでは、プレフィックス「::ffff:0:0/96」の優先順位を「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

これで変更完了です。

元に戻すには

設定をデフォルトの状態に戻したいときは、管理者権限でコマンドプロンプト起動し、以下のコマンドを実行してから、Windows10を再起動します。

> netsh interface ipv6 reset

あとがき

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

記事が役立ったらシェアしてくれるとうれしいです。