BIND può essere configurato come master o slave per servire la richiesta DNS per ciascuna zona. Quando il BIND è configurato come slave, ottiene la copia dei dati della zona dal server master utilizzando il metodo di trasferimento della zona.
Nel post precedente, avevamo configurato il server DNS su CentOS 7 che fungerà da sorgente per il server slave.
Ambiente
Nome di dominio:itzgeek.local | ||
---|---|---|
primary.itzgeek.local | 192.168.1.10 | Server DNS principale |
secondary.itzgeek.local | 192.168.1.20 | Server DNS slave |
In questo, abbiamo due server denominati primario e secondario. Il primario è già stato configurato come master per il dominio itzgeek.local.
Ora configureremo il secondario come server DNS slave per itzgeek.local.
Su server principale
Configura BIND sul server master per consentire il trasferimento della zona a un server secondario, modifica il file /etc/named.conf in primary.itzgeek.local.
vi /etc/named.conf
Aggiungi la seguente voce nel file. I server menzionati nel trasferimento consentito saranno in grado di trasferire zone dal server master.
options { . . . allow-transfer { 192.168.1.20; }; also-notify { 192.168.1.20; }; . . . }
Aggiungi le informazioni del tuo server DNS secondario nel file di ricerca diretta su primary.itzgeek.local.
vi /var/named/fwd.itzgeek.local.db
I record appariranno come di seguito.
@ IN SOA primary.itzgeek.local. root.itzgeek.local. ( 1002 ;Serial 3H ;Refresh 15M ;Retry 1W ;Expire 1D ;Minimum TTL ) ;Name Server Information @ IN NS primary.itzgeek.local. ;Secondary Name server @ IN NS secondary.itzgeek.local. ;IP address of Primary Name Server primary IN A 192.168.1.10 ;IP address of Secondary Name Server secondary IN A 192.168.1.20 ;Mail exchanger itzgeek.local. IN MX 10 mail.itzgeek.local. ;A - Record HostName To IP Address www IN A 192.168.1.100 mail IN A 192.168.1.150 ;CNAME record ftp IN CNAME www.itgeek.local.
Riavvia il servizio BIND.
systemctl restart named
Aggiungi una regola di autorizzazione nel firewall per consentire le zone di trasferimento dal server principale.
firewall-cmd --permanent --add-port=53/tcp firewall-cmd --reload
Su server slave
È il momento di aggiungere una dichiarazione di zona slave sul server secondario, assicurati di installare i seguenti pacchetti sul server secondario.
yum -y install bind bind-utils
Modifica /etc/named.conf file. Commenta la riga seguente per consentire a BIND di essere in ascolto su tutte le interfacce.
// listen-on port 53 { 127.0.0.1; }; // listen-on-v6 port 53 { ::1; };
Aggiungi la tua rete nella riga seguente. Ho aggiunto 192.168.1.0/24 per consentire ai client della rete 192.168.1.0/24 di interrogare il DNS per la traduzione da nome a IP.
options { . . . allow-query { localhost; 192.168.1.0/24; }; . . . }
Aggiungi la zona slave come di seguito.
zone "itzgeek.local" IN { type slave; masters { 192.168.1.10; }; file "slaves/fwd.itzgeek.local.db"; }; zone "1.168.192.in-addr.arpa" IN { type slave; masters { 192.168.1.10; }; file "slaves/1.168.192.db"; };
itzgeek.local – Nome di dominio
schiavo – DNS secondario
fwd.itzgeek.local.db e 1.168.192.db – File di ricerca slave in avanti e indietro
Riavvia il servizio BIND su secondary.itzgeek.local
systemctl restart named
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 la ricerca di www.itzgeek.local utilizzando secondary.itzgeek.local (192.168.1.20)
[root@client ~]# dig @192.168.1.20 www.itzgeek.local
Risultato:
; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.1 <<>> @192.168.1.20 www.itzgeek.local ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5314 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; 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.1.100 ;; AUTHORITY SECTION: itzgeek.local. 604800 IN NS secondary.itzgeek.local. itzgeek.local. 604800 IN NS primary.itzgeek.local. ;; ADDITIONAL SECTION: primary.itzgeek.local. 604800 IN A 192.168.1.10 secondary.itzgeek.local. 604800 IN A 192.168.1.20 ;; Query time: 0 msec ;; SERVER: 192.168.1.20#53(192.168.1.20) ;; WHEN: Wed Jul 17 21:53:45 IST 2019 ;; MSG SIZE rcvd: 140
Aggiornamento record
Ogni volta che modifichi un record DNS sul server master, non dimenticare di modificare il numero di serie nel file di zona ed eseguire il seguente comando sul server master per ricaricare la zona.
Modifica itzgeek.local e 1.168.192.in-addr.arpa con i nomi delle tue zone.
### Forward Zone ### rndc reload itzgeek.local ### Reverse Zone ### rndc reload 1.168.192.in-addr.arpa
Conclusione
È tutto. Spero che tu abbia imparato a configurare un server DNS slave su CentOS 7 / RHEL 7.