La résolution DNS de Windows 10 via une connexion VPN ne fonctionne pas

49

Sous Windows 10, lorsqu'il est connecté à un VPN avec Split Tunneling activé (passerelle désactivée), la résolution DNS utilise toujours les serveurs DNS du réseau local, en ignorant les serveurs DNS et le suffixe DNS défini sur la connexion VPN.

Le comportement attendu est d'utiliser les serveurs DNS du VPN, sinon il devient impossible de résoudre les entrées DNS sur le réseau distant (tels que les ordinateurs du domaine).

Cela fonctionnait correctement dans les versions précédentes de Windows.

Cela a été largement discuté sur ce fil de réponses Microsoft .

ECC-Dan
la source
Votre question ne dit pas clairement quel est votre problème (voulez-vous qu’il utilise le serveur DNS spécifié par le VPN?), Veuillez le modifier.
Máté Juhász
Edité comme suggéré.
ECC-Dan
tbh: Ensuite, il y a quelque chose qui ne va pas avec vos serveurs. La première requête DNS doit TOUJOURS atteindre les serveurs locaux. Ce n'est que si l'hôte est insoluble que le système doit tenter d'interroger le DNS distant. Votre problème est peut-être lié au fait que les réseaux locaux et distants fonctionnent sur les mêmes sous-réseaux. Ainsi, le réseau local prétend "pouvoir résoudre la requête", mais délivre "hôte introuvable"? (Si un serveur configuré pour serveur le sous - réseau ABCD ne peut pas résoudre un hôte, aucune autre dns-serveur pour ce sous - réseau est interrogé, à moins que primaire est déconnecté, car ils doivent être synchronisés - par conséquent , il suppose l'hôte est inconnu)
Dognose

Réponses:

55

J'ai résolu ce problème de façon permanente en définissant manuellement la métrique de ma connexion LAN sur une valeur supérieure (15) à celle attribuée par Windows à mon VPN (11).

Cela peut être fait de deux manières:

  • Via l'interface graphique: Connexions réseau, Propriétés, Propriétés TCP / IP v4, Avancé, Définissez la métrique sur 15;
  • Ligne de commande: netsh int ip set interface interface="LAN CONNECTION NAME" metric=15

L'effet est immédiat (du moins lorsque vous utilisez la ligne de commande) et les recherches DNS passent désormais par mon VPN comme prévu.

Cela fonctionne avec Split Tunneling et constitue un correctif permanent lors des reconnexions et des redémarrages.

Notez que vous pouvez également modifier la métrique du VPN au lieu de la connexion LAN, mais cela ne sera pas permanent car Windows réinitialisera la métrique une fois la connexion établie.

Selon votre environnement, vous pouvez avoir une métrique par défaut différente pour votre connexion LAN et VPN. Ajustez simplement en conséquence afin que votre VPN ait une métrique inférieure à votre connexion LAN.

De plus, si vous constatez que vous ne pouvez pas modifier les propriétés TCP / IP de votre VPN, car cela a également été rompu dans Windows 10 , vous pouvez définir la plupart des propriétés via Powershell :

1. Get-VpnConnection
2. Set-VpnConnection -Name "myVPN" -SplitTunneling $True
3. Set-VpnConnection -Name "myVPN" -DnsSuffix yourdomain.local
ECC-Dan
la source
2
Pour moi, cela ne fonctionne pas ... J'ai deux machines avec Windows 10, on fonctionne tout autre bien est problématique avec VPN. Je suis capable de résoudre la passerelle par défaut qui active SplitTunneling, mais le DNS du VPN n'est toujours pas reconnu non plus lorsque je change de métrique ...
ceinmart
3
Cela a résolu le problème pour nous (et nous luttons depuis un certain temps), avec une étape supplémentaire importante: la désactivation d'IPv6. Notre VPN ne prend pas en charge IPv6, mais si je ne me trompe pas, tout résolveur IPv6 aura priorité sur ceux en IPv4. Une fois que nous avons désactivé IPv6 sur les adaptateurs, nous avons ensuite ajusté le fonctionnement du DNS en mode tunnel fractionné. Si votre VPN prend en charge IPv6, cela n'est probablement pas nécessaire et si l'ajustement de la métrique lui-même résout le DNS pour que vous mainteniez IPv6 activé sur votre adaptateur.
Adam Strohl
Anecdote: Pour moi, le problème était "inversement": lorsqu’il était connecté à un réseau VPN, Windows n’était pas en mesure de résoudre les noms de domaine complets locaux ... Il s'agissait de configurer la métrique par défaut pour "Connexion VPN" sur 1; connexion un nombre inférieur qui a résolu mon problème. (Mes serveurs locaux sont configurés correctement, donc tout nom non résolu sera interrogé sur la connexion de "deuxième préférence" - ce qui permet désormais aux dns locaux et distants de fonctionner comme prévu tant que le VPN est établi.)
Prononcé le
Avez-vous une idée de la raison pour laquelle ce correctif n’est nécessaire que lorsque je me connecte via un fournisseur d’accès Internet mais pas avec l’autre (câble coaxial connecté)?
Gaia
En quelque sorte, le problème est inversé: mon ordinateur portable Win10 local utilise automatiquement uniquement le DNS dans le VPN (la plupart du temps), et comme ce DNS dans ce VPN interne n’est pas (encore) configuré pour fournir un service DNS, je peux ne naviguez sur aucun site Web au cours de ma période d’activation VPN. J'utilise donc cette solution de manière inversée, c'est-à-dire que ma connexion LAN locale est un nombre aussi petit que 1ce qui résout apparemment le problème pour l'instant. FWIW, je ne connais pas la valeur de mesure pour ma connexion VPN, car il n’existe pas de bouton "Avancé" dans la fenêtre contextuelle des propriétés de la connexion VPN.
RayLuo
11

J'ai lancé une nouvelle installation de Windows 10 sur une machine virtuelle sur laquelle tester après avoir constaté ce problème sur toutes les machines physiques Win10 que j'ai. J'ai testé toutes les réponses dans ce fil et aucune d'entre elles n'a fonctionné. J'ai découvert que la solution consiste à combiner les réponses postées ici par "Keenans" et "ECC-Dan":

http://answers.microsoft.com/en-us/windows/forum/windows_10-networking/win-10-resolution-of-remote-network-via-vpn/513bdeea-0d18-462e-9ec3-a41129eec736? page = 1

Panneau de configuration> Centre réseau et partage> Modifier les paramètres de l'adaptateur> Cliquez avec le bouton droit de la souris sur votre adaptateur Ethernet ou Wifi> Propriétés> double-cliquez sur IPv4> Avancé> Désactivez l'option Indicateur automatique> Entrez 15 pour l'indicateur d'interface> OK> OK.

Sur cette même page de propriétés, double-cliquez sur IPv6> Avancé> Désactivez l'option Système de mesure automatique> Entrez 15 pour le paramètre d'interface> OK> OK.

Ce n'est qu'après avoir modifié ces deux paramètres que le problème est résolu. J'ai essayé de changer l'un ou l'autre en arrière et ça casse à nouveau. Après avoir changé les deux, j'ai exécuté nslookup à partir de la ligne de commande et renvoyé le serveur DNS sur le réseau distant auquel le VPN est connecté, sinon le serveur DNS local serait renvoyé. J'ai ensuite utilisé la capture Wireshark sur l'interface Ethernet, effectué des pings sur des sites Web aléatoires et vérifié qu'aucun paquet DNS n'avait été capturé. Cela prouve qu'après avoir effectué les modifications, les requêtes DNS sont envoyées UNIQUEMENT via la connexion VPN et non simultanément sur toutes les connexions (appelée fuite Win10 DNS). Cela fait donc également partie de la solution à la fuite DNS Win10:

https://medium.com/@ValdikSS/beware-of-windows-10-dns-resolver-and-dns-leaks-5bc5bfb4e3f1#.7ppsn1nda

Notez que pour réparer la fuite DNS, vous devez d'abord suivre les étapes ci-dessus. Ensuite, vous devez définir deux valeurs de registre. Les articles liés n'en répertorient qu'un, ce qui en soi ne résout pas le problème dans les versions plus récentes de Win10. Définissez ces valeurs de registre:

Key: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\DNSClient
Value:  DisableSmartNameResolution
Data:  1

Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
Value: DisableParallelAandAAAA
Data:  1

Ce n’est qu’après avoir fait tout cela que votre comportement de client DNS sera redevenu comme dans Win7. Vous devez vous demander comment cela s'est passé grâce au contrôle qualité de Microsoft.

J'aimeARock47
la source
1

Cela ne fonctionne pas même si j'ai modifié les métriques sur IPv4 et IPv6 et que j'ai utilisé les registres DisableSmartNameResolution et DisableParallelAandAAAA avec Windows 10 Edu actuel (à compter de décembre 2018) lorsque le client est connecté par un câble UTP et que le protocole IPv6 est pris en charge sur le réseau local (c.-à-d.). le client a une adresse IPv6 publique / globale).

Il suffit de désactiver le protocole IPv6 sur l'interface UTP / LAN utilisée pour le VPN pour le faire fonctionner (pour supprimer / not_use l'adresse IPv6 globale sur le client).

Cela fonctionne sans problème lorsque le client est connecté à Internet par Wi-Fi et que IPv6 est disponible (le client a une adresse IPv6 globale et n'a pas de connexion UTP / LAN).

Milan Kerslager
la source