Domain Name System (DNS) è la radice di Internet che traduce il nome di dominio in indirizzo IP e viceversa. Il pacchetto BIND9 (Berkeley Internet Name Domain) fornisce la funzionalità di conversione da nome a IP.
Questo post ti guiderà a configurare il server DNS su Ubuntu 18.04 /Ubuntu 16.04.
Ambiente
Nome di dominio:itzgeek.local | ||
---|---|---|
ns1.itzgeek.local | 192.168.0.10 | Server DNS principale |
Configura il server DNS su Ubuntu 18.04 / Ubuntu 16.04
Prerequisiti
Aggiorna l'indice del repository.
sudo apt update
Assicurati che il server DNS abbia un indirizzo IP statico.
LEGGI: Come configurare l'indirizzo IP statico in Ubuntu 18.04 / Ubuntu 16.04 usando ifupdown
Se stai utilizzando Netplan:un nuovo strumento di rete per la configurazione della rete in Ubuntu 18.04, quindi.
LEGGI :Come configurare l'indirizzo IP statico in Ubuntu 18.04 utilizzando Netplan
Installa il server DNS
Il nome del pacchetto per il server DNS su Ubuntu è bind9 ed è disponibile nel repository di base. Usa il comando apt per installare il pacchetto bind9.
sudo apt install -y bind9 bind9utils bind9-doc dnsutils
Configura il server DNS
La directory /etc/bind/ è la directory di configurazione principale del server DNS e contiene i file di configurazione ei file di ricerca della zona.
Il file di configurazione globale è /etc/bind/named.conf. Non dovresti usare questo file per la tua zona DNS locale, ma puoi usare il file /etc/bind/named.conf.local.
Crea zone
Iniziamo creando una zona di inoltro per il tuo dominio.
sudo nano /etc/bind/named.conf.local
Zona di andata
Quella che segue è la voce della zona di inoltro per il dominio itzgeek.local nel file named.conf.local.
zone "itzgeek.local" IN { // Domain name type master; // Primary DNS file "/etc/bind/forward.itzgeek.local.db"; // Forward lookup file allow-update { none; }; // Since this is the primary DNS, it should be none. };
Zona inversa
Le voci seguenti sono per la zona inversa nel file named.conf.local.
zone "0.168.192.in-addr.arpa" IN { //Reverse lookup name, should match your network in reverse order type master; // Primary DNS file "/etc/bind/reverse.itzgeek.local.db"; //Reverse lookup file allow-update { none; }; //Since this is the primary DNS, it should be none. };
Crea file di ricerca zona
Dopo aver creato le zone, puoi procedere e creare file di dati di zona che contengono record DNS per la zona diretta e la zona inversa.
File di ricerca della zona di inoltro
Copia le voci di esempio nel file di zona denominato forward.itzgeek.local.db per la zona di inoltro in /etc/bind directory.
Tipi di record nel file di zona,
SOA – Inizio dell'autorità
NS – Server dei nomi
A – Un record
MX – Mail for Exchange
CN – Canonical Nome
I nomi di dominio devono terminare con un punto (.).
sudo cp /etc/bind/db.local /etc/bind/forward.itzgeek.local.db
Modifica la zona.
sudo nano /etc/bind/forward.itzgeek.local.db
Aggiorna il contenuto mostrato di seguito.
Ogni volta che modifichi un record nel file di ricerca, assicurati di aggiornare il numero di serie con un numero casuale, superiore a quello attuale.$TTL 604800 @ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ;@ IN NS localhost. ;@ IN A 127.0.0.1 ;@ IN AAAA ::1 ;Name Server Information @ IN NS ns1.itzgeek.local. ;IP address of Name Server ns1 IN A 192.168.0.10 ;Mail Exchanger itzgeek.local. IN MX 10 mail.itzgeek.local. ;A – Record HostName To Ip Address www IN A 192.168.0.100 mail IN A 192.168.0.150 ;CNAME record ftp IN CNAME www.itgeek.local.
File di ricerca della zona inversa
Copia le voci di esempio nel file di zona chiamato reverse.itzgeek.local.db per la zona inversa nella directory /etc/bind e crea puntatori inversa per i record della zona in avanti sopra.
PTR – Puntatore
SOA – Inizio dell'autorità
sudo cp /etc/bind/db.127 /etc/bind/reverse.itzgeek.local.db
Modifica il file della zona inversa.
sudo nano /etc/bind/reverse.itzgeek.local.db
Aggiorna il contenuto mostrato di seguito.
Ogni volta che modifichi qualsiasi record DNS nel file di ricerca, assicurati di aggiornare il numero di serie con un numero casuale, superiore a quello corrente.$TTL 604800 @ IN SOA itzgeek.local. root.itzgeek.local. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ;@ IN NS localhost. ;1.0.0 IN PTR localhost. ;Name Server Information @ IN NS ns1.itzgeek.local. ;Reverse lookup for Name Server 10 IN PTR ns1.itzgeek.local. ;PTR Record IP address to HostName 100 IN PTR www.itzgeek.local. 150 IN PTR mail.itzgeek.local.
Controlla la sintassi della configurazione di BIND
Usa il comando named-checkconf per controllare la sintassi e i file named.conf* per eventuali errori.
sudo named-checkconf
Il comando tornerà alla shell se non ci sono errori.
Inoltre, puoi utilizzare named-checkzone per controllare gli errori di sintassi nei file di zona.
Zona di andata
sudo named-checkzone itzgeek.local /etc/bind/forward.itzgeek.local.db
Risultato:
zone itzgeek.local/IN: loaded serial 3 OK
Zona inversa
named-checkzone 0.168.192.in-addr.arpa /etc/bind/reverse.itzgeek.local.db
Risultato:
zone 0.168.192.in-addr.arpa/IN: loaded serial 3 OK
Riavvia il servizio di associazione.
sudo systemctl restart bind9
Abilitalo all'avvio del sistema.
sudo systemctl enable bind9
Controlla lo stato del servizio bind9.
sudo systemctl status bind9
Aggiornamento record DNS
Ogni volta che modifichi un record DNS, non dimenticare di modificare il numero di serie nel file di zona e ricaricare la zona.
Modifica itzgeek.local e 0.168.192.in-addr.arpa con i nomi delle tue zone.
### Forward Zone ### sudo rndc reload itzgeek.local ### Reverse Zone ### sudo rndc reload 0.168.192.in-addr.arpa
Verifica server DNS
Vai su qualsiasi macchina client e aggiungi il nostro nuovo indirizzo IP del server DNS nel file /etc/resolv.conf.
sudo nano /etc/resolv.conf
Inserisci una voce come di seguito.
nameserver 192.168.0.10
O
Leggi il tutorial seguente per impostare l'IP del server DNS in Linux.
LEGGI: Come impostare l'indirizzo IP DNS in CentOS / Fedora
LEGGI: Come impostare l'indirizzo IP DNS in Ubuntu / Debian – ifupdown
LEGGI: Come impostare l'indirizzo IP DNS in Ubuntu 18.04 – Netplan
Usa il comando dig per controllare la zona di andata.
dig www.itzgeek.local
Se ricevi il comando non trovato, installa il pacchetto bind-utils.
Risultato:
; <<>> DiG 9.10.3-P4-Ubuntu <<>> www.itzgeek.local ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18022 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.itzgeek.local. IN A ;; ANSWER SECTION: www.itzgeek.local. 604800 IN A 192.168.0.100 ;; AUTHORITY SECTION: itzgeek.local. 604800 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 604800 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Mon Dec 30 12:42:18 EST 2019 ;; MSG SIZE rcvd: 96
Risposta del server DNS per la ricerca in avanti:192.168.0.100 come indirizzo IP per www.itzgeek.local .
Conferma la ricerca inversa con il comando dig.
dig -x 192.168.0.100
Risultato:
; <<>> DiG 9.10.3-P4-Ubuntu <<>> -x 192.168.0.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37122 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;100.0.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 100.0.168.192.in-addr.arpa. 604800 IN PTR www.itzgeek.local. ;; AUTHORITY SECTION: 0.168.192.in-addr.arpa. 604800 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 604800 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Mon Dec 30 12:43:20 EST 2019 ;; MSG SIZE rcvd: 120
Risposta del server DNS per la ricerca inversa:www.itzgeek.local come nome per 192.168.0.100.
Questo risultato conferma che entrambe le ricerche di zona funzionano correttamente.
Conclusione
È tutto. Ora hai configurato correttamente il server DNS su Ubuntu 18.04 /Ubuntu 16.04 come server master. Nel nostro prossimo post, configureremo un server DNS slave su Ubuntu 18.04 /Ubuntu 16.04.