La resolución DNS de Windows 10 a través de la conexión VPN no funciona

49

En Windows 10, cuando se conecta a una VPN con túnel dividido habilitado (puerta de enlace deshabilitada), la resolución DNS siempre utiliza los servidores DNS de LAN, ignorando los servidores DNS y el sufijo DNS establecido en la conexión VPN.

El comportamiento esperado es usar los servidores DNS de la VPN, de lo contrario se hace imposible resolver las entradas DNS en la red remota (como las computadoras de dominio).

Esto funcionaba correctamente en la versión anterior de Windows.

Esto fue ampliamente discutido en este hilo de respuestas de Microsoft .

ECC-Dan
fuente
De su pregunta no está claro cuál es su problema (¿desea que use el servidor DNS especificado por la VPN?), Edítelo.
Máté Juhász
Editado como se sugiere.
ECC-Dan
tbh: Entonces hay algo mal con sus servidores. La primera solicitud de DNS SIEMPRE debe llegar a los servidores locales. Solo si el host no tiene solución, el sistema debería intentar consultar el DNS remoto. Su problema podría ser que las redes locales y remotas se están ejecutando en las mismas subredes, por lo tanto, la red local dice "poder resolver la consulta", pero entrega "host no encontrado". (Si un servidor configurado para el servidor de la subred abcd no puede resolver un host, no se consultarán más servidores DNS para esta subred, a menos que el primario esté desconectado, ya que DEBERÍAN estar sincronizados, por lo tanto, se supone que el host es desconocido)
dognose

Respuestas:

55

He solucionado este problema permanentemente configurando manualmente la métrica de mi conexión LAN para que sea más alta (15) que la que Windows asigna a mi VPN (11).

Esto se puede hacer de dos maneras:

  • A través de la GUI: Conexiones de red, Propiedades, Propiedades de TCP / IP v4, Avanzado, Establecer métrica en 15;
  • Línea de comando: netsh int ip set interface interface="LAN CONNECTION NAME" metric=15

El efecto es inmediato (al menos cuando se usa la línea de comando) y las búsquedas de DNS ahora pasan por mi VPN como se esperaba.

Esto funciona con Split Tunneling y es una solución permanente en las reconexiones y reinicios.

Tenga en cuenta que también podría cambiar la métrica de la VPN en lugar de la conexión LAN, pero esto no sería permanente ya que Windows restablece la métrica cuando se establece la conexión.

Dependiendo de su entorno, puede tener una métrica predeterminada diferente para su conexión LAN y VPN. Simplemente ajústelo en consecuencia para que su VPN tenga una métrica más baja que su conexión LAN.

Además, si descubre que no puede editar las propiedades TCP / IP de su VPN porque eso también se rompió en Windows 10 , puede configurar la mayoría de las propiedades a través de Powershell :

1. Get-VpnConnection
2. Set-VpnConnection -Name "myVPN" -SplitTunneling $True
3. Set-VpnConnection -Name "myVPN" -DnsSuffix yourdomain.local
ECC-Dan
fuente
2
Para mí esto no funciona ... Tengo dos máquinas con Windows 10, una funciona bien y otra es problemática con VPN. Puedo resolver la puerta de enlace predeterminada que habilita SplitTunneling, pero el DNS de VPN tampoco reconoce cuando cambio la métrica ...
ceinmart
3
Esto solucionó el problema para nosotros (y lo hemos estado luchando durante algún tiempo), con un paso adicional importante: deshabilitar IPv6. Nuestra VPN no hace IPv6, pero entiendo que cualquier solucionador de IPv6 tendrá prioridad sobre los de IPv4. Una vez que deshabilitamos IPv6 en los adaptadores, ajustamos las métricas y el DNS de túnel dividido continuó funcionando. Si su VPN admite IPv6, es probable que esto no sea necesario y si el ajuste métrico por sí solo corrige DNS para que mantenga habilitado IPv6 en su adaptador.
Adam Strohl
Dato curioso: para mí, el problema era "viceversa": cuando se conectó a VPN, Windows no pudo resolver los FQDN locales ... Estaba configurando la métrica predeterminada para la "Conexión VPN" a 1, así que le di conexión un número más bajo que resolvió mi problema. (Mis servidores locales están configurados correctamente, por lo que cualquier nombre irresoluble se consultará en la conexión de "segunda preferencia", lo que hace que ahora ambos: DNS locales y remotos funcionen como se espera mientras se establece la VPN.)
dognose
¿Alguna idea de por qué esta solución solo es necesaria para mí cuando me conecto a través de un ISP pero no el otro (ambos cables coaxiales conectados)?
Gaia
De alguna manera, tuve el problema revertido en primer lugar: mi computadora portátil local Win10 usa automáticamente solo el DNS en la VPN (la mayoría de las veces), y debido a que ese DNS en esa VPN interna no está (todavía) configurado para proporcionar servicio DNS, puedo no navegue en ningún sitio web de Internet durante mi período de habilitación de VPN. Entonces, uso esta solución de forma inversa, es decir, configurando mi conexión LAN local para que sea un número tan pequeño como 1, lo que aparentemente resuelve el problema por ahora. FWIW, sin embargo, no sé el valor métrico para mi conexión VPN, porque no hay un botón "Avanzar" en la ventana emergente de propiedades de conexión VPN.
RayLuo
11

Hice una nueva instalación de Windows 10 en una máquina virtual para probar después de ver este problema en cada máquina física Win10 que tengo. Probé todas las respuestas en este hilo y ninguna funcionó. Descubrí que la solución es combinar las respuestas publicadas aquí por "Keenans" y "ECC-Dan":

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

Panel de control> Centro de redes y recursos compartidos> Cambiar la configuración del adaptador> Haga clic con el botón derecho en su adaptador Ethernet o Wifi> Propiedades> haga doble clic en IPv4> Avanzado> Desmarque Métrica automática> Ingrese 15 para métrica de interfaz> Aceptar> Aceptar.

En esa misma página de Propiedades, haga doble clic en IPv6> Avanzado> Desmarque Métrica automática> Ingrese 15 para métrica de interfaz> Aceptar> Aceptar.

Solo después de cambiar ambas configuraciones se resuelve el problema. Probé cambiando uno de los dos y se rompe nuevamente. Después de cambiar ambos, ejecuté nslookup desde la línea de comandos y devolvió el servidor DNS en la red remota a la que está conectada la VPN, donde de lo contrario devolvería el servidor DNS local. Luego utilicé la captura de Wireshark en la interfaz Ethernet, hice algunos ping a sitios web aleatorios y verifiqué que no había paquetes DNS capturados. Esto prueba que después de realizar los cambios, las consultas DNS se envían SOLO a través de la conexión VPN, y no simultáneamente a través de todas las conexiones (lo que se conoce como la fuga de DNS Win10). Entonces esto también es parte de la solución para la fuga de DNS de Win10:

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

Tenga en cuenta que para solucionar la fuga de DNS, primero debe realizar los pasos anteriores. Entonces necesita establecer dos valores de registro. Los artículos vinculados solo enumeran uno, que por sí solo no soluciona el problema en las versiones más recientes de Win10. Establezca estos valores de registro:

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

Solo después de hacer todo eso, el comportamiento de su cliente DNS volverá a ser como era en Win7. Tienes que preguntarte cómo pasó esto a través del control de calidad en Microsoft.

Me gusta ARock47
fuente
1

No funciona, incluso cambié las métricas tanto en IPv4 como en IPv6 y utilicé el registro DisableSmartNameResolution y DisableParallelAandAAAA con Windows 10 Edu actual (a partir de diciembre de 2018) cuando el cliente está conectado por cable UTP y el protocolo IPv6 es compatible con la LAN local (es decir. el cliente tiene una dirección IPv6 pública / global).

Es suficiente deshabilitar el protocolo IPv6 en la interfaz UTP / LAN utilizada para VPN para que funcione (para eliminar / no_utilizar la dirección IPv6 global en el cliente).

Funciona sin problemas cuando el cliente está conectado a Internet por Wi-Fi e IPv6 está disponible (el cliente tiene una dirección IPv6 global y no tiene conexión UTP / LAN).

Milan Kerslager
fuente