Questa guida non è stata ancora completamente tradotta. Se vuoi contribuire alla sua traduzione contatta il Gruppo Traduzione di Ubuntu-it.

Risoluzione problemi

Questa sezione descrive i metodi per determinare le cause dei problemi che si possono verificare con DNS e BIND9.

Test

resolv.conf

Il primo passo per verificare BIND9 consiste nell'aggiungere l'indirizzo IP del server di nomi in un risolutore di host. Il server dei nomi primario dovrebbe essere configurato così come un altro host per verificare il tutto. Modificare il file /etc/resolv.conf e aggiungere quanto segue:

nameserver	192.168.1.10
nameserver	192.168.1.11

Potrebbe essere necessario aggiungere anche l'indirizzo IP del server di nomi secondario nel caso in cui il primario non fosse più disponibile.

dig

Se è stato installato il pacchetto dnsutils, è possibile configurare l'utilità di ricerca DNS dig:

  • Una volta installato BIND9 usare dig sull'interfaccia di loopback per assicurarsi che sia in ascolto sulla porta 53. Da un terminale digitare:

    dig -x 127.0.0.1
    

    L'output del comando dovrebbe essere simile al seguente:

    ;; Query time: 1 msec
    ;; SERVER: 192.168.1.10#53(192.168.1.10)
    
  • Se BIND9 è stato configurato come un server di cache, eseguire "dig" su un dominio esterno per verificare il tempo dell'interrogazione:

    dig ubuntu.com
    

    Prestare attenzione al tempo dell'interrogazione verso la fine dell'output:

    ;; Query time: 49 msec
    

    Dopo una seconda esecuzione del comando si dovrebebro vedere dei miglioramenti:

    ;; Query time: 1 msec
    

ping

Per dimostrare come le applicazioni utilizzino i DNS per interpretare un nome host, usare l'utilità ping per inviare una richiesta eco ICMP. Da un terminale digitare:

ping example.com

In questo modo si verifica che il server dei nome sia in grado di interpretare il nome ns.example.com in un indirizzo IP. L'output del comando dovrebbe essere simile a quanto segue:

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

Un ottimo modo per provare i propri file zona consiste nell'usare l'utilità named-checkzone installata con il pacchetto bind9. Questa utilità consente di verificare che la configurazione sia corretta prima di riavviare BIND9 e consentendo di apportare delle modifiche.

  • Per provare il file zona "Forward", in un terminale, digitare quanto segue:

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

    Se tutto è stato configurato correttamente, si dovrebbe vedere un output simile a questo:

    zone example.com/IN: loaded serial 6
    OK
    
  • Analogamente, per verificare il file zona "Reverse", digitare quanto segue:

    named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.192
    

    L'output dovrebbe essere simile a quanto segue:

    zone 1.168.192.in-addr.arpa/IN: loaded serial 3
    OK
    

Il valore Serial del proprio file zona probabilmente sarà diverso.

Registrazione

BIND9 dispone di diverse configurazione per la registrazione degli eventi. Le due opzioni principali sono: channel che configura dove vengono salvate le registrazioni e l'opzione category che determina quali informazioni registrare.

Se non viene configurata alcuna opzione di registrazione, quella predefinita è:

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

Questa sezione descrive come configurare BIND9 affinché invii i messaggi di debug relativi alle interrogazioni DNS in un file diverso.

  • Per prima cosa è necessario configurare un canale per specificare quale a quale file inviare i messaggi. Modificare quindi il file /etc/bind/named.conf.local e aggiungere quanto segue:

    logging {
        channel query.log {      
            file "/var/log/query.log";
            severity debug 3; 
        }; 
    };
    
  • Configurare una categoria per inviare tutte le interrogazioni DNS al file:

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

L'opzione debug può essere impostata tra 1 e 3. Se non viene specificato alcun livello, viene considerato quello predefinito, cioè 1.

  • Dato che il demone named viene eseguito come l'utente bind, è necessario creare il file /var/log/query.log e modificarne il proprietario:

    sudo touch /var/log/query.log
    sudo chown bind /var/log/query.log
    
  • Prima che il demone named possa scrivere nel nuovo file di registrazione, il profilo AppArmor deve esser aggiorato. Per prima cosa modificare /etc/apparmor.d/usr.sbin.named e aggiungere:

    /var/log/query.log w,
    

    Quindi ricaricare il profilo:

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

    Per maggiori informazioni riguardo AppArmor, consultare la AppArmor.

  • Riavviare BIND9 affinché le modifiche abbiano effetto:

    sudo service bind9 restart
    

Dovrebbe essere possibile vedere il file /var/log/query.log riempirsi con le informazioni relative alle interrogazioni. Per maggio informazioni sulle opzioni di registrazione di BIND9, consultare la Ulteriori informazioni.