次のシナリオを検討してください。
独自のプライベートDNSサーバー(
lan-dns
と呼びます)を使用してローカルエリアネットワークに接続しています。このDNSサーバーは、LAN上の一部のプライベートホストの名前を解決するために使用されます。その他のDNS要求は、インターネット上のDNSサーバーに転送されます。VPN経由で別のリモートLANに接続したい。リモートLANには、リモートネットワーク上のプライベートホストの名前を解決するために必要なプライベートDNSサーバー(引数のために
vpn-dns
という名前)もあります。not VPNに接続すると、LAN上のホストに名前でアクセスできるようになります。ただし、am VPNに接続すると、リモートネットワークのDNSがローカルネットワークのDNSを上書きするため、ローカルネットワークのホストにアクセスできなくなります。
VPNに接続しているときに、DNSサーバーを強制的に
lan-dns
に戻すと、リモートネットワーク上のホストの名前を解決できなくなります。
この問題を解決する最も簡単な方法は何ですか?それも可能ですか?
このシナリオはますます一般的になっているはずですが、私が見つけることができるエレガントな解決策はないようです。
IPレベルでは、探しているものはスプリットトンネリングと呼ばれ、クライアントから構成されます(少なくとも管理されていないシナリオでは)。ローカルLANアドレスへの要求がローカル(論理)ネットワークを使用できるようにし、リモートLANアドレスへの要求がVPNトンネルを通過できるようにします。スプリットトンネリングが有効になっていない場合、VPNに接続されているホストは、ローカルLAN IP範囲内の他のマシンとまったく通信できないため、DNS解決の問題以上のものになります。スプリットトンネリングを有効にすると、イントラネットにアクセスする場合、デフォルトルートはローカルLAN上のゲートウェイを指す必要があります。そうしないと、使用するネットワークがあいまいになります。
ただし、ここでの問題はDNSです。 Windows(およびLinuxも)は、DNSサーバー構成を個々のルーティング可能な接続ではなくローカルインターフェイスに関連付けます。つまり、一度に1つのDNSサーバーしか使用できず、宛先アドレスに基づいて条件付きで1つを選択することはできません。ここで説明されているように、VPNのPCでDNSMasqを実行することを検討してください: http://blog.nixpanic.net/2013/03/use-dnsmasq-for-separating-dns-queries.html
スクリーンショットと根本的な問題の基本的な説明を含む最も簡単な解決策については、 このスーパーユーザーの質問 に対する私の回答を参照してください。