Tengo la siguiente configuración:
Una instancia de bind9 (denominada L a continuación) en hardware muy limitado para resolver los nombres en mis redes locales. Es un maestro autorizado para la zona home.mydomain.com. Las consultas a este servidor funcionan y devuelven homedns.home.mydomian.com como NS y la IP 192.168.1.77 del mismo como registro adicional.
Una instancia de bind9 (denominada M a continuación) para resolver nombres locales y de Internet. Aquí no se utiliza ninguna opción de reenvío global. Hay una zona delantera configurada:
zone "home.mydomain.com" in {
type forward;
forward only;
forwarders { 192.168.1.77; };
};
Nota 1: midominio.com es un dominio registrado existente, pero no hay ningún registro para hogar.midominio.com
Nota 2: La versión bind9 de M es muy antigua: 9.8.1-P1
Esta configuración funciona siempre que la conexión a Internet esté activa, pero las consultas de nombres locales no se responden cuando la conexión no funciona. El registro es syslog es
Aug 30 09:05:42 M named[1611]: error (no valid DS) resolving 'xxx.home.mydomain.com/A/IN': 192.168.1.77#53
La captura de la red para una resolución exitosa cuando la conexión está activa revela que M consulta midominio.com en Internet después de recibir la respuesta de L. En la respuesta de M al cliente, la SECCIÓN DE AUTORIDAD cambia:
cavar a L:
;; ANSWER SECTION:
syslog.home.mydomain.com. 3600 IN A 192.168.1.99
;; AUTHORITY SECTION:
home.mydomain.com. 3600 IN NS homedns.home.mydomain.com.
;; ADDITIONAL SECTION:
homedns.home.mydomain.com. 3600 IN A 192.168.1.77
cavar a M:
;; ANSWER SECTION:
syslog.home.mydomain.com. 2134 IN A 192.168.1.99
;; AUTHORITY SECTION:
net. 171334 IN NS j.gtld-servers.net.
net. 171334 IN NS m.gtld-servers.net.
net. 171334 IN NS i.gtld-servers.net.
net. 171334 IN NS k.gtld-servers.net.
net. 171334 IN NS g.gtld-servers.net.
net. 171334 IN NS e.gtld-servers.net.
net. 171334 IN NS h.gtld-servers.net.
net. 171334 IN NS a.gtld-servers.net.
net. 171334 IN NS d.gtld-servers.net.
net. 171334 IN NS f.gtld-servers.net.
net. 171334 IN NS b.gtld-servers.net.
net. 171334 IN NS c.gtld-servers.net.
net. 171334 IN NS l.gtld-servers.net.
No entiendo por qué M no simplemente devuelve la respuesta de L al cliente y no me queda ninguna idea de qué podría intentar evitar la consulta a Internet para la zona reenviada.
Respuesta1
La entrada de registro citada en la pregunta sugiere que el error está relacionado con un error en la validación de DNSSEC cuando no hay conexión a Internet.
Tenga en cuenta la parte "DS no válido" del mensaje de error:
Aug 30 09:05:42 M named[1611]: error (no valid DS) resolving 'xxx.home.example.com/A/IN': 192.168.1.77#53
Presumiblemente, las respuestas a las consultas que llegan a esta zona directa normalmente se aceptan solo porque la example.com
zona pública existe como una zona sin firmar (es decir, hay prueba de no DS
como parte de la delegación de la example.com
zona adecuada), pero cuando esta prueba ya no se puede recuperar debido a que no hay conexión a Internet, las respuestas ya no se pueden aceptar ya que ya no es posible verificar si se deben firmar y cómo.
Una opción sería firmar la home.example.com
zona y agregar una estáticaancla de confianzapara esta zona específicamente.
Otra sería desactivar selectivamente la validación; BIND actual tiene unvalidate-except
opción que le permite especificar una lista de nombres de dominio donde no se debe realizar ninguna validación, según:
validate-except
Esto especifica una lista de nombres de dominio en y debajo de los cuales no se debe realizar la validación DNSSEC, independientemente de la presencia de un ancla de confianza en esos nombres o encima de ellos. Esto se puede utilizar, por ejemplo, al configurar un dominio de nivel superior destinado únicamente a uso local, de modo que la falta de una delegación segura para ese dominio en la zona raíz no provoque errores de validación. (Esto es similar a establecer un ancla de confianza negativa, excepto que es una configuración permanente, mientras que las anclas de confianza negativas caducan y se eliminan después de un período de tiempo determinado).
También existe la posibilidad de deshabilitar completamente la validación utilizando eldnssec-validation
opción, que no recomendaría si esta instancia BIND tiene un uso más amplio que este avance específico.
(Tenga en cuenta que he reemplazado el nombre de dominio utilizado en la pregunta porque example.com
parece poco probable que la pregunta tenga alguna relación con el nombre de dominio al que hace referencia o con la empresa propietaria).