web-dev-qa-db-ja.com

Windows 10 Always On VPN、スプリットDNS、NRPT、および使用するDNSサーバーの構成方法

これが設定です:

  • Windows 10 1803クライアント
  • サーバー2012R2 RRASサーバー
  • スプリットトンネリングを使用したAlways-On VPNデバイストンネルのセットアップ これらの手順 による。
  • デバイスVPNには1つのDC/DNSサーバーと構成マネージャーサーバーへのルートしかないため、デバイスVPNを管理して、オフィスから離れているときに新しいユーザーを認証できます。ユーザーがオフィスネットワークへのフルアクセスを必要とする場合、ユーザーが接続できる個別のユーザーVPNがあります。 DNSを除いて、これはうまく機能します。
  • ADドメイン名はexample.localです
  • パブリックドメイン名はexample.comです

問題:

  • 私たちはパブリックドメイン名にスプリットDNSを使用しているため、内部DNSサーバーを使用する場合、mail.example.comは内部IPアドレスに解決され、外部アドレスはパブリックアドレスになります。
  • それをパブリックアドレスに解決するには、VPNクライアントが必要です。デバイスVPNは、mail.example.comの内部アドレスとの通信を許可しないため、メールを取得できません。
  • 他の場所のローカルサービスが正しく機能するように、DNS解決も必要です(必須ではありません)。 Other Corpのオフィスにいるとき、VPNが接続されていても、othercorp.localのDNSは機能します。

私が起こりたいこと:

  • Example.localのクエリは、VPN経由で内部DNSサーバーに送信されます
  • Example.comを含むその他すべては、ラップトップが接続されているLAN/Wifi接続によって提供されるDNSサーバーを使用します。
  • 他のユーザーベースのVPN(VPNを介してすべてのトラフィックをルーティングする)は、引き続きすべての内部DNSサーバーを使用します。

私が試したこと:

  • 名前解決ポリシーテーブルの設定 example.localのルールは、内部DNSサーバーを指します。これは機能しているように見えます。たとえば、example.localのクエリはVPNを通過しますが、それ以外はすべて機能します。
  • DnsServersフィールドを空白にしてexample.comのNRPTルールを設定すると、ルールが除外されていることを確認できます。効果がないようです。
  • DnsServerのパブリックリゾルバを使用して、example.comのNRPTルールを設定します。これは機能しますが、リモートの場所で中断し、自分のDNSリゾルバ(ユーザーが移動する多くのサイト)以外のものをブロックします。ローカルサービスの問題を解決していません。
  • ネットワーク接続のVPN接続で[次のDNSサーバーのアドレスを使う]を設定し、空白のままにします。 VPN接続は、内部サーバーを使用するように設定されたままです。
  • 「次のDNSサーバーアドレスを使用する」を設定し、8.8.8.8のようなパブリックDNSサーバーを配置します。接続すると、そのインターフェースに3つのDNSサーバーができ、リストの上部に内部サーバー、上部に8.8.8.8が表示されます。

VPNでDNSサーバーをまったくリストしないようにできる場合、NRPTルールは、たとえばexample.localだけで起動し、すべてが適切に機能すると思います。しかし、RRASサーバーが提供するものを使用しないようにする方法が見つかりません。

5
Grant

私は解決策を見つけました。

インターフェースメトリックを既存のイーサネット/ wifiアダプターよりも大きい数に調整すると、ローカルネットワーク上のDNSサーバーが優先されますが、NRPTルールは引き続き機能し、自分のドメインのDNSクエリをVPN経由でサーバーに送信します。

ただし、Powershell、VBscript、.NET、VPNv2 CSPのVPN接続のインターフェイスメトリックを調整する方法はありません。

VPNが接続されている場合、メトリックはSet-NetIPInterfaceコマンドレットを使用してPowerShellで変更できますが、VPNが接続されていない場合、メトリックはまったく表示されません。そして、そこでの変更は再起動後は持続しません。

これを変更する唯一の方法は、C:\ProgramData\Microsoft\Network\Connections\Pbk\rasphone.pbkファイルを編集し、IpInterfaceMetricIpv6InterfaceMetricの行をより大きな数値に変更することです。両方を100に変更しました。

その後、NRPTルールと組み合わせて、DNSは希望どおりに機能します。たとえば、example.localのすべてのクエリがAD DNSサーバーに送信されます。それ以外のもの(example.comを含む)は、ローカルネットワークのDNSサーバーに送信されます。

0
Grant

あなたが試すことができる潜在的な回避策は、Server 2016 DNSサーバーを立ち上げ、地理位置情報を認識してsplit-dnsを実行するDNSポリシーを実装することです。これにより、デバイスVPNサブネットからのDNSクエリに、内部ではなく外部IPを使用するように指示できます。

Powershellコマンドは次のようになります。

デバイスVPNサブネット

Add-DnsServerClientSubnet -Name "DeviceVPNSubnet" -IPv4Subnet "192.168.1.0/24"  

デバイスVPNゾーンスコープ

Add-DnsServerZoneScope -ZoneName "example.com" -Name "DeviceVPNZoneScope"  

デフォルトのAレコード(すでに存在しているはずです)

Add-DnsServerResourceRecord -ZoneName "example.com" -A -Name "mail" -IPv4Address "192.168.0.5"

デバイスVPN Aレコード

Add-DnsServerResourceRecord -ZoneName "example.com" -A -Name "mail" -IPv4Address "203.0.113.5" -ZoneScope "DeviceVPNZoneScope" 

デバイスVPN解決ポリシー

Add-DnsServerQueryResolutionPolicy -Name "Device VPN Policy" -Action ALLOW -ClientSubnet "eq,DeviceVPNSubnet" -ZoneScope "DeviceVPNZoneScope,1" -ZoneName "example.com"  

参照: プライマリサーバーでの地理的位置ベースのトラフィック管理にDNSポリシーを使用

3
Mike M

ProfileXMLのDomainNameInformation要素を使用して、任意のネームスペースの内部DNSサーバーを定義できます。スプリットDNSを使用している場合、「内部」名前空間をVPNトンネル経由ではなく外部にルーティングする必要がある場合があります。これらのシナリオでは、「除外」を作成する必要があります。これは、本質的に、内部DNSサーバーを使用しないように定義された名前空間です。これを行うには、DnsServersフィールドを空白のままにするだけでなく、DnsServersを要素から完全に除外します。

詳細については、こちらをご覧ください: https://directaccess.richardhicks.com/2018/04/23/always-on-vpn-and-the-name-resolution-policy-table-nrpt/

お役に立てば幸いです。

0

ちょっと考えましたが、多分接続スクリプト.batを設定して、接続時にメールサーバーの正しいパブリックIPアドレスをホストファイルに追加し、切断時にクライアントのホストファイルからそれを削除しますか?理論的には、いつでもhostsファイルに含めることができ、オフィスのパブリックIPからサーバーにアクセスするだけだと思います。それにもかかわらず、RRASサーバーからのDNSを上書きします。

HostsファイルはC:\ Windows\System32\Drivers\etc\hostsにあります。

0
David Eisen

すべてのインターフェースで自動メトリック設定を使用する場合、何らかの理由でLANイーサネットアダプターはデバイストンネルインターフェースよりも低いメトリックを持っていますが、wifiインターフェースはデバイストンネルインターフェースよりも高いメトリックを持っています。

したがって、パブリックドメインゾーンのスプリットDNSを使用すると、LANおよびWifi接続デバイスで次のことが起こります。

  1. LANインターフェイス(ケーブル)を使用するデバイストンネルクライアント-ローカルに構成されたDNSサーバーを使用してパブリックドメインレコードを解決します

  2. WIFIを使用するデバイストンネルクライアント-デバイストンネルインターフェイスで構成されたDNSサーバーを使用してパブリックドメインレコードを解決します

不思議なことに、自動メトリック割り当てを使用すると、デバイストンネルのメトリックが常に最低になると思っていました。最も奇妙なのは、デバイストンネルインターフェイスメトリックがLAN(ケーブル)インターフェイスとWIFIインターフェイスの間の数に設定されていることです。

どちらが正しい?インターフェースのいずれについても、手動でメトリックを設定したくありません。

これは、スプリットトンネルVPNを使用して確認されており、フォーストンネルでテストされていません。何らかの理由でVPN接続の外部のドメインを解決する必要がある場合、スプリットトンネルがデバイストンネルで構成されたDNSサーバーを使用して解決し、NRPT設定を使用する場合でも、すべてのDNSを希望します。

0
Michael Leeming