Windows Server 2016 IPv6は無効化より優先度変更がマイクロソフトの推奨

これまで問題を起こすという理由で、Windows Server、PCのIPv6は無効化していたと思いますが、実は無効化より優先度変更がマイクロソフトの推奨なんだそうです。


無効化して問題になったことはありませんが、仮に今後、IPv6を使用するケースが出てきた時を想定すると、優先度を変更する方針のほうがいいかもしれません。


そして、こちらがその情報元です。

上級ユーザー向けに Windows で IPv 6 を構成するためのガイダンス

https://support.microsoft.com/ja-jp/help/929852/guidance-for-configuring-ipv6-in-windows-for-advanced-users

 

適用対象: Windows 10, version 1809Windows Server 2019, all versionsWindows Server 2016

 


そして、概要部分に以下のように無効化しないことを推奨しています。

 

IT 管理者が IPv6 を無効にすることはよくあることです。 多くの場合、名前解決の問題など、一部の不明なネットワーク関連の問題が原因です。

重要 インターネット プロトコル バージョン 6 (IPv6) は、Windows Vista および Windows Server 2008 以降のバージョンで必須の部分です。 マイクロソフトは、IPv6 またはそのコンポーネントを無効にすることは推奨しません。 無効にすると、一部のコンピューターは機能しなくなることがあります。

IPV6 を無効にするのではなく、プレフィックス ポリシーで「IPV6 よりも IPV4 を優先する」を使用することをお勧めします。

 

つまり、プレフィックス ポリシーで「IPV6 よりも IPV4 を優先する」を使用するを選ぶことにします。


また、マイクロソフトの情報にある方法で設定変更するとサーバーの再起動が必要になります。再起動せずに優先度を変更する場合は、ネットですでに情報がありますが、以下のように優先度の順番を変更してあげることで、IPv4の優先度をあげることができます。コマンドプロンプトで管理者権限で以下のコマンドを実行します。

 

netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 50 0
netsh interface ipv6 set prefixpolicy ::1/128 40 1
netsh interface ipv6 set prefixpolicy ::/0 30 2
netsh interface ipv6 set prefixpolicy 2002::/16 20 3
netsh interface ipv6 set prefixpolicy ::/96 10 4

 

ちなみに、自宅のWindows10でもデフォルトではIPv6が優先度が高いです。
# ping localhost

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

 

以下はデフォルトの設定情報です。「netsh interface ipv6 show prefixpolicies」で確認できます。


#netsh interface ipv6 show prefixpolicies
アクティブ状態を照会しています...

優先順位 ラベル プレフィックス
---------- ----- --------------------------------
50 0 ::1/128
40 1 ::/0
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

 

また、元に戻す場合は、以下を実行します。「netsh interface ipv6 reset」の場合は、再起動が求められるので注意が必要です。
netsh interface ipv6 set prefixpolicy ::1/128 50 0
netsh interface ipv6 set prefixpolicy ::/0 40 1
netsh interface ipv6 set prefixpolicy 2002::/16 30 2
netsh interface ipv6 set prefixpolicy ::/96 20 3
netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 10 4

 

IPv6で問題が起こる場合は、こちらのやり方でも対処が可能です。Windows Server 2019で試してみましたが、1行だけ追加するとOS再起動後にIPv6で応答してしまうという事象を確認しましたので、設定が正しいかどうかはOS再起動後に確認したほうが確実だと思います。