problemas de configuração de DNS internos [fechado]
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 ??em> 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 umdig box1.bogus
recebo a ns.box1.bogus resposta ??em> registro e da tradução no adicional seção. No entanto na próxima iteração (quando deve obter o registro A) eu recebodig: 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
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)?