DNS: delegar a resolução de um subdomínio para outro servidor de nomes

DNS: delegar a resolução de um subdomínio para outro servidor de nomes

Estou configurando um servidor DNS em casa para facilitar o alias de alguns dos meus servidores locais e também como um projeto para entender melhor o DNS. Como sou novo nisso, perdoe (e corrija, se desejar) quaisquer erros de terminologia!

O objetivo do meu servidor DNS local é usar meu domínio para acessar algumas das minhas máquinas locais. Então, digamos que meu domínio seja my-domain.com. Tenho um servidor de mídia em casa que desejo acessar como media.my-domain.come tenho dois servidores DNS locais que utilizo para essa finalidade. Esses servidores DNS delegam o DNS do Google para outras consultas.

Aqui está meu arquivo de zona my-domain.com, que está armazenado /etc/bind/zones/db.my-domain.comem meu 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

Aqui está meu arquivo de opções que está armazenado /etc/bind/named.conf.optionsem meu 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; };
};

Aqui 10.55.55.0/24está minha sub-rede local e ns1meus ns2servidores DNS primário e secundário, respectivamente.

Estou usando my-domain.compara outros fins na internet, por exemplo, quando acesso, admin.my-domain.comsou levado ao console administrativo de um site visível publicamente. Ou seja, se você ativar nslookupos admin.my-domain.comservidores DNS do Google, verá que ele é mapeado para um endereço IP público acessível globalmente.

Infelizmente, depois de implementar meus servidores DNS locais, não consigo resolver admin.my-domain.comcorretamente. Minhas nslookupsolicitações chegam aos meus servidores DNS locais, que não estão configurados para este subdomínio, e recebo "Sem resposta" do meu DNS local.

O comportamento que eu gostaria, em vez disso, é que meus servidores DNS encaminhassem solicitações para my-domain.como DNS do Google e fornecessem respostas apenas para ns1.my-domain.com, ns2.my-domain.come media.my-domain.com. Tenho visto algumas perguntas semelhantes às minhas, mas as respostas tendem a ser a criação de um único arquivo de zona para cada subdomínio. Este é realmente o único caminho? Eu realmente gostaria de poder dizer: "se eu especifiquei uma regra, x.my-domain.comsiga essa regra. Caso contrário, delegue a cadeia (para o DNS do Google, no meu caso)."

Não tenho certeza de como solucionar isso com o Google, pois não tenho muita clareza sobre a terminologia e, como sou um novato total, não sei por onde começar a consertar sozinho. O que estou pedindo é mesmo possível? Qualquer ajuda sobre como posso implementar esse comportamento ou procurá-lo seria muito apreciada. Obrigado!

Responder1

O problema é que você configurou o Bind para ser autoritativo para todo o example.com.

Portanto, você deve configurar seu Bind local para manter não apenas seus registros DNS internos, mas também uma cópia de todos os seus registros DNS públicos no arquivo de zona para example.com.

Alternativamente, em vez de tornar o Bind autoritativo para example.comvocê reservar um subdomínio de example.com para seu uso interno, torne seu DNS interno autoritativo apenas para isso. ou seja, crie uma zona chamada home.example.come use media.home.example.com. Dessa forma, você não pode ter registros conflitantes em seu DNS interno e público.

informação relacionada