¿Cómo puedo hacer que DNS y VPN funcionen bien juntos?

¿Cómo puedo hacer que DNS y VPN funcionen bien juntos?

Cuando estoy en el trabajo y conecto mi computadora portátil con un cable, inmediatamente estoy dentro de nuestra red interna. Entonces puedo conectarme directamente a computadoras internas sin nombre de dominio como:, ssh host1con nombre de dominio: ssh host1.example.como directamente a través de IP ssh 192.168.100.101:.

Pero cuando estoy en casa, primero necesito iniciar sesión en nuestra VPN. Después de eso puedo
conectarme de forma segura con ssh host1.example.comy ssh 192.168.100.101.¿Pero cómo puedo llegar ssh host1al trabajo?

Estoy en Ubuntu 18.04.3 LTS, me conecto a la VPN con OpenVPN 2.4.4.

Hasta hace poco lo tenía funcionando, pero resultó que teníatodomi tráfico se enrutaba a través de la VPN, lo que por supuesto me hacía sentir como si estuviera en la oficina, pero también agregaba un viaje de ida y vuelta adicional para el tráfico que no estaba
destinado a la oficina. Entonces, en NetworkManager->editar conexión VPN->"
Configuración de IPv4"->Rutas... hay una casilla de verificación "Usar esta conexión solo para recursos en su red".

ingrese la descripción de la imagen aquí

Si no está marcada, obtengo una ruta predeterminada que dirige todo el tráfico a la interfaz vpn (tun0):

$ ip route
default via 172.30.0.25 dev tun0 proto static metric 50 
default via 192.168.1.1 dev enxc8f750cc2555 proto dhcp metric 100 
...

Si se marca, la primera regla predeterminada desaparece:

$ ip route
default via 192.168.1.1 dev enxc8f750cc2555 proto dhcp metric 100
...

Por supuesto, existen otras reglas de enrutamiento que completan la configuración de VPN, pero creo que no son necesarias aquí para la descripción del problema.

Entonces, después de marcar esa casilla, todo funciona (excepto la búsqueda de DNS) y una experiencia más rápida para el resto de la red (creo).

He estado jugando con la resolución pero no he descubierto cómo hacerlo
funcionar. He tratado de señalar /etc/resolve.confambos:

/run/systemd/resolve/resolv.conf
/run/systemd/resolve/stub-resolv.conf

Pero no parece haber ningún cambio en el comportamiento.

Supongo que esto tiene que ver con la searchconfiguración, resolve.confpero no sé exactamente cómo.

Entonces lo que me gustaría (creo) es:

  • Obtener configuración de red con DHCP dondequiera que me conecte (eso está funcionando)
  • Si inicio sesión en la VPN, el DNS dentro de la VPN debería ser el predeterminado.

¿Qué/cómo puedo cambiar, comprobar y verificar cosas? ¿Sugerencias? ¿Preguntas?

¿O estoy ladrando al árbol equivocado?

Respuesta1

La interfaz VPN debe tener agregada la dirección DNS de trabajo local y el dominio de búsqueda. Conecte remotamente una máquina a través de VPN a su sitio principal y verifique la dirección DNS. También necesitará su sufijo DNS, también conocido como dominio de búsqueda. (por ejemplo, si su nombre de dominio completo es como computer1.xyz.com o comp1.abc.local, el dominio/sufijo de búsqueda sería xyz.com o abc.local)

Una vez que tenga esta información, cambie la configuración en netplan, agregando el servidor de nombres (servidor dns) y el sufijo de búsqueda dns. Se vería así:

$ sudo vi /etc/netplan/50-cloud-init.yaml

ethernets:
        vpn0:
            addresses: [192.168.86.30/24]
            dhcp4: no
            dhcp6: no
            gateway4: 192.168.86.1
            nameservers:
                    addresses: [192.168.86.10] #dns server address goes here
                    search: [xyz.com] #end of FQDN goes here


$ sudo netplan apply

Solo agregue servidores de nombres/direcciones/valores de búsqueda. Ignora a los demás. Es posible que tenga que subir y bajar la interfaz VPN después de esto.

información relacionada