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.domain
Abra el túnel OpenVPN en el sitio2, OpenVPN empuja dhcp-option DNS y DOMAIN para el sitio2 y los
/etc/openvpn/update-resolv-conf
empuja 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.domain
La 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 medianteresolvconf
scripts, 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-resolv
y cuando lasno-poll
directivas estén ausentes/etc/dnsmasq.conf
y lalo
interfaz esté en la parte superior/etc/resolvconf/interface-order
. Si un servidor de nombres ascendente devuelve algunas direcciones IP arbitrarias para direcciones irresolubles,strict-order
en dnsmasq.conf puede ayudar. Tu/etc/resolv.conf
solo 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 -l
para 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.conf
para agregar estas opciones:Editar
/etc/dnsmasq.conf
para agregar estas opciones:Ejecute
resolvconf -u
para generar los archivos de configuración dnsmasq.Inicie el
dnsmasq
servicio y configúrelo para que se inicie en el arranque. En Arch, esto se hace ejecutando:La
name_servers
opció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.conf
ingresado en los archivos de configuración de dnsmasq.La
private_interface
opció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 lasearch
lí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_servers
opción.fuente