Solucão de problemas

Esta seção cobre maneiras que ajudam a determinar a causa quando os problemas acontecem com o DNS e o BIND9.

Testando

resolv.conf

O primeiro passo para testar o BIND9 é adicionar o Endereço IP do servidor de nomes no resolvedor da máquina. O servidor de nomes Primário deve ser configurado também em outra máquina para checagem dupla. Simplesmente edite o /etc/resolv.conf e adicione o seguinte:

nameserver	192.168.1.10
nameserver	192.168.1.11
[Nota]

Você deve também adicionar o Endereço IP do servidor de nomes Secundário no caso do Primário ficar indisponível.

dig

Se você instalou o pacote dnsutils você pode testar sua configuração utilizando o utilitário DNS de busca de DNS dig:

  • Após instalar o BIND9 use o dig contra a interface loopback para ter certeza que ele está ouvindo na porta 53. A partir de um terminal:

    dig -x 127.0.0.1
    

    Você deve ver linhas parecidas com as seguintes na saída do comando:

    ;; Query time: 1 msec
    ;; SERVER: 192.168.1.10#53(192.168.1.10)
    
  • Se você configurou o BIND9 como um servidor de nomes Caching "dig" um domínio externo para checar o tempo da consulta:

    dig ubuntu.com
    

    Anote o tempo da consulta para no fim da saída do comando

    ;; Query time: 49 msec
    

    Depois de um segundo dig, poderá ter melhorado:

    ;; Query time: 1 msec
    

ping

Now to demonstrate how applications make use of DNS to resolve a host name use the ping utility to send an ICMP echo request. From a terminal prompt enter:

ping example.com

This tests if the nameserver can resolve the name ns.example.com to an IP Address. The command output should resemble:

PING ns.example.com (192.168.1.10) 56(84) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=0.800 ms
64 bytes from 192.168.1.10: icmp_seq=2 ttl=64 time=0.813 ms

named-checkzone

Um boa forma de testar seus arquivos de zona é usando o utilitário named-checkzone instalado com o pacotebind9. Este utilitário permite que você tenha certeza que a configuração está correta antes de reiniciar o BIND9 e faça as alterações entrar em vigor.

  • Para testar nosso arquivo de zona Forward de exemplo, entre o seguinte a partir de um terminal:

    named-checkzone example.com /etc/bind/db.example.com
    

    Se tudo estiver configurado corretamente você deverá ver algo similar a:

    zone example.com/IN: loaded serial 6
    OK
    
  • Similarmente, para testar o arquivo de zona Reversa entre o seguinte:

    named-checkzone example.com /etc/bind/db.192
    

    A saída deve ser similar a:

    zone example.com/IN: loaded serial 3
    OK
    
[Nota]

O Número Serial do seu arquivo de zona provavelmente estará diferente.

Registrando

O BIND9 possui uma vasta variedade de opções de configuração de registro disponíveis. Existem duas opções principais. A opção channel para configurar onde irão os registros, e a opção category que determina qual informação registrar.

Se nenhuma opção de registro estiver configurada o padrão é:

logging {
     category default { default_syslog; default_debug; };
     category unmatched { null; };
};

Esta seção cobre a configuração do BIND9 para enviar mensagens de debug relacionadas as consultas DNS para um arquivo separado.

  • Primeiro, nós temos que configurar um canal para especificar para que arquivo as mensagens serão enviadas. Edite o /etc/bind/named.conf.local e adicione o seguinte:

    logging {
        channel query.log {      
            file "/var/log/query.log";
            severity debug 3; 
        }; 
    };
    
  • A seguir, configura a categoria para enviar todas as consultas DNS para o arquivo de consultas:

    logging {
        channel query.log {      
            file "/var/log/query.log"; 
            severity debug 3; 
        }; 
        category queries { query.log; }; 
    };
    
[Nota]

Nota: a opção debug pode ser configurada de 1 a 3. Se um nível não for especificado o nível 1 será o padrão.

  • Uma vez que odeamon named é executado como o usuário bind o arquivo /var/log/query.log deve ser criado e seu dono substituído:

    sudo touch /var/log/query.log
    sudo chown bind /var/log/query.log
    
  • Antes que o deamon named possa escrever no arquivo de log o perfil do AppArmor deve ser atualizado. Primeiro, edite /etc/apparmor.d/usr.sbin.named e adicione:

    /var/log/query.log w,
    

    A seguire, recarregue o perfil:

    cat /etc/apparmor.d/usr.sbin.named | sudo apparmor_parser -r
    

    Para mais informações sobre o AppArmor veja “AppArmor”

  • Now restart BIND9 for the changes to take effect:

    sudo /etc/init.d/bind9 restart
    

Você deve ver o arquivo /var/log/query.log repleto de informações de consultas. Este é um exemplo simples das opções de registros do BIND9. Para cobertura de opções avançadas veja “Mais Informações”.