BIND: como delegar subzonas para outro servidor DNS?

3

Estou migrando de um grupo de trabalho servido por um servidor DNS BIND9 para um domínio AD com base no Windows Server 2008 R2 e gostaria de continuar usando o servidor BIND até que a infraestrutura do AD esteja pronta.

Durante a configuração do AD, via dcpromo, recebo um aviso de que devo certificar-se de que nosso servidor DNS atual delega o nome de domínio do AD ao servidor do AD.

Suponha que meu domínio do AD seja mydomain.lan e meu domínio regular do BIND seja example.com. Estou definindo meu servidor BIND como autoritativo para lan, mas gostaria de delegar mydomain.lan. para o IP do servidor AD.

Meu named.conf.local contém:

zone "lan" {
        type master;
        file "zone.lan";
};

E zone.lan contém:

$ORIGIN lan.
$TTL 1H ; 1 hour
@                       IN SOA  dns.example.com. hostmaster.example.com. (
                                201008137  ; serial
                                28800      ; refresh (8 hours)
                                14400      ; retry (4 hours)
                                2419200    ; expire (4 weeks)
                                86400      ; minimum (1 day)
                                )
                        IN NS   dns.example.com.

$ORIGIN mydomain.lan.
@                       IN NS   dc1.mydomain.lan.
dc1                     IN A    10.10.0.200 ; 'glue' record

Quando eu pergunto dns.example.com para "lan", eu posso a resposta esperada, mas quando eu consultar para "mydomain.lan" ou "dc1.mydomain.lan" eu recebo uma resposta NXDOMAIN. Todas as minhas tentativas até agora falharam.

Como faço para criar e delegar corretamente uma subzona?

Atualização: mais algumas informações

$ dig mydomain.lan @dns.example.com NS +norecurse

; <<>> DiG 9.7.0-P1 <<>> @dns.example.com mydomain.lan NS +norecurse
; (3 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23380
;; flags: qr ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;mydomain.lan.          IN  NS

;; AUTHORITY SECTION:
mydomain.lan.       3600    IN  NS  dc1.mydomain.lan.

;; ADDITIONAL SECTION:
dc1.mydomain.lan.   3600    IN  A   10.10.0.200

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Sun Aug 15 00:41:05 2010
;; MSG SIZE  rcvd: 64

$ dig @dc1.mydomain.lan dc1.mydomain.lan
dig: couldn't get address for 'dc1.mydomain.lan': not found

$ dig @10.10.0.200 dc1.mydomain.lan

; <<>> DiG 9.7.0-P1 <<>> @10.10.0.200 dc1.mydomain.lan
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21348
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;dc1.mydomain.lan.      IN  A

;; ANSWER SECTION:
dc1.mydomain.lan.   1200    IN  A   10.10.0.200

;; Query time: 6 msec
;; SERVER: 10.10.0.200#53(10.10.0.200)
;; WHEN: Sun Aug 15 00:55:11 2010
;; MSG SIZE  rcvd: 50

$ dig @10.10.0.200 mydomain.lan

; <<>> DiG 9.7.0-P1 <<>> @10.10.0.200 mydomain.lan
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24664
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;mydomain.lan.          IN  A

;; ANSWER SECTION:
mydomain.lan.       600 IN  A   10.10.0.200

;; Query time: 0 msec
;; SERVER: 10.10.0.200#53(10.10.0.200)
;; WHEN: Sun Aug 15 01:04:39 2010
;; MSG SIZE  rcvd: 46
    
por Martijn Heemels 13.08.2010 / 17:05

3 respostas

5

O problema está no seu named.conf. Eu estou supondo que você tem encaminhadores definidos no seu named.conf em algum lugar. Para qualquer zona para a qual seu servidor é autoritativo, é necessário desativar o encaminhamento. Usando o exemplo acima, você deve alterá-lo para ler assim:

zone "lan" {
    type master;
    file "zone.lan";
    forwarders { };
};

Deve funcionar assim que você fizer isso.

    
por 14.06.2011 / 16:39
2

Há um problema no arquivo de zona.

$ORIGIN lan.
$TTL 1H ; 1 hour
@                       IN SOA  dns.example.com. hostmaster.example.com. (
                                201008137  ; serial
                                28800      ; refresh (8 hours)
                                14400      ; retry (4 hours)
                                2419200    ; expire (4 weeks)
                                86400      ; minimum (1 day)
                                )
                        IN NS   dns.example.com.

$ORIGIN mydomain.lan.
@                       IN NS   dc1.mydomain.lan.
dc1                     IN A    10.10.0.200 ; 'glue' record

O @ refere-se ao nome da zona como definido no named.conf

zone "lan" {
        type master;
        file "zone.lan";
};

que é apenas 'lan'. O registro que você criou é

lan. IN NS dc1.nydomain.lan.

Eu não uso atalhos do BIND para registros importantes porque é fácil esquecer ou entender mal o comportamento, levando a resultados inesperados.

(Eu sei que provavelmente é tarde demais para ajudar essa pessoa, mas se alguém mais olhar para isso, tente remover os atalhos do BIND para ver se ela resolve seus problemas.)

    
por 07.08.2013 / 21:06
1

Parece que você está perdendo 'dc1' como host na zona gerenciada pelo AD; a cola é usada apenas para encontrar os servidores autoritativos, não como conteúdo real quando esses servidores forem atingidos.

Você pode querer explorar dig +trace para ver os servidores consultados, quando não estiver usando @server.name , para ver a cadeia de delegação sendo perseguida.

    
por 15.08.2010 / 02:42