Domain Name Service (DNS) (Italiano)

Domain Name Service (DNS) è un servizio Internet che mappa indirizzi IP e nomi di dominio completi (FQDN) tra loro. In questo modo, DNS allevia la necessità di ricordare gli indirizzi IP. I computer che eseguono DNS sono chiamati name server. Ubuntu viene fornito con BIND (Berkley Internet Naming Daemon), il programma più comune utilizzato per il mantenimento di un name server su Linux.,

Al prompt del terminale, immettere il seguente comando per installare dns:

sudo apt install bind9

Un pacchetto molto utile per testare e risolvere i problemi DNS è il pacchetto dnsutils. Molto spesso questi strumenti saranno già installati, ma per controllare e/o installare dnsutils inserisci quanto segue:

sudo apt install dnsutils

Configurazione

Ci sono molti modi per configurare BIND9. Alcune delle configurazioni più comuni sono un nameserver di caching, server primario e server secondario.,

  • Quando configurato come nameserver di caching BIND9 troverà la risposta alle query dei nomi e ricorderà la risposta quando il dominio viene nuovamente interrogato.

  • Come server primario, BIND9 legge i dati per una zona da un file sul suo host ed è autorevole per quella zona.

  • Come server secondario, BIND9 ottiene i dati di zona da un altro nameserver che è autorevole per la zona.

Panoramica

I file di configurazione DNS sono memorizzati nella directory/etc/bind., Il file di configurazione principale è /etc/bind/named.conf, che nel layout fornito dal pacchetto include solo questi file.

I server dei nomi root erano descritti nel file/etc/bind/db.root. Questo è ora fornito invece dal/usr/share/dns/root.hints file fornito con ildns-root-data pacchetto, e fa riferimento nelnamed.conf.default-zones file di configurazione sopra.

È possibile configurare lo stesso server in modo che sia un server dei nomi di cache, primario e secondario: tutto dipende dalle zone che sta servendo., Un server può essere l’inizio dell’autorità (SOA) per una zona, mentre fornisce un servizio secondario per un’altra zona. Per tutto il tempo fornendo servizi di caching per gli host sulla LAN locale.

Caching Nameserver

La configurazione predefinita funge da server di caching. Basta togliere il commento e modifica /etc/bind/named.conf.options per impostare gli indirizzi IP dei server DNS dell’ISP:

forwarders { 1.2.3.4; 5.6.7.8;};

Nota

Sostituire 1.2.3.4 e 5.6.7.8 con gli Indirizzi IP di effettivo nameservers.,

Per abilitare la nuova configurazione, riavviare il server DNS. Da un prompt del terminale:

sudo systemctl restart bind9.service

Vedere dig per informazioni sul test di un server DNS di caching.

Server primario

In questa sezione BIND9 verrà configurato come server Primario per il dominioexample.com. Basta sostituire example.com con il tuo FQDN (Fully Qualified Domain Name).,

Avanti File di Zona

Per aggiungere una zona DNS per BIND9, girando BIND9 in un server Primario, la prima modifica /etc/bind/named.conf.local:

zone "example.com" { type master; file "/etc/bind/db.example.com";};

Nota

Se si legano sarà ricevere aggiornamenti automatici per il file come con DDNS, quindi utilizzare /var/lib/bind/db.example.com anziché /etc/bind/db.example.com sia qui che nel comando di copia di seguito.,

Ora uso un file di zona esistente come modello per creare il /etc/bind/db.example.com file:

sudo cp /etc/bind/db.local /etc/bind/db.example.com

Modificare il nuovo file di zona /etc/bind/db.example.com e modificare localhost. per il nome di dominio completo del server, lasciando aggiuntive . alla fine., Cambia 127.0.0.1 per il nameserver Indirizzo IP e il root.localhost per un indirizzo email valido, ma con un . invece del solito @ simbolo, lasciando nuovamente il . alla fine. Modificare il commento per indicare il dominio a cui si riferisce questo file.

Crea un record A per il dominio di base, example.com. Inoltre, creare un record A perns.example.com, il server dei nomi in questo esempio:

È necessario incrementare il numero di serie ogni volta che si apportano modifiche al file di zona., Se si apportano più modifiche prima di riavviare BIND9, è sufficiente incrementare il seriale una volta.

Ora, è possibile aggiungere record DNS nella parte inferiore del file di zona. Vedere Tipi di record comuni per i dettagli.,

Nota

Molti amministratori come utilizzare l’ultima data di modifica come il seriale di una zona, come 2020012100 che è yyyymmddss (dove ss è il Numero di Serie)

una Volta che hai fatto le modifiche al file di zona BIND9 deve essere riavviato per rendere effettive le modifiche:

sudo systemctl restart bind9.service

Zona Inversa File

Ora che la zona di installazione e la risoluzione dei nomi in Indirizzi IP, una zona Inversa deve essere aggiunto permette di DNS per la risoluzione di un indirizzo a un nome.,

Modifica /etc/bind/named.conf.local e aggiungere la seguente:

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

Nota

Sostituire 1.168.192 con i primi tre ottetti di qualsiasi rete che si sta utilizzando. Inoltre, assegnare un nome appropriato al file di zona /etc/bind/db.192. Dovrebbe corrispondere al primo ottetto della tua rete.,

creare /etc/bind/db.192 file:

sudo cp /etc/bind/db.127 /etc/bind/db.192

la Prossima modifica /etc/bind/db.192 modifica opzioni /etc/bind/db.example.com:

Il Numero di Serie nella zona Inversa deve essere incrementata ad ogni cambiamento. Per ogni record configurato in /etc/bind/db.example.com, cioè per un indirizzo diverso, è necessario creare un record PTR in /etc/bind/db.192.,

Dopo aver creato il file di zona inversa riavviare BIND9:

sudo systemctl restart bind9.service

Server secondario

Una volta configurato un Server primario, un Server secondario è altamente raccomandato per mantenere la disponibilità del dominio nel caso in cui il Primario non fosse disponibile.

In primo luogo, sul server primario, il trasferimento di zona deve essere consentito., Aggiungere l’opzione allow-transfer all’esempio di definizioni di zona in avanti e indietro in /etc/bind/named.conf.local:

Nota

Sostituire 192.168.1.11 con l’indirizzo IP del server dei nomi.

Riavvia BIND9 sul server primario:

sudo systemctl restart bind9.service

Successivamente, sul server secondario, installa il pacchetto bind9 allo stesso modo del Primario., Quindi modificare /etc/bind/named.conf.local e aggiungere le seguenti dichiarazioni per le zone Forward e Reverse:

Nota

Sostituire 192.168.1.10 con l’indirizzo IP del server dei nomi primario.,

Riavviare BIND9 sul server Secondario:

sudo systemctl restart bind9.service

/var/log/syslog si dovrebbe vedere qualcosa di simile al seguente (alcune linee sono state divise per misura il formato del documento):

Nota

Nota: Una zona è trasferita solo se il Numero di Serie sul Primario è maggiore di quello Secondario., Se si desidera avere il DNS Primario di comunicare ad altri Server DNS Secondario modifiche alla zona, è possibile aggiungere also-notify { ipaddress; }; /etc/bind/named.conf.local come mostrato nell’esempio qui sotto:

Nota

La directory di default per non autorevole file di zona è /var/cache/bind/. Questa directory è anche configurata in AppArmor per consentire al demone con nome di scrivere su di essa. Per ulteriori informazioni su AppArmor vedere Sicurezza-AppArmor.,

Risoluzione dei problemi

Questa sezione copre la diagnosi dei problemi con le configurazioni DNS e BIND9.

Test

resolv.conf

Il primo passo nel test di BIND9 consiste nell’aggiungere l’indirizzo IP del nameserver a un resolver hosts. Il nameserver primario dovrebbe essere configurato così come un altro host per ricontrollare le cose. Fare riferimento a Configurazione client DNS per i dettagli sull’aggiunta di indirizzi nameserver ai client di rete., Alla fine il tuonameserver linea in/etc/resolv.conf dovrebbe puntare a127.0.0.53 e dovresti avere unsearch parametro per il tuo dominio. Qualcosa di simile a questo:

nameserver 127.0.0.53search example.com

verificare che il DNS server locale resolver è in uso, eseguire:

systemd-resolve --status

Nota

Si dovrebbe anche aggiungere l’Indirizzo IP del server Secondario per la configurazione del client nel caso in cui il Primario non è disponibile.,

dig

Se hai installato il pacchetto dnsutils puoi testare la tua configurazione usando l’utility di ricerca DNS dig:

  • Dopo aver installato BIND9 usa dig contro l’interfaccia di loopback per assicurarti che sia in ascolto sulla porta 53.,i>

    Se hai configurato BIND9 come una Cache nameserver “scavare” un dominio esterno per controllare il tempo di query:

    dig ubuntu.com

    si noti il tempo di query verso la fine dell’output del comando:

    ;; Query time: 49 msec

    Dopo un secondo scavare ci dovrebbe essere un miglioramento:

    ;; Query time: 1 msec

ping

e ‘ Ora di dimostrare come applicazioni fanno uso di DNS per risolvere il nome host, utilizzare l’utilità ping invia un pacchetto ICMP echo request:

ping example.com

Questo test se il nameserver grado di risolvere il nome ns.example.com per un Indirizzo IP., L’output del comando dovrebbe assomigliare a:

named-checkzone

Un ottimo modo per testare i file di zona è usare l’utilitynamed-checkzone installata con il pacchettobind9. Questa utility consente di assicurarsi che la configurazione sia corretta prima di riavviare BIND9 e apportare le modifiche dal vivo.,

  • Per testare il nostro esempio Inoltro della zona di file, immettere il seguente dal prompt dei comandi:

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

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

    zone example.com/IN: loaded serial 6OK
  • allo stesso modo, per testare la zona Inversa file inserire il seguente:

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

    L’output dovrebbe essere simile a:

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

Nota

Il Numero di Serie del tuo file di zona sarà probabilmente diverso.,

Quick temporary query logging

Con il rndc strumento, è possibile attivare e disattivare rapidamente query logging, senza riavviare il servizio o modificare il file di configurazione.

Per attivare la registrazione delle query, eseguire:

sudo rndc querylog on

allo stesso modo, per spegnerlo, eseguire:

sudo rndc querylog off

I log verranno inviati al syslog e la mostra di /var/log/syslog per impostazione predefinita:

Nota

La quantità di log generati da abilitare querylog potrebbe essere enorme!,

Logging

BIND9 ha una vasta gamma di opzioni di configurazione di registrazione disponibili, ma le due principali sono channel e category, che configurano dove vanno i log e quali informazioni vengono registrate, rispettivamente.

Se non sono configurate opzioni di registrazione, la configurazione predefinita è:

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

Configuriamo invece BIND9 per inviare messaggi di debug relativi alle query DNS a un file separato.

Dobbiamo configurare un canale per specificare a quale file inviare i messaggi e una categoria., In questo esempio, la categoria registrerà tutte le query. Modificare /etc/bind/named.conf.local e aggiungere quanto segue:

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

Nota

L’opzione di debug può essere impostata da 1 a 3. Se un livello non è specificato, il livello 1 è quello predefinito.,

  • Dal momento che il demone named viene eseguito come utente di binding /var/log/named cartella deve essere creata e la proprietà è cambiata:

    sudo mkdir /var/log/namedsudo chown bind:bind /var/log/named
  • riavviare BIND9 per rendere effettive le modifiche:

    sudo systemctl restart bind9.service

Si dovrebbe vedere il file /var/log/named/query.log riempire con le informazioni della query. Questo è un semplice esempio delle opzioni di registrazione BIND9. Per la copertura delle opzioni avanzate vedere ulteriori informazioni.,

Tipi di record comuni

Questa sezione copre alcuni dei tipi di record DNS più comuni.

  • A record: Questo record associa un indirizzo IP a un nome host.

    www IN A 192.168.1.12
  • CNAME record: utilizzato per creare un alias per un record A esistente. Non è possibile creare un recordCNAME che punta a un altro recordCNAME.

    web IN CNAME www
  • MX record: utilizzato per definire dove inviare le email., Deve puntare a un recordA, non aCNAME.

    @ IN MX 1 mail.example.com.mail IN A 192.168.1.13
  • NS record: utilizzato per definire quali server servono copie di una zona. Deve puntare a un recordA, non aCNAME. È qui che vengono definiti i server primari e secondari.

    @ IN NS ns.example.com.@ IN NS ns2.example.com.ns IN A 192.168.1.10ns2 IN A 192.168.1.11

Ulteriori informazioni

  • Documentazione Upstream BIND9

  • Bind9.net ha collegamenti a una vasta collezione di risorse DNS e BIND9.,

  • DNS e BIND è un libro popolare ora nella sua quinta edizione. Ora c’è anche un DNS e BIND sul libro IPv6.

  • Un ottimo posto per chiedere assistenza a BIND9 e partecipare alla comunità di Ubuntu Server, è il canale IRC #ubuntu-server su freenode.

Ultimo aggiornamento 10 mesi fa. Contribuire a migliorare questo documento nel forum.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Vai alla barra degli strumenti