Mientras estoy en el sitio1, necesito conectarme al sitio2 a través de OpenVPN. Una vez conectado, el sitio2 de OpenVPN empuja un servidor de nombres DNS y opciones de búsqueda de dominio. Esto hace que todas las resoluciones de nombre para el sitio1 fallen.
Ejemplo:
Físicamente conectado en el sitio1, DHCP empuja las opciones de DNS y resolvconf las administra.
/etc/resolv.conf# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 172.16.1.101 nameserver 172.16.1.102 search site1.internal.domainAbra el túnel OpenVPN en el sitio2, OpenVPN empuja dhcp-option DNS y DOMAIN para el sitio2 y los
/etc/openvpn/update-resolv-confempuja a resolvconf.
/etc/resolv.conf# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 192.168.1.5 nameserver 172.16.1.101 nameserver 172.16.1.102 search site2.internal.domain site1.internal.domainLa resolución DNS funciona para server.site2.internal.domain pero falla para server.site1.internal.domain
¿Hay alguna forma de que una solicitud DNS fallida al sitio21 deba caer en los servidores DNS del sitio1? ¿O configura resolvconf para que solo las consultas para site2.internal.domain se pasen al servidor de nombres site2?
Uso una máquina Ubuntu 14.04 en el sitio1, y el servidor OpenVPN en el sitio2 es un cuadro de pfSense 2.2. Administro ambos sitios, por lo que hacer cambios a ambos lados no es un problema. Ambos dominios son de uso no público e interno únicamente.
fuente

Respuestas:
Puede configurar un servidor de almacenamiento en caché local que lo vigile
/etc/resolv.conf, ya que se modifica medianteresolvconfscripts, e intente obtener sus respuestas de todos los servidores de nombres que se enumeran allí.En muchos sistemas será suficiente instalar el paquete dnsmasq , además de resolvconf.
Los valores predeterminados deberían "funcionar" siempre
no-resolvy cuando lasno-polldirectivas estén ausentes/etc/dnsmasq.confy lalointerfaz esté en la parte superior/etc/resolvconf/interface-order. Si un servidor de nombres ascendente devuelve algunas direcciones IP arbitrarias para direcciones irresolubles,strict-orderen dnsmasq.conf puede ayudar. Tu/etc/resolv.confsolo debería aparecernameserver 127.0.0.1.Si prefiere una configuración fija o conectarse a múltiples redes no relacionadas y desea evitar filtrar los nombres de sus redes privadas a todos los servidores de nombres, debe configurar dnsmasq para consultar servidores específicos basados en el dominio:
Para obtener más información sobre las opciones de dnsmasq, consulte aquí: http://oss.segetech.com/intra/srv/dnsmasq.conf
fuente
resolv.conf enumera todos los servidores DNS disponibles. Mientras el primero de la lista esté en funcionamiento, se le enviarán todas las consultas. Nada para los demás a menos que el primero esté caído. Entonces, si el primer servidor DNS de la lista está activo y sabe la respuesta, él responderá "¡Lo sé!", De lo contrario dirá "Me temo que no sé ...". Y eso es todo. Debe informar a 192.168.1.5 (el servidor DNS del sitio2) de todas las entradas del sitio1 y viceversa, por supuesto. Saludos
fuente
No he probado esto en Ubuntu, pero pude obtener una configuración similar trabajando en Arch Linux usando openresolv y dnsmasq.
Todos los cambios serán en la máquina cliente VPN. El servidor VPN no debería necesitar ningún cambio porque ya incluye el servidor de nombres DNS y las opciones de búsqueda de dominio.
resolvconf -lpara ver todos los archivos resolv.conf. Calcule el nombre resolvconf de su interfaz VPN (es decir, la X en "resolv.conf from X"). En mi caso, fuetun0, lo que usaré en la configuración restante.Editar
/etc/resolvconf.confpara agregar estas opciones:Editar
/etc/dnsmasq.confpara agregar estas opciones:Ejecute
resolvconf -upara generar los archivos de configuración dnsmasq.Inicie el
dnsmasqservicio y configúrelo para que se inicie en el arranque. En Arch, esto se hace ejecutando:La
name_serversopción le dice a resolvconf que solo enumere los servidores de nombres/etc/resolv.conf(es decir, apunta a su instancia local de dnsmasq). Lasdnsmasq_opciones le dicen a resolvconf que escriba los servidores de nombres que habrían/etc/resolv.confingresado en los archivos de configuración de dnsmasq.La
private_interfaceopción le dice a resolvconf que los servidores de nombres provistos por esa interfaz (su VPN) deben usarse solo al resolver nombres de host que están en uno de los dominios especificados en lasearchlínea. Generará la configuración dnsmasq adecuada para que eso suceda.Con esta configuración, las solicitudes de hosts en site2.internal.domain deben ir a 192.168.1.5, y todas las demás solicitudes deben ir a 172.16.1.101 o 172.16.1.102.
Si su sistema no usa IPv6, elimine :: 1 de la
name_serversopción.fuente