BIND9 como um servidor de nomes apenas de cache não funciona

1

Instalei o BIND9 via apt-get em um UBUNTU 12.04 recém-instalado e completamente atualizado, virtualizado no VirtualBox.
Eu quero usá-lo como um servidor de nomes somente de cache.

named.conf contém apenas as seguintes linhas:

options {
    directory "/var/cache/bind";  
    dnssec-validation auto;  
    auth-nxdomain no;  
    listen-on-v6 {any;};  

    recursion yes;
    allow-recursion {localnets;};
    allow-query-cache {localnets;};
    allow-query {localnets;};
};  

zone "." {
    type hint;
    file "/etc/bind/db.root";
};

zone "localhost" {
   type master;
   file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
   type master;
   file "/etc/bind/db.127";
};

Agora, se eu dig usar o meu servidor de nomes, a pesquisa falhará com connection timed out; no servers could be reached e o log BIND9 estará cheio de DNS format error [...] non-improving referral ou também FORMERR .

Mais especificamente, o resultado de dig @127.0.0.1 www.amazon.com é

; <<>> DiG 9.8.1-P1 <<>> @127.0.0.1 www.amazon.com
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached

Além disso, usando o Wireshark, consigo ver pacotes de saída para servidores-raiz, mas nunca recebo uma resposta.

Mas se eu usar dig usando um servidor de nomes externo (8.8.8.8 por exemplo), ou eu usá-lo na opção de encaminhadores de BIND9, a pesquisa será bem-sucedida.

Por quê?

    
por JustTrying 09.01.2013 / 16:47

2 respostas

3

A primeira coisa que noto é que você não tem "recursão sim"; no named.conf. O BIND não é recursivo por padrão (por algum tempo) por motivos de segurança. Você deve autorizar sua rede local a consultar o resolvedor com consultas recursivas:

acl me {
            ::1/128;
            127.0.0.0/8;
};
...
    recursion yes;
    allow-recursion   { me; };
    allow-query-cache { me; };
    allow-query { me; };

Não explica as mensagens de erro estranhas encontradas nos registros. Francamente, nas perguntas do ServerFault, eu odeio resumos vagos como "Agora, se eu cavar alguma coisa usando o meu nameserver, a pesquisa falha com a conexão expirada". Poste o comando completo e o resultado completo e veremos.

    
por 09.01.2013 / 21:54
3

Eu presumo que você já tenha verificado que a conectividade com a Internet real funciona bem no seu Ubuntu dentro do VirtualBox.

Nesse caso, um motivo frequente para o seu servidor recursivo não funcionar é se o seu provedor de Internet está bloqueando o acesso a outros servidores de nomes autoritativos que são executados na porta domain . Vejo que você já tentou fazer solicitações diretas para os servidores-raiz sem sucesso diretamente com dig , o que indicaria que, de fato, alguns problemas de conectividade estão em vigor.

Em suma, você pode fazer um teste simples: tente executar dig @8.8.8.8 +trace www.google.com para emular como um resolvedor recursivo estaria fazendo a resolução de nomes .

Se você obtiver tempos limite anteriores a . , há algo de errado com sua conectividade ou seu provedor bloqueia o DNS público do Google (e muito provavelmente qualquer outro DNS também).

Se você obtiver um tempo limite após . , seu provedor bloqueará o acesso aos servidores raiz (e provavelmente a todos os outros servidores de nomes com autoridade também).

Se sua resolução recursiva não tiver tempos limite, mas não tiver as etapas com. e google.com. , pular diretamente de . para www.google.com. (ou talvez nem tenha . para começar), então significa que o seu provedor está redirecionando todas as solicitações domain -port para seu próprio conjunto de servidores DNS recursivos, e você não pode executar seu próprio servidor de nomes recursivo com essa conectividade com a Internet.

Se você obtiver o resultado quase exatamente como abaixo, com todas as etapas . , com. , google.com. e www.google.com. , seu resolvedor recursivo local deverá funcionar bem, contanto que as instruções de instalação e configuração sejam seguido.

# dig @8.8.8.8 +trace www.google.com

; <<>> DiG 9.7.3 <<>> @8.8.8.8 +trace www.google.com
; (1 server found)
;; global options: +cmd
.                       2244    IN      NS      a.root-servers.net.
.                       2244    IN      NS      b.root-servers.net.
.                       2244    IN      NS      c.root-servers.net.
.                       2244    IN      NS      d.root-servers.net.
.                       2244    IN      NS      e.root-servers.net.
.                       2244    IN      NS      f.root-servers.net.
.                       2244    IN      NS      g.root-servers.net.
.                       2244    IN      NS      h.root-servers.net.
.                       2244    IN      NS      i.root-servers.net.
.                       2244    IN      NS      j.root-servers.net.
.                       2244    IN      NS      k.root-servers.net.
.                       2244    IN      NS      l.root-servers.net.
.                       2244    IN      NS      m.root-servers.net.
;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 25 ms

com.                    172800  IN      NS      d.gtld-servers.net.
com.                    172800  IN      NS      i.gtld-servers.net.
com.                    172800  IN      NS      j.gtld-servers.net.
com.                    172800  IN      NS      g.gtld-servers.net.
com.                    172800  IN      NS      b.gtld-servers.net.
com.                    172800  IN      NS      f.gtld-servers.net.
com.                    172800  IN      NS      l.gtld-servers.net.
com.                    172800  IN      NS      a.gtld-servers.net.
com.                    172800  IN      NS      m.gtld-servers.net.
com.                    172800  IN      NS      c.gtld-servers.net.
com.                    172800  IN      NS      h.gtld-servers.net.
com.                    172800  IN      NS      e.gtld-servers.net.
com.                    172800  IN      NS      k.gtld-servers.net.
;; Received 504 bytes from 192.33.4.12#53(c.root-servers.net) in 15 ms

google.com.             172800  IN      NS      ns2.google.com.
google.com.             172800  IN      NS      ns1.google.com.
google.com.             172800  IN      NS      ns3.google.com.
google.com.             172800  IN      NS      ns4.google.com.
;; Received 168 bytes from 192.55.83.30#53(m.gtld-servers.net) in 183 ms

www.google.com.         300     IN      A       74.125.225.208
www.google.com.         300     IN      A       74.125.225.211
www.google.com.         300     IN      A       74.125.225.212
www.google.com.         300     IN      A       74.125.225.209
www.google.com.         300     IN      A       74.125.225.210
;; Received 112 bytes from 216.239.38.10#53(ns4.google.com) in 24 ms
    
por 13.01.2013 / 08:52