DNS -- master-slave
We hebben in DNS-basics een tweede DNS server opgezet, en deze geactiveerd door de bestanden aangepast op server-1 in /etc/bind
te kopieren naar dezelfde directory in server-2. We deden dat volgens een oefening met een cron-job (script in 'etc/cron.hourly
)
Op de voor- en nadelen van master-slave versus DNS-clustering of oplossingen met scripts ga ik hier nu even niet in. Master-Slave configuratie hoort gewoon gekend te zijn bij elke linux sysadmin.
- master - slave config
Er is enerzijds een aanpassing nodig in de/etc/bind/named.conf.local
op de primary server of master.
Er is anderzijds een speciale slave configuratie nodig in/etc/bind/named.conf.local
op slave server(s).
- de master
$ cat /etc/bind/named.conf.local
// kommentaar in de file ... zone "domein01.crazy" { type master; notify no; file "/etc/bind/domein01.crazy.zone"; allow-update { none; }; allow-query { 172.16.0.0/16; }; allow-transfer { 172.16.10.2; }; }; zone "16.172.in-addr.arpa" { type master; notify no; file "/etc/bind/16.172.in-addr.arpa.zone"; allow-update { none; }; allow-query { 172.16.0.0/16; }; allow-transfer { 172.16.10.2; }; };
De volgende twee ZONE statements zijn belangrijk:
type master;
allow-transfer { 172.16.10.2; };
(172.16.10.2 is het ip-address van nameserver2)
- de slave
$ cat /etc/bind/named.conf.local
// ...kommentaar ... zone "domein01.crazy" { type slave; file "/var/cache/bind/domein01.crazy.zone"; masters { 172.16.10.1; }; }; zone "16.172.in-addr.arpa" { type slave; file "/var/cache/bind/16.172.in-addr.arpa.zone"; masters { 172.16.10.1; }; };
De volgende twee ZONE statements wijzen op slave-functie:
type slave;
masters { 172.16.10.1; };
(172.16.10.1 is het ip-address van nameserver1)
Merk ook de nieuwe locatie op van de zone-files in
/var/cache/bind
we kijken even naar permissions en ownership van deze directory:$ ls -l /var/cache total 28 drwxr-xr-x 2 root root 4096 May 1 2015 apparmor drwxr-xr-x 3 root root 4096 Sep 8 12:41 apt drwxrwxr-x 2 root bind 4096 Sep 15 20:47 bind drwxr-xr-x 2 root root 4096 Sep 8 12:41 debconf drwx------ 2 root root 4096 Sep 8 12:37 ldconfig drwxr-sr-x 34 man root 4096 Sep 8 12:41 man drwxr-xr-x 2 root root 4096 Mar 7 2013 pppconfig
In onze ubuntu 14.04 is dit de enige mogelijkheid. Zelf andere directories aanmaken en ownership+permissions aanpassen werkte niet.
Bij andere distributies of versies kan er een andere directory worden voorzien en/of een andere owner/group.
- de master
- testen
- de server
We passen de zone file aan van domein01.crazy:$TTL 3D @ IN SOA domein01.crazy. root.domein01.crazy. ( 2016091502 ; serial 8H ; refresh 2H ; retry 4W ; expire 1D ) ; minimum ; NS ns1.domein01.crazy. NS ns2.domein01.crazy. MX 10 mail.domein01.crazy. ; apache A 172.16.10.100 ns1 A 172.16.10.1 ns2 A 172.16.10.2 mail A 172.16.10.25 router A 172.16.0.1 www CNAME apache web CNAME apache client A 172.16.255.10 lynx CNAME client
We hebben de serial aangepast (opgehoogd), en een A record voor router toegevoegd.
Vervolgens herstarten we de service bind:$ sudo service bind9 restart
- de slave
De slave zal automatisch om de zoveel tijd (in dit voorbeeld REFRESH om de 8 uur) de serial van de master vergelijken met die van zichzelf. Als de serial van de master is opgehoogd, volgt er een replication.
We wensen echter geen uren te wachten, en voeren het volgende commando uit voor een refresh:
user@ns2:~$ sudo rndc reload domein01.crazy.
zone refresh queued
We kijken nu eerst in desyslog
:
Sep 15 21:46:20 localhost named[879]: received control channel command 'reload' Sep 15 21:46:20 localhost named[879]: loading configuration from '/etc/bind/named.conf' Sep 15 21:46:20 localhost named[879]: reading built-in trusted keys from file '/etc/bind/bind.keys' Sep 15 21:46:20 localhost named[879]: using default UDP/IPv4 port range: [1024, 65535] Sep 15 21:46:20 localhost named[879]: using default UDP/IPv6 port range: [1024, 65535] Sep 15 21:46:20 localhost named[879]: sizing zone task pool based on 7 zones Sep 15 21:46:20 localhost named[879]: using built-in root key for view _default Sep 15 21:46:20 localhost named[879]: automatic empty zone: 10.IN-ADDR.ARPA ... ... Sep 15 21:46:20 localhost named[879]: automatic empty zone: B.E.F.IP6.ARPA Sep 15 21:46:20 localhost named[879]: automatic empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA Sep 15 21:46:20 localhost named[879]: reloading configuration succeeded Sep 15 21:46:20 localhost named[879]: reloading zones succeeded Sep 15 21:46:21 localhost named[879]: all zones loaded Sep 15 21:46:21 localhost named[879]: running Sep 15 21:48:08 localhost named[879]: received control channel command 'reload domein01.crazy.' Sep 15 21:48:08 localhost named[879]: zone domein01.crazy/IN: Transfer started. Sep 15 21:48:08 localhost named[879]: transfer of 'domein01.crazy/IN' from 172.16.10.1#53: connected using 172.16.10.2#36370 Sep 15 21:48:08 localhost named[879]: zone domein01.crazy/IN: transferred serial 2016091502 Sep 15 21:48:08 localhost named[879]: transfer of 'domein01.crazy/IN' from 172.16.10.1#53: Transfer completed: 1 messages, 14 records, 338 bytes, 0.003 secs (112666 bytes/sec) Sep 15 21:48:08 localhost named[879]: zone domein01.crazy/IN: sending notifies (serial 2016091502)
We kijken tenslotte nog even in de/var/cache/bind
directory:
user@ns2:~$ ls -lt /var/cache/bind/
total 12 -rw-r--r-- 1 bind bind 742 Sep 15 21:48 domein01.crazy.zone -rw-r--r-- 1 bind bind 563 Sep 15 21:47 16.172.in-addr.arpa.zone -rw-r--r-- 1 bind bind 720 Sep 15 20:47 managed-keys.bind
De time-stamps zijn in elk geval aangepast ...
Is de zone file ook aangepast ...
user@ns2:~$ cat -v /var/cache/bind/domein01.crazy.zone
^@^@^@^B^@^@^@^AWM-ZM-zM-x^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@_^@^A^@^F^@^@^@^CM-tM-^@^@^@^@^A^@^P^Hdomein01^Ecrazy^@^@9^Hdomein01^Ecrazy^@^Droot^Hdomein01^Ecrazy^@x+^]n^@^@pM-^@^@^@^\ ^@$M-j^@^@^AQM-^@^@^@^@=^@^A^@^O^@^@^@^CM-tM-^@^@^@^@^A^@^P^Hdomein01^Ecrazy^@^@^W^@ ^Dmail^Hdomein01^Ecrazy^@^@^@^@P^@^A^@^B^@^@^@^CM-tM-^@^@^@^@^B^@^P^Hdomein01^Ecrazy^@^@^T^Cns1^Hdomein01^Ecrazy^@^@^T^Cns2^Hdomein01^Ecrazy^@^@^@^@1^@^A^@^A^@^@^@^CM-tM-^@^@^@^@^A^@^W^Fapache^Hdomein01^Ecrazy^@^@^DM-,^P d^@^@^@1^@^A^@^A^@^@^@^CM-tM-^@^@^@^@^A^@^W^Fclient^Hdomein01^Ecrazy^@^@^DM-,^PM-^? ^@^@^@B^@^A^@^E^@^@^@^CM-tM-^@^@^@^@^A^@^U^Dlynx^Hdomein01^Ecrazy^@^@^W^Fclient^Hdomein01^Ecrazy^@^@^@^@/^@^A^@^A^@^@^@^CM-tM-^@^@^@^@^A^@^U^Dmail^Hdomein01^Ecrazy^@^@^DM-,^P ^Y^@^@^@.^@^A^@^A^@^@^@^CM-tM-^@^@^@^@^A^@^T^Cns1^Hdomein01^Ecrazy^@^@^DM-,^P ^A^@^@^@.^@^A^@^A^@^@^@^CM-tM-^@^@^@^@^A^@^T^Cns2^Hdomein01^Ecrazy^@^@^DM-,^P ^B^@^@^@1^@^A^@^A^@^@^@^CM-tM-^@^@^@^@^A^@^W^Frouter^Hdomein01^Ecrazy^@^@^DM-,^P^@^A^@^@^@A^@^A^@^E^@^@^@^CM-tM-^@^@^@^@^A^@^T^Cweb^Hdomein01^Ecrazy^@^@^W^Fapache^Hdomein01^Ecrazy^@^@^@^@A^@^A^@^E^@^@^@^CM-tM-^@^@^@^@^A^@^T^Cwww^Hdomein01^Ecrazy^@^@^W^Fapache^Hdomein01^Ecrazy^
en in de binary cache file merken we het woord router op ...
- de server
-
NOTA's mei 2020
Ik kan vanaf pc1 de volgende testen uitvoeren:ping pc1.domein01.binnen
ik moet effectief vanaf DNS1 pc1 kunnen pingendig pc1.domein01.binnen
ik zoek rechtstreeks vanaf de default DNS hiet ip adres van pc1.domein01.binnen;; QUESTION SECTION: ;pc1.domein01.binnen. IN A ;; ANSWER SECTION: pc1.domein01.binnen. 259200 IN A 172.20.0.81 ;; AUTHORITY SECTION: domein01.binnen. 259200 IN NS DNS2.domein01.binnen. domein01.binnen. 259200 IN NS DNS1.domein01.binnen. ;; ADDITIONAL SECTION: DNS1.domein01.binnen. 259200 IN A 172.20.0.51 DNS2.domein01.binnen. 259200 IN A 172.20.0.52 ;; Query time: 0 msec ;; SERVER: 172.20.0.51#53(172.20.0.51) ;; WHEN: Wed May 27 09:56:28 CEST 2020 ;; MSG SIZE rcvd: 134
dig @172.20.0.51 pc1.domein01.binnen
ik zoek rechtstreeks vanaf DNS1 het ip adres van pc1.domein01.binnen;; QUESTION SECTION: ;pc1.domein01.binnen. IN A ;; ANSWER SECTION: pc1.domein01.binnen. 259200 IN A 172.20.0.81 ;; AUTHORITY SECTION: domein01.binnen. 259200 IN NS DNS1.domein01.binnen. domein01.binnen. 259200 IN NS DNS2.domein01.binnen. ;; ADDITIONAL SECTION: DNS1.domein01.binnen. 259200 IN A 172.20.0.51 DNS2.domein01.binnen. 259200 IN A 172.20.0.52 ;; Query time: 1 msec ;; SERVER: 172.20.0.51#53(172.20.0.51) ;; WHEN: Wed May 27 09:59:56 CEST 2020 ;; MSG SIZE rcvd: 134
-
dig @172.20.0.52 pc1.domein01.binnen
ik zoek rechtstreeks vanaf de DNS2 het ip adres van pc1.domein01.binnen;; QUESTION SECTION: ;pc1.domein01.binnen. IN A ;; ANSWER SECTION: pc1.domein01.binnen. 259200 IN A 172.20.0.81 ;; AUTHORITY SECTION: domein01.binnen. 259200 IN NS DNS1.domein01.binnen. domein01.binnen. 259200 IN NS DNS2.domein01.binnen. ;; ADDITIONAL SECTION: DNS1.domein01.binnen. 259200 IN A 172.20.0.51 DNS2.domein01.binnen. 259200 IN A 172.20.0.52 ;; Query time: 0 msec ;; SERVER: 172.20.0.52#53(172.20.0.52) ;; WHEN: Wed May 27 10:00:56 CEST 2020 ;; MSG SIZE rcvd: 134