Pergunta

Tudo bem, eu vou afirmar de antemão que esta questão pode ser muito envolvido (quantidade de detalhes não complexidade) para este meio. Mas eu percebi que isso era o melhor lugar para começar.

Eu estou tentando configurar uma prova de conceito do projeto e a configuração do BIND é o meu primeiro grande obstáculo. Eu quero configurar 3 servidores DNS em 3 caixas físicas. Nenhum destas caixas necessidades para resolver endereços públicos, este é interna única . Eu li através de como configurar raízes internas no (principalmente) excelente DNS e BIND 5º livro ed. Mas a minha tradução de seu exemplo não é funcional. Todos de IP são a RFC 1918 não roteáveis.

Box 1 será autorizado para endereços no box1.bogus domínio e Caixa 2 será autorizado para endereços na box2.bogus domínio. Box 3 atuará tanto como uma raiz interna eo servidor TLD para o domínio falso .

questões não resolvidas atuais:

  • Eu tenho um arquivo de dicas na caixa 1 e 2 que contém um único NS registro para a definição NS da zona de raiz. Além disso, há um A registro que traduz os NS para o ip da raiz. se eu dig . da caixa 1 recebo um autoridade Secção com o nome NS, não um resposta e seção de registro adicional. Portanto, eu sou incapaz de realmente resolver o IP do servidor raiz da caixa 1.

  • Se eu aponto meu /etc/resolv.conf da caixa 1 diretamente para o servidor raiz e fazer um dig box1.bogus recebo a ns.box1.bogus resposta registro e da tradução no adicional seção. No entanto na próxima iteração (quando deve obter o registro A) eu recebo dig: couldn't get address for ns.box1.bogus

Obviamente minhas configurações são não correto. Eu não vejo uma maneira de anexá-los a este post, por isso, se as pessoas querem caminhar por este passo a passo vou cut'n'paste-los em um comentário a esta pergunta. Caso contrário, eu estou aberto a tomar este 'offline' com um "cara DNS" para descobrir onde eu estou faltando um '' ou ter um demasiados!

Eu, pessoalmente, acho que a web poderia fazer com um outro exemplo de raiz interna que não faz uso de um exemplo de filme-U.

OK, se vamos fazer isso, então devemos usar um exemplo concreto eh? Tenho a configuração 3 máquinas em uma VLAN privada para testar isso. Como uma verificação de sanidade I emparelhado para baixo todas as minhas configurações relevantes, condensado quando capaz, e reimplantado 2 dos namesevers. Eu deixei de fora Scratchy por agora. Mesmos resultados como acima. Aqui estão as configurações e saídas de escavação iniciais.


Bogus

Machine Name: Bogus (I just realized I should change this...)  
Role:         Internal Root and TLD Nameserver  
IP:           10.0.0.1  
BIND:         9.5.0-16.a6.fc8  

/etc/named.conf

// Controls who can make queries of this DNS server. Currently only the
// local test bed. When there is a standardized IP addr scheme, we can have
// those addr ranges enabled so that even if firewall rules get broken, the
// public internet can't query the internal DNS.
//
acl "authorized" {
        localhost;      // localhost
        10.0.0.0/24;          // Local Test
};

options {
    listen-on port 53 {
        127.0.0.1;
        10.0.0.1;
    };
    listen-on-v6 port 53 { ::1; };
    directory   "/var/named";
    dump-file   "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    pid-file    "/var/run/named/named.pid";
    allow-query     { any; };
    recursion no;
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

//
// The fake root.
//
zone "." {
    type master;
    file "master/root";
    allow-query { authorized; };
};

//
// The TLD for testing
//
zone "bogus" {
    type master;
    file "master/bogus";
    allow-query { authorized; };
    allow-transfer { authorized; };
};

/ var / named / master / root

$TTL    3600
.                   SOA ns.bogustld. hostmaster.internal.bogus. (
                        2008101601  ; serial
                        1H      ; refresh
                        2H      ; retry
                        14D     ; expire
                        5M )        ; minimum
;
; Fake root zone servers defined.
;
.                   NS  ns.bogustld.
ns.bogustld.        A   10.0.0.1
;
; Testing TLD
;
bogus           NS  ns1.bogus.
ns1.bogus.              A   10.0.0.1

/ var / named / mestre / falso

$TTL 3600
@           SOA ns1.internal.bogus. hostmaster.internal.bogus. (
                2008102201  ; serial date +seq
                1H      ; refresh
                2H      ; retry
                14D     ; expire
                5M)     ; min TTL
;
            NS  ns1.internal.bogus.
;
; Auth servers
;
ns1.internal.bogus. A   10.0.0.1
;
; Customer delegations each customer 2nd level domain has it's
; own zone file.
;
;Modified to be unique nameservers in the bogus domain
itchy           NS  ns1-itchy.bogus.
ns1-itchy.bogus.    A   10.0.0.2
;
scratchy        NS  ns1-scratchy.bogus.
ns1-scratchy.bogus. A   10.0.0.3

A saída de escavação.

; <<>> DiG 9.5.0-P2 <<>> .
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57175
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;.                              IN      A

;; AUTHORITY SECTION:
.                       300     IN      SOA     ns.bogustld. hostmaster.internal
.bogus. 2008101601 3600 7200 1209600 300

;; Query time: 1 msec
;; SERVER: 10.0.0.1#53(10.0.0.1)
;; WHEN: Tue Oct 21 12:23:59 2008
;; MSG SIZE  rcvd: 88

A saída do dig + trace itchy.bogus

; <<>> DiG 9.5.0-P2 <<>> +trace itchy.bogus
;; global options:  printcmd
.                       3600    IN      NS      ns.bogustld.
;; Received 57 bytes from 10.0.0.1#53(10.0.0.1) in 1 ms

itchy.bogus.            3600    IN      NS      ns1-itchy.bogus.
;; Received 69 bytes from 10.0.0.1#53(ns.bogustld) in 0 ms

itchy.bogus.            3600    IN      A       10.0.0.2
itchy.bogus.            3600    IN      NS      ns1.itchy.bogus.
;; Received 79 bytes from 10.0.0.2#53(ns1-itchy.bogus) in 0 ms

Itchy

Machine Name: Itchy   
Role:         SLD Nameserver (supposed to be owner of itchy.bogus) 
IP:           10.0.0.2  
BIND:         9.5.0-16.a6.fc8  

/etc/named.conf

// Controls who can make queries of this DNS server. Currently only the
// local test bed. When there is a standardized IP addr scheme, we can have
// those addr ranges enabled so that even if firewall rules get broken, the
// public internet can't query the internal DNS.
//
acl "authorized" {
        localhost;      // localhost
        10.0.0.0/24;          // LAN Test
};

options {
    listen-on port 53 {
        127.0.0.1;
        10.0.0.2;
    };
    listen-on-v6 port 53 { ::1; };
    directory   "/var/named";
    dump-file   "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
    pid-file    "/var/run/named/named.pid";
    allow-query     { any; };
    recursion no;
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
    type hint;
    file "master/root.hint";
 };

zone "itchy.bogus" {
    type master;
    file "master/itchy.bogus";
    allow-query { authorized; };
    allow-transfer { authorized; };
};

/var/named/master/itchy.bogus

$TTL    3600
@       SOA     ns1.itchy.bogus. hostmaster.itchy.bogus. (
                2008102202  ; serial
                1H      ; refresh
                2H      ; retry
                14D     ; expire
                5M )        ; minimum
;
        A   10.0.0.2
        NS      ns1.itchy.bogus.
ns1     A   10.0.0.2

/var/named/master/root.hint

.                        3600000      NS    ns.bogustld.
ns.bogustld.         3600000       A    10.0.0.1
; End of File

/etc/resolv.conf

nameserver 10.0.0.2

A saída de escavação.

; <<>> DiG 9.5.0-P2 <<>> .
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31291
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;.                              IN      A

;; AUTHORITY SECTION:
.                       3600000 IN      NS      ns.bogustld.

;; Query time: 0 msec
;; SERVER: 10.0.0.2#53(10.0.0.2)
;; WHEN: Tue Oct 21 17:09:53 2008
;; MSG SIZE  rcvd: 41

A saída do dig + trace itchy.bogus

; <<>> DiG 9.5.0-P2 <<>> +trace itchy.bogus
;; global options:  printcmd
.                       3600000 IN      NS      ns.bogustld.
;; Received 41 bytes from 10.0.0.2#53(10.0.0.2) in 0 ms

dig: couldn't get address for 'ns.bogustld': failure
Foi útil?

Solução

Ao usar @, você está definindo itchy.bogus. Você não pode, em seguida, redefini-lo ainda mais para baixo na zona com a linha itchy.bogus.

Tente isto:

@       SOA     ns1.itchy.bogus. hostmaster.itchy.bogus. (
                        2008102201      ; serial
                        1H              ; refresh
                        2H              ; retry
                        14D             ; expire
                        5M )            ; minimum
;
            NS      ns1
            A       10.0.0.2
    ns1     A       10.0.0.2

Uma vez que este é o arquivo de zona para itchy.bogus, que deve fazer a coisa certa.

Outras dicas

Assumindo que você verificou todas as coisas óbvias - como garantir que o arquivo de configuração de ligação principal é que você pensa que é. em primeiro lugar verificar que o que você acha que o nome está usando são os corretos -. às vezes é fácil de editar um arquivo que está no diretório errado e admira por isso que as mudanças não são notados

Além disso você já usou o nome-checkconf e nomeou-checkzone

É duro o suficiente para vincular depuração, mas sem ver os arquivos de configuração é quase impossível, então por favor, adicioná-los ao post original.

(Eu adicionei isso como um comentário à pergunta - Tenho postado como uma resposta porque o OP é novo aqui).

Cada um dos 3 servidores precisa ter o mesmo arquivo de dicas. Ela deve ter um registro NS para "". com o nome do servidor raiz e um registro para esse nome.

O servidor raiz deve ter o "" zona definida acima. O "." zona precisa ter "falso" com um registro NS para si. Em seguida, ele deve ter um registro para box1.bogus vai box1 e box2.bogus indo para a box2.

Note que você não deve usar box1 e box2 tanto como os nomes de host e os nomes dos domínios 2º nível. Digamos que os domínios são zone1.bogus e zone2.bogus vez.

Assim box1 e box2 deve estar na zona falso, completo com registros A. zone1 e zone2 deve ser registros NS apontando para box1 e box2.

Claro como lama? :)

Ok. Eu vejo que você aded suas configurações. Excelente.

Gostaria de mudar a zona de raiz da seguinte maneira:

;Should this be ns1.itchy.bogus or ns1.itchy.internal.bogus??
itchy                   NS      ns1-itchy.bogus.
ns1-itchy.bogus.    A   10.0.0.2
;
scratchy        NS      ns1-scratchy.bogus.
ns1-scratchy.bogus. A   10.0.0.3

Eu acho que o problema é que você está delegando itchy.bogus, para que você não pode colocar nomes lá dentro.

"COM" servidores de nome, creio eu, usar as dicas para que eles possam servir registros A para servidores de nomes para as zonas de delegados, mas no seu caso, é apenas mais limpo para garantir que qualquer zona dado ser servido só tem delegações para sub -zones e hosts dentro da zona atual.

Agora, meus problemas de delegação olhar resolvido, mas eu ainda estou tendo problemas com a pesquisa de raiz (que eu pensei que seria soooo fácil.)

Eu acho que o problema decorre do fato de que quando eu dig da máquina coceira eu recebo um registro de autoridade, em vez de um registro de resposta. Eu não sou apenas certo o que eu fiz (ou não) para causar isso.

Se você "dig [sem args]" a partir de uma máquina usando o arquivo dica típico para a internet você recebe um bloco de respostas para os servidores de nomes de raiz e a tradução na seção adicional.

se eu fizer isso a partir da máquina falso (root e TLD nameserver) I get

;; QUESTION SECTION:
;.                              IN      NS

;; ANSWER SECTION:
.                       3600    IN      NS      ns.bogustld.

;; ADDITIONAL SECTION:
ns.bogustld.            3600    IN      A       10.0.0.1

Se eu fizer isso a partir da máquina coceira I get

;; QUESTION SECTION:
;.                              IN      NS

;; AUTHORITY SECTION:
.                       3600000 IN      NS      ns.bogustld.

;; Query time: 0 msec

Ela fica mais interessante se você tentar dig +trace .

caixa de Internet

; <<>> DiG 9.5.0a6 <<>> +trace .
;; global options:  printcmd
.                       3005    IN      NS      C.ROOT-SERVERS.NET.
.                       3005    IN      NS      D.ROOT-SERVERS.NET.
.                       3005    IN      NS      E.ROOT-SERVERS.NET.
.                       3005    IN      NS      F.ROOT-SERVERS.NET.
.                       3005    IN      NS      G.ROOT-SERVERS.NET.
.                       3005    IN      NS      H.ROOT-SERVERS.NET.
.                       3005    IN      NS      I.ROOT-SERVERS.NET.
.                       3005    IN      NS      J.ROOT-SERVERS.NET.
.                       3005    IN      NS      K.ROOT-SERVERS.NET.
.                       3005    IN      NS      L.ROOT-SERVERS.NET.
.                       3005    IN      NS      M.ROOT-SERVERS.NET.
.                       3005    IN      NS      A.ROOT-SERVERS.NET.
.                       3005    IN      NS      B.ROOT-SERVERS.NET.
;; Received 500 bytes from 64.105.172.26#53(64.105.172.26) in 19 ms

.                       86400   IN      SOA     a.root-servers.net. nstld.verisi
gn-grs.com. 2008102201 1800 900 604800 86400
;; Received 92 bytes from 128.63.2.53#53(H.ROOT-SERVERS.NET) in 84 ms

Minha caixa de raiz interna (Bogus)

; <<>> DiG 9.5.0-P2 <<>> +trace .
;; global options:  printcmd
.                       3600    IN      NS      ns.bogustld.
;; Received 57 bytes from 10.0.0.1#53(10.0.0.1) in 1 ms

.                       3600    IN      NS      ns.bogustld.
;; Received 72 bytes from 10.0.0.1#53(ns.bogustld) in 0 ms

Itchy

; <<>> DiG 9.5.0-P2 <<>> +trace .
;; global options:  printcmd
.                       3600000 IN      NS      ns.bogustld.
;; Received 41 bytes from 10.0.0.2#53(10.0.0.2) in 0 ms

dig: couldn't get address for 'ns.bogustld': failure

Por que minha internet enfrentando máquina de encontrar uma SOA, mas nenhuma das minhas máquinas internas?

Como o highlander, só pode haver um.

Ao usar as dicas internet raiz normal, você é mais ou menos impedido de utilizar sua própria raiz interna, porque nenhum dos servidores raiz da Internet verdadeiro saber "falso".

Sua única opção seria a de espelhar a raiz "" zona de dentro do seu "", mas em seguida, adicione 'falsa' a ele. Você faria isso por despejar periodicamente a zona de raiz e executá-lo através de algum processamento para adicionar sua zona personalizada para ele.

Alguns dos fornecedores de raiz DNS alternativos fazer isso, mas eles fornecem dicas de raiz para os seus "clientes" ao uso que não referenciar os servidores raiz "reais" em tudo.

... Am I compreender a pergunta corretamente? Não tenho certeza.

escavação. @ 10.0.0.1 (falso) deve retornar registros de autoridade para '', uma vez que é realmente autorizado para a zona.

escavação. @ 10.0.0.2 (coceira) não deve retornar registros de autoridade para '', já que não é. É pode retornar um registro autorizado a primeira vez que você consulta para um nome na zona de raiz, porque tem que recurse e buscar um registro de autoridade do servidor autoritário. Mas se você fizer isso um segundo tempo, você vai ter um resultado em cache ea bandeira 'aa' ficará claro.

O seu servidor de nome não vai usar a dica para dar respostas a cavar. Ou seja, ele não vai dar a volta dica para cavar como uma resposta. Ele vai insistir na verdade consultando 10.0.0.1 para bogustld. Eu não acho que você bogustld configurado como uma zona, apenas falso.

Você provavelmente deve mudar ns.bogustld para ns.bogus. Dê 10.0.0.1 o nome ns.bogus.

Como alternativa, você pode adicionar um NS e um registro SOA no. para bogustld.

Se você cavar ns1.bogus. @ 10.0.0.2, que funciona, né (assumindo que a configuração acima ainda está em vigor)?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top