## 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.

#### ping

Una volta configurato un host affinché sfrutti il nuovo server dei nomi, la prova più semplice consiste nell'utilizzare l'utilità ping. Dal terminale digitare:

    ping example.com

In questo modo viene verificato se il server dei nomi è in grado di risolvere il nome example.com in un indirizzo IP. L'output del comando dovrebbe essere simile a questo:

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

#### 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

#### 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 example.com /etc/bind/db.192

  L'output dovrebbe essere simile a quanto segue:

      zone example.com/IN: loaded serial 3
      OK

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

### Registrazione

BIND9 dispone di molte opzioni di configurazione per la registrazione degli eventi. Sono disponibili due principali opzioni, channel, che configura dove vanno le registrazioni, e 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 la sezione chiamata «AppArmor».

- Ora riavviare BIND9 affinché le modifiche abbiano effetto.

      sudo /etc/init.d/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 la sezione chiamata «Ulteriori informazioni».

Configurazione |  | Riferimenti