Hallo Freunde der Sonne,
manchmal wäre es doch schön, nicht nur blind mit IP-Adressen zu arbeiten oder? Hab ich mir auch gedacht.
Installation DNS-Cluster mit Bind (Ubuntu 22.04)
Quellen
Installation
Wir starten Mal wieder einfach, die Installation muss auf beiden Server durchgeführt werden.
apt install -y bind9 bind9-utils systemctl enable named systemctl restart named
Bitte kontrollieren, ob die /etc/bind/named.conf wie folgt aussieht:
include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones";
Master-Server (Admin der Zonen)
Zonendefinitionen auf dem Master-Server per /etc/bind/named.conf.default-zones,
eine Forward- und eine Reverse-Lookup-Zone.
zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; }; zone "subdomain.domain.tld" { type master; file "/etc/bind/db.subdomain.domain.tld"; }; zone "1.10.in-addr.arpa" { type master; file "/etc/bind/db.1.10"; };
Danach konfigurieren wir den Master-Server über die /etc/bind/named.conf.options,
konfiguriert werden sollte:
- wer ist der NextHop der DNS-Anfragen (im Beispiel die Google-DNS-Server)
- welcher Netzwerkbereich, darf den Server abfragen
- welcher Netzwerkbereich, darf sich Zonen-Kopien ziehen (etwas umfangreich bei mir)
- auf welchem Interface soll der Dienst lauschen
options { directory "/var/cache/bind"; allow-query { localhost; 10.1.0.0/16; }; ## RANGE ## allow-transfer { localhost; 10.1.0.0/16; }; ## SLAVE ## forwarders { 8.8.8.8; 8.8.4.4; }; dnssec-validation auto; listen-on { 10.1.130.1; }; // listen-on-v6 { any; }; };
Slave-Server (Hosting der Zonen-Kopien)
Zonendefinitionen auf dem Slave-Server per /etc/bind/named.conf.local
zone"subdomain.domain.tld" { type slave; file "/var/lib/bind/db.subdomain.domain.tld"; masters { 10.1.130.1; }; }; zone"1.10.in-addr.arpa" { type slave; file "/var/lib/bind/db.1.10"; masters { 10.1.130.1; }; };
Nun zur Konfiguration des Slave-Server über die /etc/bind/named.conf.options,
hier konfigurieren wir:
- wer ist der NextHop der DNS-Anfragen
- welcher Netzwerkbereich, darf den Server abfragen
- welcher Netzwerkbereich, darf sich Zonen-Kopien ziehen (hier nur der Master hinterlegt)
- auf welchem Interface soll der Dienst lauschen
options { directory "/var/cache/bind"; allow-query { localhost; 10.1.0.0/16; }; ## RANGE ## allow-transfer { localhost; 10.1.130.1; }; ## SLAVE ## forwarders { 8.8.8.8; 8.8.4.4; }; dnssec-validation auto; listen-on { 10.1.130.2; }; // listen-on-v6 { any; }; };
Zoneninhalte definieren
Die Zonen werden selbstverständlich auf dem Master gepflegt.
bei der Definition der Zone haben wir oben immer eine Datei mit angegeben, diese sollte sich wie folgt aufbauen.
Forward-Zone (Name in IP) – /etc/bind/db.subdomain.domain.tld
Definiert wurde folgendes:
- Autorisierte Server
- Zeiteinstellungen der Zone wie TTL
- Namen der DNS-Server
- Mailserver der Domäne (MX-Record)
- IP-Adressen der Zone selbst (IP-Adressen der DNS-Server, könnte aber auch der Webserver werden)
- Nameserver der Zone (A-Records)
;; db.subdomain.domain.tld ;; Forwardlookupzone für subdomain.domain.tld ;; $TTL 2D @ IN SOA server1.subdomain.domain.tld. server2.subdomain.domain.tld. ( 2022091601 ; Serial 8H ; Refresh 2H ; Retry 4W ; Expire 3H ) ; NX (TTL Negativ Cache) @ IN NS server1.subdomain.domain.tld. @ IN NS server1.subdomain.domain.tld. IN MX 10 mailserver.domain.tld. IN A 10.1.130.1 IN A 10.1.130.2 server1 IN A 10.1.130.1 server2 IN A 10.1.130.2
Reverse-Zone (IP in Name) – /etc/bind/db.1.10
;; db.1.10 ;; Reverselookupzone für 10.1.0.0/16 ;; $TTL 2D @ IN SOA server1.subdomain.domain.tld. server2.subdomain.domain.tld. ( 2022091601 ; Serial 8H ; Refresh 2H ; Retry 4W ; Expire 3H ) ; TTL Negative Cache @ IN NS server1.subdomain.domain.tld. @ IN NS server2.subdomain.domain.tld. 1.130 IN PTR server1.subdomain.domain.tld. 2.130 IN PTR server2.subdomain.domain.tld.