Red que solo usa un DNS cuando está conectado a VPN

9

Mi empresa tiene una VPN a la que necesito conectarme. En OSX, hago esto usando openvpnla siguiente configuración:

client
dev tun
proto udp
remote <GATEWAY_ADDRESS> <PORT>
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca /Users/Tommy/.openvpn/dev/ca-dev.crt
cert /Users/Tommy/.openvpn/dev/tommy.brunn-20131122-dev.crt
key /Users/Tommy/.openvpn/dev/tommy.brunn-20131122-dev.key
ns-cert-type server
tls-auth /Users/Tommy/.openvpn/dev/ta-dev.key 1
cipher BF-CBC
comp-lzo
verb 3
auth-nocache
;daemon
;writepid openvpn.pid

En Ubuntu, instalé network-manager-openvpny agregué una nueva conexión VPN (tratar de importar el archivo de configuración causó un bloqueo) con el mismo conjunto de opciones de configuración: Capturas de pantalla de mi configuración

Una vez que me conecto a la VPN, no puedo resolver ningún dominio.

Si edito /etc/NetworkManager/NetworkManager.conf, comento la línea dns=dnsmasqy reinicio network-manager, puedo resolver dominios internos de mi empresa, pero otros dominios como google.com no se resolverán en absoluto. Me aseguré de configurar mi "Método" en "Direcciones automáticas (VPN) solamente" en las pestañas IPv4 e IPv6 del administrador de red para mi conexión VPN, pero no parece haber ninguna diferencia.

También he intentado volver a habilitar dnsmasqy modificar /etc/resolvconf/resolv.conf.d/base para contener nameserver 127.0.1.1, luego ejecutar sudo resolveconf -u, pero luego ningún dominio se resolverá nuevamente.

Lo que me gustaría es poder conectarme a mi VPN para que los dominios empujados por el servidor DNS de mi empresa se resuelvan de esa manera, y todos los demás dominios se resuelvan normalmente.

EDITAR: Resulta que dnsmasq no estaba realmente instalado, lo que pensé que sería por defecto. Sin embargo, si lo instalo, lo vuelvo a habilitar /etc/NetworkManager/NetworkManager.conf, agrego la dirección del servidor de nombres local /etc/resolvconf/resolv.conf.d/base, reinicio todos los servicios y me conecto a la VPN, puedo resolver dominios desde el DNS de la compañía, pero no puedo resolver ningún otro dominio. Básicamente, la misma situación que cuando desactivé dnsmasq por completo.

EDITAR: Contenido de /etc/dnsmasq.conf: http://paste.ubuntu.com/7297231/

Tommy Brunn
fuente
¿Nos puede mostrar su configuración de dnsmasq? Dnsmasq generalmente obtiene sus servidores DNS ascendentes de /etc/resolv.conf, por lo que si no ha cambiado, probablemente solo esté colocando DNS sobre la VPN.
jkt123
Por supuesto. Agregué un enlace a mi/etc/dnsmasq.conf
Tommy Brunn

Respuestas:

4

Desde su configuración, su instalación de dnsmasq obtiene la lista de servidores DNS para usar /etc/resolv.conf. De manera predeterminada, dnsmasq intenta favorecer el uso de servidores DNS que están activos, pero solo enviará una solicitud determinada a un único servidor DNS. Esto puede causar problemas si tiene varios servidores DNS que pueden / solo atenderán ciertas consultas.

Creo que puede resolver este problema asegurándose de tener un servidor DNS en su LAN (el que usa cuando no está conectado a la VPN) configurado /etc/resolv.conf, así como el servidor DNS en la red corporativa que desea usar sobre la VPN.

Luego, deberá editar /etc/default/dnsmasqy agregar o editar la DNSMASQ_OPTS=línea para incluir --all-servers.

Si usted todavía no puede conseguir las consultas DNS con esta configuración, copia el archivo resolv.conf que creó durante los pasos anteriores a otra ubicación, como ~/resolv.conf, establecer /etc/resolv.confcon nameserver 127.0.0.1y configurar la siguiente opción en /etc/dnsmasq.conf:

resolv-file=/home/your_username/resolv.conf

Eso debería configurar su sistema para consultar su instalación de dnsmasq para DNS, y a su vez utilizará tanto su servidor DNS local como el servidor DNS VPN para cada consulta.

Editar : puede encontrar los servidores DNS que está utilizando actualmente para una conexión particular utilizando la nmcliherramienta. Para encontrar los servidores DNS utilizados por mi conexión inalámbrica, utilicé la siguiente sintaxis:

nmcli dev list iface wlan0 | grep IP4.DNS

Si ejecuta este comando mientras no está conectado a su VPN, y luego nuevamente cuando está conectado y puede resolver sus direcciones corporativas, debe obtener su lista de servidores DNS apagados y encendidos en la VPN. Espero que esto ayude.

Edición 2 : Al mirar sus tablas de enrutamiento, parece que su administrador de VPN lo configuró para enrutar todo su tráfico a través de la VPN mientras está conectado (su puerta de enlace predeterminada cambia a una dirección VPN). Dado que sus dos servidores DNS son direcciones públicas, y ninguno de los dos tiene una ruta específica configurada mientras está en la VPN, está intentando realizar búsquedas DNS normales a través de la VPN y eso es lo que está fallando.

Puede tener un par de maneras de hacer que esto funcione, dependiendo de su configuración de VPN:

  • Si la VPN le permitirá acceder a Internet a través de la red corporativa, pero no realiza consultas DNS a los servidores en Internet, agregue rutas a sus servidores DNS de la siguiente manera: sudo route add -host 83.255.245.11 gw 192.168.0.1y sudo route add -host 193.150.193.150 gw 192.168.0.1después de conectarse a la VPN.

  • Si la VPN no le permite acceder a Internet a través de la red corporativa, deberá cambiar la configuración de la puerta de enlace predeterminada en su computadora para que apunte a 192.168.0.1 después de conectarse a la VPN. En este caso, querrá configurar su puerta de enlace predeterminada habitual y luego agregar rutas de red para acceder a equipos solo de VPN.

Es posible que necesite reducir su tabla de enrutamiento en el caso de conexión a la VPN que se muestra en su segundo pastebin a lo siguiente:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
10.100.0.0      10.100.0.105    255.255.255.0   UGH   0      0        0 tun0
10.100.0.105    0.0.0.0         255.255.255.255 UH    0      0        0 tun0

Luego, agregue las rutas que necesite para acceder al equipo corporativo. En la tabla de enrutamiento que se muestra arriba, asumí una red / 24 en la VPN, que puede ser incorrecta. Tendrás que configurar la máscara adecuadamente.

jkt123
fuente
¿Cómo haría para encontrar las direcciones de mi servidor DNS local y el de la red corporativa?
Tommy Brunn el
He editado mi respuesta para proporcionar esta información.
jkt123
Según nmcli, obtengo exactamente los mismos servidores DNS cuando estoy conectado a la VPN que cuando no, aunque claramente no debería, ya que puedo resolver un dominio interno en la red de la compañía cuando ' m conectado.
Tommy Brunn
Cuando corriste nmclisin una conexión VPN, ¿pudiste resolver DNS correctamente? De lo contrario, debe desconectarse de la VPN, asegurarse de que su DNS funciona correctamente y luego ejecutarlo nmcli.
jkt123
Sí, pude resolver DNS normalmente cuando me desconecté de la VPN. Salida de ejemplo: paste.ubuntu.com/7345250
Tommy Brunn
0

Hay algunas lagunas que no puedo llenar para usted relacionadas con cómo hacer que NetworkManager coordine las cosas por usted. Sin embargo, intentaré aclarar cómo deben funcionar las cosas que coordina. No es una respuesta perfecta, pero espero sea útil. En realidad, dado que esta es una vieja pregunta, esto es realmente para la posteridad.

Probablemente no desee utilizar la VPN corporativa, excepto para las conexiones a la red corporativa. Siendo ese el caso, sería mejor si su configuración de VPN solo enruta los rangos de red apropiados a la VPN y mantiene la ruta predeterminada apuntando a su enrutador local, como antes. Sería bueno si las empresas configuraran sus VPN para enrutar solo el tráfico o sus redes, pero desafortunadamente eso parece ser raro. Afortunadamente, puede configurar las rutas en su configuración local.

Eso todavía te deja con un posible problema de DNS. Los comentarios de jtk123 sobre lo que hace dnsmasq con DNS no son específicos de dnsmasq, así es como funciona DNS. Si un cliente DNS o un solucionador intermediario obtiene una respuesta de que no existe una entrada DNS, entonces no es un comportamiento normal recurrir a preguntar a otro servidor DNS. Eso significa que necesita un solucionador dns que responderá como desee si la solicitud se relaciona con la red de la empresa o no.

Tal vez la red de su empresa responde a las consultas de DNS relacionadas con Internet en general, en cuyo caso simplemente lo usa, y eso probablemente sea correcto. De lo contrario, necesita un servidor DNS local que reenvíe las solicitudes de dominios asociados con la empresa a su servidor DNS y reenvíe otras solicitudes a otros lugares, según corresponda.

Se le puede decir a dnsmasq que reenvíe solicitudes de dominios específicos a servidores DNS ascendentes específicos. por ejemplo, vea la opción --server como se describe en la página del manual dnsmasq.conf. Sin embargo, no tengo claro cómo hacer que networkmanager juegue bien con eso (que es lo que actualmente estoy buscando descubrir).

mc0e
fuente