前回で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
なお、プレフィックスエントリの選択はテキトーです。