DNS: delegar la resolución de un subdominio a otro servidor de nombres

DNS: delegar la resolución de un subdominio a otro servidor de nombres

Estoy configurando un servidor DNS en casa para que me resulte más fácil asignar un alias a algunos de mis servidores locales y también como un proyecto para comprender mejor el DNS. Como soy nuevo en esto, perdone (y corríjalo si lo desea) cualquier error de terminología.

El propósito de mi servidor DNS local es utilizar mi dominio para acceder a algunas de mis máquinas locales. Entonces, digamos que mi dominio es my-domain.com. Tengo un servidor de medios en casa al que quiero acceder media.my-domain.comy tengo dos servidores DNS locales que uso para este propósito. Estos servidores DNS delegan en Google DNS para otras consultas.

Aquí está mi archivo de zona my-domain.com, que está almacenado /etc/bind/zones/db.my-domain.comen mi servidor DNS local ns1:

;
; BIND data file for local loopback interface
;
$TTL    604800
@   IN  SOA ns1.my-domain.com. admin.my-domain.com. (
                  3     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
; name servers - NS records
@   IN  NS  ns1.my-domain.com.
@   IN  NS  ns2.my-domain.com.
;
; name servers - A records
ns1.my-domain.com.  IN  A   10.55.55.55
ns2.my-domain.com.  IN  A   10.55.55.56
;
; 10.55.55.0/24 - A records
media.my-domain.com.    IN  A   10.55.55.100

Aquí está mi archivo de opciones que está almacenado /etc/bind/named.conf.optionsen mi servidor DNS local ns1:

acl "trusted" {
    10.55.55.0/24; # home network
};
options {
    directory "/var/cache/bind";

    recursion yes;
    allow-recursion { trusted; };
    listen-on { 10.55.55.55; };
    allow-transfer {none; }; # disable zone transfers

    forwarders {
        8.8.8.8; # google1
        8.8.4.4; # google2
    };

    //========================================================================
    // If BIND logs error messages about the root key being expired,
    // you will need to update your keys.  See https://www.isc.org/bind-keys
    //========================================================================
    dnssec-validation auto;

    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
};

Aquí 10.55.55.0/24está mi subred local y ns1mis ns2servidores DNS primario y secundario, respectivamente.

Lo estoy usando my-domain.compara otros fines en Internet, por lo que, por ejemplo, cuando accedo, admin.my-domain.comme lleva a la consola de administración de un sitio web visible públicamente. Es decir, si realiza una nslookupactivación admin.my-domain.comdesde los servidores DNS de Google, la verá asignada a una dirección IP pública accesible globalmente.

Desafortunadamente, después de implementar mis servidores DNS locales, no puedo resolverlo admin.my-domain.comcorrectamente. Mis nslookupsolicitudes llegan a mis servidores DNS locales, que no están configurados para este subdominio, y recibo "Sin respuesta" de mi DNS local.

En cambio, el comportamiento que me gustaría es que mis servidores DNS reenvíen solicitudes a my-domain.comGoogle DNS y solo proporcionen respuestas para ns1.my-domain.com, ns2.my-domain.comy media.my-domain.com. He visto algunas preguntas similares a la mía, pero las respuestas tienden a ser crear un único archivo de zona para cada subdominio. ¿Es esta realmente la única manera? Realmente me gustaría poder decir "si he especificado una regla, x.my-domain.comentonces sigue esa regla. De lo contrario, delega en la cadena (a Google DNS en mi caso)".

No estoy seguro de cómo solucionar este problema con Google ya que no tengo muy clara la terminología y como soy un novato total, no sé por dónde empezar a solucionarlo yo mismo. ¿Es posible lo que estoy pidiendo? Cualquier ayuda sobre cómo podría implementar este comportamiento o buscarlo sería muy apreciada. ¡Gracias!

Respuesta1

El problema es que configuró Bind para que tenga autoridad para todo example.com.

Por lo tanto, debe configurar su Bind local para que contenga no solo sus registros DNS internos, sino también una copia de todos sus registros DNS públicos en el archivo de zona para example.com.

Alternativamente, en lugar de hacer que Bind tenga autoridad para example.comreservar un subdominio de ejemplo.com para su uso interno, haga que su DNS interno solo tenga autoridad para eso. es decir, cree una zona llamada home.example.comy use media.home.example.com. De esa manera, no podrá tener registros conflictivos en su DNS público e interno.

información relacionada