Búsqueda inversa en Linux: prueba del siguiente servidor en NXDomain

Búsqueda inversa en Linux: prueba del siguiente servidor en NXDomain

Tengo una aplicación en un sistema Linux que utiliza la búsqueda inversa para resolver nombres de host. El problema es que tengo dos conjuntos de servidores DNS en mi resolve.conf (4 servidores en total), y cada conjunto corresponde a un rango diferente de IP. Funciona bien para un rango de IP, cualquiera que esté en el primer servidor de la lista, pero si intento buscar en el otro rango, informa que no se encontró: 3 (NXDOMAIN). Si probara con el siguiente servidor de la lista, tendría éxito... ¿Hay alguna manera de hacer esto? Los servidores DNS sólo tienen autoridad para sus respectivos rangos.

Respuesta1

Instalaría dnsmasq, lo convertiría (127.0.0.1) en el único servidor de nombres y lo configuraría para consultar este o aquel servidor para este o aquel dominio usando la directiva "servidor" dnsmasq.conf.

Si hay una manera de probar un servidor diferente en un NXDOMAIN desde un servidor DNS, sería usar un servidor DNS local con esa funcionalidad. El solucionador de Linux no lo permite. PowerDNS se puede configurar para ejecutar comandos para cada consulta, por lo que, como último recurso, siempre puedes hacerlo.

Respuesta2

Una respuesta a @cstamas, sólo para aclarar cómo solucionar el problema de VPN con dnsmasq.

Digamos que su máquina está en el dominio homenetwork.test con direcciones IP 10.1.0.0/16 y el servidor DNS es 10.1.0.1. Ese servidor DNS sólo puede consultar los nombres de dominio "externos" para el dominio worknetwork.test. Tiene autoridad (internamente) para homenetwork.test y 1.10.in-addr.arp.

Ahora, conecta una VPN para unirse a la red de trabajo y ahora tiene una nueva ruta a 10.2.0.0/16 a través de esa interfaz y un nuevo servidor DNS 10.2.0.1 que tiene autoridad para worknetwork.test y 2.10.in-addr.arpa. . Si utiliza uno u otro de esos servidores de nombres, solo podrá resolver uno u otro de los dominios worknetwork.test y homenetwork.test.

Si usa ambos servidores DNS (y RES_ROTATE), no es mejor ya que a veces podrá resolver uno u otro.

Ahora, si usas

dnsmasq --no-resolv --no-negcache --no-host --conf-file= \
   --server=/worknetwork.test/10.2.0.1 \
   --server=/2.10.in-addr.arpa/10.2.0.1 \
   --server=10.1.0.1

Y tenga "nameserver 127.0.0.1" en resolv.conf, usará 10.2.0.1 para resolver las direcciones IP worknetwork.test y 10.2.xx y el servidor DNS de su hogar para el resto.

Respuesta3

Das poca información por lo que es difícil empezar, pero lo intentaré...

En primer lugar, los servidores de los que estás hablando son servidores DNS autorizados (que proporcionan información sobre las zonas que configuras), ¿verdad? Si es así, debe configurar un servidor en su resolv.conf que sea solo recursivo (solo resuelva el nombre dns por usted, no proporcione información). Puedes instalarlo para escuchar en localhost comoschdicho.

Por otro lado, si un servidor devuelve un nxdomain, eso significa: "Conozco este nombre, soy un servidor autorizado para él y este nombre no existe". El algoritmo de resolución de DNS estándar se detiene aquí. Así que eso es todo, no hay forma de evitarlo. Debe configurar sus servidores DNS autorizados para que no tengan autoridad para ese nombre.

información relacionada