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

3

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. Desde que eu sou novo para isso, por favor, perdoe (e corrija se você) quaisquer erros com a terminologia!

O propósito do meu servidor DNS local é usar o meu domínio para acessar algumas das minhas máquinas locais. Então, digamos que meu domínio seja my-domain.com . Eu tenho um servidor de mídia em casa que eu quero acessar como media.my-domain.com , e eu tenho dois servidores DNS locais que eu uso para essa finalidade. Esses servidores DNS delegam para o DNS do Google para outras consultas.

Aqui está o meu arquivo de zona para my-domain.com , que é armazenado em /etc/bind/zones/db.my-domain.com no 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á o meu arquivo de opções que é armazenado em /etc/bind/named.conf.options no 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/24 é minha sub-rede local e ns1 e ns2 são meus servidores DNS principais e secundários, respectivamente.

Estou usando my-domain.com para outras finalidades na Internet. Por exemplo, quando acesso o admin.my-domain.com , ele é direcionado para o Admin Console de um site publicamente visível. Ou seja, se você executar um nslookup on admin.my-domain.com dos servidores DNS do Google, ele será 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.com corretamente. Minhas solicitações nslookup atingiram 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 encaminhem solicitações de my-domain.com para o DNS do Google e forneçam apenas respostas para ns1.my-domain.com , ns2.my-domain.com e media.my-domain.com . Eu tenho visto algumas questões que são semelhantes às minhas, mas as respostas tendem a ser para criar um arquivo de zona única para cada subdomínio. Este é realmente o único caminho? Eu realmente gostaria de poder dizer: "Se eu tiver especificado uma regra para x.my-domain.com , siga essa regra. Caso contrário, delegue a cadeia (para o DNS do Google no meu caso)."

Não sei ao certo como solucionar isso com o Google, já que não sou muito claro sobre a terminologia e, como sou um noob total, não sei por onde começar a corrigi-lo sozinho. O que eu estou pedindo é possível? Qualquer ajuda sobre como eu poderia implementar esse comportamento, ou procurá-lo, seria muito apreciada. Obrigado!

    
por Jake 09.08.2016 / 12:27

1 resposta

2

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

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

Como alternativa, em vez de tornar o Bind autoritativo para example.com você reserva um subdomínio de example.com para seu uso interno, faça com que seu DNS interno seja o único autorizado para isso. isto é, crie uma zona chamada home.example.com e use media.home.example.com . Dessa forma, você não pode ter registros conflitantes em seu DNS interno e público.

    
por 09.08.2016 / 12:53