自分自身(localhost)にpingを飛ばすとIPv6で返してくる
▶ in ネットワーク posted 2016.01.07 Thursday / 23:32
IPv6を無効にしているにもかかわらず、localhostにpingを飛ばすとIPv6のアドレスで返してくることがあります。
IPv4で返してくるように設定するにはどうすればいいか聞かれることがあるので、回避策をメモしておきます。
【現象】自分自身(localhost)にpingを飛ばすとIPv6で返してくる
【回避策】IPv4をIPv6より優先に設定することで回避できます。
- 最初に現在の優先順位を確認します。
現在の優先順位を確認するコマンド
「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
---------------------------------------------------------
- ここで、"ffff:0:0/96"(IPv4互換)プロトコルを、最上位に持ってくるために、コマンドプロンプトを管理者で起動して、下記コマンドを実行します。
---------------------------------------------------------
netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 55 4
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 2001::/32 5 5
netsh interface ipv6 set prefixpolicy fc00::/7 3 13
netsh interface ipv6 set prefixpolicy fec0::/10 1 11
netsh interface ipv6 set prefixpolicy 3ffe::/16 1 12
netsh interface ipv6 set prefixpolicy ::/96 1 3
---------------------------------------------------------
- 再度「netsh interface ipv6 show prefixpolicies」で優先順位を確認します。
「ffff:0:0/96」が1番上に表示されていればOKです。
優先順位 ラベル プレフィックス
---------- ----- --------------------------------
55 4 ::ffff:0:0/96 ←これでOK
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で返してくるようになります。
元の設定に戻すには
コマンドプロンプトを管理者として起動して下記コマンドを実行後、OSを再起動します。
netsh interface ipv6 reset