OpenConnect で VPN スプリット トンネルを使用する場合、Windows が IPv4 を優先するのはなぜですか?

OpenConnect で VPN スプリット トンネルを使用する場合、Windows が IPv4 を優先するのはなぜですか?

Windows 10 で OpenConnect 8.03 を使用して VPN に接続しています。VPN のプロファイルは、VPN のサブネットのルートのみを設定します。その他のすべての IPv4 トラフィックは、通常の接続経由でルーティングされます。私の自宅のセットアップは、IPv4 と IPv6 のデュアル スタックです。

VPN に接続していない場合は、当然ながら IPv6 が IPv4 より優先されます。ただし、VPN に接続するとすぐに、VPN 外部のトラフィックであっても IPv4 が IPv6 より優先されます。トンネルに接続したroute print後、VPN の単一の /16 IPv4 サブネットに低いメトリックが追加されることを除いて、IPv4 または IPv6 のメトリックに違いは表示されません。また、netsh interface ipv6 show prefixpolicies違いは表示されません。一般に、IPv6 は引き続き機能します (IPv6 のみのホストに接続するか、IPv6 を強制することで確認済み)。

Windows 10 ではなく Linux で OpenConnect を使用して VPN に接続すると、IPv6 が IPv4 よりも正しく優先されます。

答え1

どうやら、IPv4 のみの VPN に接続すると、DNS ルックアップは IPv4 のみの接続を介して実行されます。デフォルトの構成では、他のインターフェイスが IPv6 接続を提供しているかどうかに関係なく、Windows は A レコードのみを照会します。

IPv4 のみの接続でも Windows に AAAA レコードを照会するように強制することができます。そのためには、次のレジストリ キーを追加する必要があります。

HKLM\System\CurrentControlSet\Services\Dnscache\Parameters\

DWORD "AddrConfigControl" = "0"

値が存在しない場合は、作成する必要があります。再起動は必要ありません。設定はほぼすぐに有効になります。

関連情報