Windows10で優先的にIPv6通信する

前回でFortigate側の設定を書きましたが、今回はPCの設定です。
ざっくり言いますと、ユニークローカルアドレス(fc00::/7)の優先順位をIPv4アドレス(::ffff:0:0/96)より高く設定します。
何も設定していなければ、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

また、”netstat -nt”でセッション状態を確認してもIPv4ばかり、youtube.comにpingしてもIPv4アドレスに対してですし
“netstat -nt 1″で観察していても稀にIPv6がでてくるだけだと思います。

そこで、上記の”fc00::/7″の優先順位を”::ffff:0:0/96″より高くします
設定は管理者権限が必須です。

netsh interface ipv6 set prefixpolicy fc00::/7 38 13
OK
>netsh interface ipv6 set prefixpolicy ::1/128 50 0
OK

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

優先順位 ラベル プレフィックス
———- —– ——————————–
50 0 ::1/128
40 1 ::/0
38 13 fc00::/7
35 4 ::ffff:0:0/96
30 2 2002::/16
5 5 2001::/32
1 11 fec0::/10
1 12 3ffe::/16
1 3 ::/96

設定を変更した後、諸々を反映するためにPCを再起動します。
PCの再起動後はIPv6で通信するようになってる筈です。

なお、”netsh interface ipv6 set prefixpolicies”すると上記で変更した内容以外は消えます。
下記は上記コマンドだけ実行した場合です。

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

優先順位 ラベル プレフィックス
———- —– ——————————–
50 0 ::1/128
38 13 fc00::/7

もし上記で”netsh interface ipv6 set prefixpolicy fc00::/7 38 13″だけ設定して不具合が起きたら
必要に応じて下記のように追加します。

netsh interface ipv6 set prefixpolicy fc00::/7 38 13
OK
>netsh interface ipv6 set prefixpolicy ::1/128 50 0
OK
>netsh interface ipv6 add prefixpolicy ::/0 40 1
OK
>netsh interface ipv6 add prefixpolicy 2002::/16 30 2
OK
>netsh interface ipv6 add prefixpolicy 2001::/32 5 5
OK

下記は本当にいるのかなぁー・・。
>netsh interface ipv6 add prefixpolicy ::/0 40 1
OK
>netsh interface ipv6 add prefixpolicy ::ffff:0:0/96 35 4
OK


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

優先順位 ラベル プレフィックス
———- —– ——————————–
50 0 ::1/128
40 1 ::/0
38 13 fc00::/7
35 4 ::ffff:0:0/96
30 2 2002::/16
5 5 2001::/32

なお、プレフィックスエントリの選択はテキトーです。