Il Domain Name System (DNS) è un sistema di denominazione distribuito gerarchico per computer, servizi o qualsiasi risorsa connessa a Internet o a una rete privata. Associa varie informazioni ai nomi di dominio assegnati a ciascuna delle entità partecipanti.
Soprattutto, traduce i nomi di dominio significativi per l'uomo negli identificatori numerici associati alle apparecchiature di rete allo scopo di localizzare e indirizzare questi dispositivi in tutto il mondo.
Questa guida ti aiuterà a configurare il server DNS su CentOS 7 / RHEL 7.
Ambiente
Nome server: ns1itzgeek.local
Indirizzo IP: 192.168.0.10
Installa DNS (BIND)
BIND sta per Berkeley Internet Name Domain, un software che offre la possibilità di eseguire la conversione da nome a IP.
yum -y install bind bind-utils
Configura DNS (BIND)
Per impostazione predefinita, BIND è in ascolto su localhost. Pertanto, configureremo il server DNS in modo che sia in ascolto sull'indirizzo IP del sistema per consentire ai client di raggiungere il server DNS per la risoluzione dei nomi di dominio.
vi /etc/named.conf
Ascolta su tutti gli indirizzi IP:
Configura BIND per l'ascolto su tutti gli indirizzi IP.
// listen-on port 53 { 127.0.0.1; }; // listen-on-v6 port 53 { ::1; };
Ascolta su un indirizzo IP particolare:
Configura BIND per ascoltare un particolare indirizzo IP.
listen-on port 53 { 127.0.0.1; 192.168.0.10; };
Aggiungi la tua rete nella riga seguente. Questa impostazione consentirà ai client della rete menzionata di interrogare il DNS per la traduzione da nome a IP.
Ho aggiunto 192.168.0.0/24 per questa demo.
allow-query { localhost; 192.168.0.0/24; };
Crea zone
Modifica /etc/named.conf.
vi /etc/named.conf
Zona di andata
La zona seguente è la voce della zona di inoltro per il dominio itzgeek.local.
zone "itzgeek.local" IN { type master; file "/var/named/itzgeek.local.db"; allow-update { none; }; };
itzgeek.local – Nome di dominio
maestro – DNS primario
fwd.itzgeek.local.db – File di ricerca in avanti
consenti aggiornamento – Dato che questo è il DNS primario, non dovrebbe essercene nessuno
Zona inversa
La zona seguente è l'ingresso della zona inversa.
zone "0.168.192.in-addr.arpa" IN { type master; file "/var/named/192.168.0.db"; allow-update { none; }; };
0.168.192.in-addr.arpa – Nome ricerca inversa
maestro – DNS primario
192.168.0.db – File di ricerca inversa
consenti aggiornamento – Poiché questo è il DNS primario, non dovrebbe essercene nessuno
Crea file di zona
Per impostazione predefinita, i file di ricerca della zona vengono inseriti nella directory /var/named. Crea un file di zona chiamato fwd.itzgeek.local.db per la ricerca diretta nella directory /var/named. Tutti i nomi di dominio devono terminare con un punto (.).
vi /var/named/itzgeek.local.db
Esistono alcune parole chiave speciali per i file di zona
A – Un record
NS – Server dei nomi
MX – Posta per Exchange
CNAME – Nome canonico
@ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 1001 ;Serial 3H ;Refresh 15M ;Retry 1W ;Expire 1D ;Minimum TTL ) ;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.Ogni volta che si aggiorna il file di ricerca della zona, è necessario modificare/incrementare il seriale come 1002;Serial.
Crea un file di zona chiamato 192.168.0.db per la zona inversa nella directory /var/named.
vi /var/named/192.168.0.db
Crea un puntatore inverso per le voci della zona diretta che abbiamo creato in precedenza.
PTR – Puntatore
SOA – Inizio dell'autorità
@ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 1001 ;Serial 3H ;Refresh 15M ;Retry 1W ;Expire 1D ;Minimum TTL ) ;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.Ogni volta che si aggiorna il file di ricerca della zona, è necessario modificare/incrementare il seriale come 1002;Serial.
Una volta creati i file di zona, riavvia il servizio di collegamento.
systemctl restart named
Abilitalo all'avvio del sistema.
systemctl enable named
Firewall
Aggiungi una regola di autorizzazione nel firewall per consentire ai client di connettersi al server DNS per la risoluzione dei nomi.
firewall-cmd --permanent --add-port=53/udp firewall-cmd --reload
Verifica zone
Visita qualsiasi macchina client e aggiungi un indirizzo IP del server DNS in /etc/resolv.conf.
nameserver 192.168.0.10
Se Network Manager gestisce la rete, inserisci la seguente voce nel file /etc/sysconfig/network-scripts/ifcfg-eXX.
DNS1=192.168.0.10
Riavvia il servizio di rete.
systemctl restart NetworkManager
Utilizzare il comando seguente per verificare la ricerca in avanti.
dig www.itzgeek.local
Risultato: Il server DNS dovrebbe fornire 192.168.0.100 come IP per www.itzgeek.local.
; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.1 <<>> www.itzgeek.local ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35563 ;; 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. 86400 IN A 192.168.0.100 ;; AUTHORITY SECTION: itzgeek.local. 86400 IN NS primary.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 86400 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Wed Jul 03 02:00:40 EDT 2019 ;; MSG SIZE rcvd: 100Installa le utilità BIND yum install -y pacchetto bind-utils per ottenere il comando nslookup o dig.
Conferma la ricerca inversa.
dig -x 192.168.0.100
Risultato: Il server DNS fornisce www.itzgeek.local come nome per 192.168.0.100.
; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.1 <<>> -x 192.168.0.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4807 ;; 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. 86400 IN PTR www.itzgeek.local. ;; AUTHORITY SECTION: 0.168.192.in-addr.arpa. 86400 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 86400 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Wed Jul 03 02:02:47 EDT 2019 ;; MSG SIZE rcvd: 124
È ora confermato che le ricerche sia in avanti che inverse funzionano correttamente.
Conclusione
È tutto. Hai installato correttamente BIND su CentOS 7 / RHEL 7 come server principale. È possibile configurare un server DNS slave per la ridondanza.