VPN はどのようにして他のインターフェースへの DNS クエリをブロックするのでしょうか?

VPN はどのようにして他のインターフェースへの DNS クエリをブロックするのでしょうか?

私は、VPN の有無にかかわらず DNS ルーティングがどのように機能するかを理解しようとしています。次のインターフェイスがあります。

Wireless LAN adapter Wi-Fi:
   DNS Servers . . . . . . . . . . . : 192.168.40.1

nslookup はこれに対して機能します:

nslookup google.com 192.168.40.1
Address:  192.168.40.1
Non-authoritative answer:
Name:    google.com

VPN を実行している場合は別のインターフェースが取得され、DNS クエリはデフォルトでこれにルーティングされます。

Unknown adapter Mullvad:
   DNS Servers . . . . . . . . . . . : 10.8.0.1

しかし、他のインターフェースで DNS をクエリしようとすると、クエリは成功しません。

nslookup google.com 192.168.40.1
DNS request timed out.

ただし、ローカル サーバーにリクエストを送信することは問題なく可能です。

curl 192.168.40.22:8080
OK

これはどのように機能するのでしょうか? IP トラフィックは通過しますが、DNS はブロックされますか? VPN は通常、トラフィックをゲートウェイに誘導するためにルート テーブル ルールを設定すると理解しています。しかし、それは IP 用ですか? DNS は影響を受けないはずです。この背後にある基本的なメカニズムは何ですか? 他のインターフェイスで DNS クエリを強制する方法はありますか?

これは Windows 上でのことですが、Linux でも同様に動作すると思います。

答え1

簡潔な答え:

設定方法に応じて、VPNクライアントはすべてのトラフィックを仮想インターフェースに強制的に通過させます。つまり、 ローカル LAN 上のトラフィックをブロックします。ローカル トラフィックがないため、トンネルがアクティブな場合、クライアントは異なるネーム サーバーを使用できます。

答え2

私は懐かしいipconfigいずれにせよ、両方のシナリオでは、VPN なしでは IP とデフォルトのネーム サーバーをローカル DCHPd から取得し、マシンがローカル ネーム サーバーに DSN 解決を要求できるようです。

VPN に接続した後、VPN サーバーから別の IP を取得し、VPN インターフェイスへのデフォルト ルートを設定したようです。つまり、すべてのトラフィックが VPN を通過し、ローカル ネーム サーバーに到達できない可能性があります。

これを解決するには、両方のネットワークからアクセスできるグローバル DNS サーバー (8.8.8.8 や 1.1.1.1 など) を使用します。

関連情報