web-dev-qa-db-fra.com

Windows 10 Always On VPN, Split DNS, NRPT et comment configurer le serveur DNS utilisé?

Voici la configuration:

  • Clients Windows 10 1803
  • Serveur 2012R2 RRAS server
  • Configuration du tunnel de l'appareil VPN toujours activé par ces instructions , avec tunneling fractionné.
  • Le VPN d'appareil n'a que des routes vers 1 serveur DC/DNS et notre serveur de gestionnaire de configuration, il peut donc être géré et les nouveaux utilisateurs peuvent s'authentifier lorsqu'ils sont loin du bureau. Lorsque les utilisateurs ont besoin d'un accès complet au réseau du bureau, il existe un VPN utilisateur distinct auquel ils peuvent se connecter. Cela fonctionne bien, sauf pour DNS.
  • Le nom de domaine AD est example.local
  • Le nom de domaine public est example.com

Le problème:

  • Nous utilisons un DNS partagé pour notre nom de domaine public - donc mail.example.com se résout en une adresse IP interne lors de l'utilisation de nos serveurs DNS internes, et notre adresse publique du monde extérieur.
  • J'ai besoin de clients VPN pour le résoudre à l'adresse publique. Le VPN de l'appareil ne leur permet pas de parler à l'adresse interne de mail.example.com, ils ne peuvent donc pas recevoir leur e-mail.
  • J'aimerais également (mais pas indispensable) que la résolution DNS pour que les services locaux à d'autres emplacements fonctionnent correctement - par exemple. quand je suis dans les bureaux d'Autre Corp, DNS pour othercorp.local fonctionne même avec le VPN connecté.

Ce que je veux faire:

  • Les requêtes par exemple.local passent par le VPN vers nos serveurs DNS internes
  • Tout le reste, y compris example.com, utilise les serveurs DNS fournis par la connexion LAN/Wifi à laquelle l'ordinateur portable est connecté.
  • L'autre VPN basé sur l'utilisateur (qui achemine tout le trafic via le VPN) continue d'utiliser nos serveurs DNS internes pour tout.

Ce que j'ai essayé:

  • Définition de la table de stratégie de résolution de noms règles pour exemple.local pointant vers nos serveurs DNS internes. Cela semble fonctionner, les requêtes par exemple.local passe par le VPN ... mais tout le reste aussi.
  • Définition des règles NRPT pour example.com, avec un champ DnsServers vide, qui doit garantir leur exclusion. Semble n'avoir aucun effet.
  • Définition des règles NRPT pour example.com, avec des résolveurs publics pour le DnsServer. Cela fonctionne , mais s'arrête à des emplacements distants qui bloquent tout sauf leurs propres résolveurs DNS (que la plupart des sites que mes utilisateurs visitent), et ne le fait pas 't résoudre le problème des services locaux.
  • Paramétrez "Utiliser les adresses de serveur DNS suivantes" sur la connexion VPN dans les connexions réseau et laissez-la vide. Aucun effet, la connexion VPN est toujours configurée pour utiliser nos serveurs internes.
  • Définir "Utiliser les adresses de serveur DNS suivantes" et installer un serveur DNS public comme 8.8.8.8. Une fois connecté, je me retrouve avec 3 serveurs DNS sur cette interface, avec nos internes en haut et 8.8.8.8 en bas de la liste.

Je soupçonne que si je pouvais obtenir que le VPN ne répertorie aucun serveur DNS du tout, les règles NRPT se déclencheraient juste pour exemple.local, et tout fonctionnerait correctement. Mais je ne peux pas trouver un moyen de ne pas utiliser ceux fournis par le serveur RRAS.

5
Grant

J'ai trouvé la solution.

Ajuster la métrique d'interface pour être un nombre plus grand que les adaptateurs Ethernet/wifi existants le fera préférer les serveurs DNS sur le réseau local, mais les règles NRPT continueront de fonctionner pour envoyer des requêtes DNS pour mon propre domaine à mes serveurs via le VPN.

Cependant, il n'y a aucun moyen d'ajuster la métrique d'interface pour une connexion VPN dans PowerShell, ni dans VBscript, ni .NET, ni VPNv2 CSP.

Si le VPN est connecté, la métrique peut être modifiée dans PowerShell avec l'applet de commande Set-NetIPInterface, mais lorsque le VPN n'est pas connecté, il n'y apparaît pas du tout. Et les changements ne persisteront pas lors des redémarrages.

La seule façon de le modifier semble être de modifier le C:\ProgramData\Microsoft\Network\Connections\Pbk\rasphone.pbk fichier et modification des lignes IpInterfaceMetric et Ipv6InterfaceMetric vers des nombres supérieurs. Je les ai changés tous les deux à 100.

Après cela, et en combinaison avec les règles NRPT, DNS fonctionne comme vous le souhaitez - toutes les requêtes par exemple.local sont envoyées à mes serveurs DNS AD. Tout le reste (y compris example.com) est envoyé aux serveurs DNS de leur réseau local.

0
Grant

Une solution de contournement potentielle que vous pourriez essayer consiste à mettre en place un serveur DNS Server 2016 et à implémenter une stratégie DNS pour effectuer des DNS partagés avec prise en compte de la géolocalisation. Cela vous permettrait de dire aux requêtes DNS du sous-réseau Device VPN d'utiliser l'IP externe au lieu de l'IP interne.

Les commandes powershell ressembleraient à quelque chose comme ci-dessous.

Sous-réseau VPN de l'appareil

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

Portée de la zone VPN de l'appareil

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

Enregistrement A par défaut (devrait déjà exister)

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

Appareil VPN Un enregistrement

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

Politique de résolution du périphérique VPN

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

Voir: tiliser la stratégie DNS pour la gestion du trafic basée sur la géolocalisation avec les serveurs principaux

3
Mike M

Vous pouvez définir des serveurs DNS internes pour n'importe quel espace de noms à l'aide de l'élément DomainNameInformation dans votre ProfileXML. Si vous utilisez un DNS fractionné, il peut y avoir des cas où les espaces de noms "internes" doivent être routés en externe et non via le tunnel VPN. Dans ces scénarios, vous devrez créer des "exclusions", qui sont essentiellement des espaces de noms définis NON pour utiliser les serveurs DNS internes. Pour ce faire, vous ne laissez pas simplement le champ DnsServers vide, mais vous laissez complètement les DnsServers hors de l'élément.

Vous pouvez trouver plus d'informations ici: https://directaccess.richardhicks.com/2018/04/23/always-on-vpn-and-the-name-resolution-policy-table-nrpt/

J'espère que cela pourra aider!

0
Richard M. Hicks

Juste une pensée, mais peut-être définir un script de connexion .bat qui ajoute l'adresse IP publique correcte du serveur de messagerie lors de la connexion au fichier hosts, puis la supprime du fichier hosts du client lors de la déconnexion? En théorie, je suppose que vous pouvez toujours l'avoir dans le fichier hosts, puis ils accèdent simplement au serveur à partir de son adresse IP publique, même au bureau. Quoi qu'il en soit, cela remplacera tout DNS du serveur RRAS.

Le fichier hosts se trouve dans C:\Windows\System32\Drivers\etc\hosts.

0
David Eisen

Lorsque vous utilisez des paramètres de métrique automatiques sur toutes les interfaces, pour une raison quelconque, la carte Ethernet LAN a une métrique inférieure à l'interface du tunnel de l'appareil, mais les interfaces wifi ont une métrique plus élevée que l'interface du tunnel de l'appareil.

Ainsi, avec Split DNS d'une zone de domaine public, les événements suivants se produisent pour les appareils connectés au LAN et au Wifi.

  1. Clients de tunnel de périphérique utilisant une interface LAN (câble) - Résout les enregistrements du domaine public à l'aide de serveurs DNS configurés localement

  2. Clients de tunnel de périphérique utilisant WIFI - Résout les enregistrements du domaine public en utilisant les serveurs DNS configurés sur l'interface de tunnel de périphérique

Je trouve cela étrange et je me serais attendu à ce que le tunnel de l'appareil ait toujours la métrique la plus basse, lors de l'utilisation de l'affectation automatique des métriques. La partie la plus étrange est que la métrique d'interface de tunnel de périphérique est définie sur un nombre entre les interfaces LAN (câble) et WIFI.

Qui est correct? Je préfère ne pas définir la métrique manuellement pour aucune des interfaces.

Ceci est confirmé en utilisant un VPN à tunnel partagé, n'ont pas testé avec force-tunnel. Je voudrais que tous les DNS, même pour Split-tunnel, se résolvent à l'aide des serveurs DNS configurés par le tunnel de l'appareil et utilisent les paramètres NRPT, si pour une raison quelconque je dois résoudre un domaine en dehors de la connexion VPN.

0
Michael Leeming