Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi2:bind

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
Nächste Überarbeitung Beide Seiten, nächste Überarbeitung
lpi2:bind [2018/06/20 12:36]
ingo_wichmann [Zonendatei]
lpi2:bind [2023/03/09 23:25]
127.0.0.1 Externe Bearbeitung
Zeile 2: Zeile 2:
  
 ===== Vorbereiten ===== ===== Vorbereiten =====
-=== CentOS ​===+=== systemd-resolvd === 
 +"​systemd-resolved is not intended to be used on DNS servers. If you’re running a DNS server, you’ll need to disable systemd-resolved before setting up BIND or Unbound instead"​ 
 +=== CentOS ​===
 Paket ''​caching-nameserver''​ deinstallieren Paket ''​caching-nameserver''​ deinstallieren
- 
-Paket ''​system-config-bind''​ installieren 
-Mit  
-  system-config-bind 
-Default-Konfigurationsdateien erzeugen 
  
 === DNSSEC temporär abschalten === === DNSSEC temporär abschalten ===
Zeile 27: Zeile 24:
   man named.conf   man named.conf
 )) ))
-====== eigene Zonen in bind verwalten ​====== +  named-checkconf  
-===== Vorwärts-Zone ​===== +  rndc reconfig 
-==== Zonendatei ​==== + 
-Unter Debian und CentOS empfehlen wir ein entsprechendes Verzeichnis ''​master''​ für die Zonendateien noch anzulegen ((oder man legt die Zonendateien direkt in /​var/​cache/​bind bzw. /var/named ab)):+== testen == 
 +Eine mit DNSSEC signierte Zone abfragen: 
 + 
 +Ein validierender Nameserver sollte bei einer signierten Zone liefern: 
 +  dig www.posteo.de @1.1.1.1 
 + 
 +<​file>​ 
 +flags: … ad 
 +</​file>​ 
 + 
 +Unser Nameserver sollte das ad-Flag nicht setzen. 
 + 
 +===== eigene Zonen in bind verwalten ===== 
 +==== Vorwärts-Zone ==== 
 +=== Zonendatei === 
 +Unter Debian und CentOS empfehlen wir ein entsprechendes Verzeichnis ''​primary''​ für die Zonendateien noch anzulegen ((oder man legt die Zonendateien direkt in /​var/​cache/​bind bzw. /var/named ab)):
  
 Debian : Debian :
-  mkdir /​var/​cache/​bind/​master+  mkdir /​var/​cache/​bind/​primary
 CentOS (ab 5) : CentOS (ab 5) :
-  mkdir /var/named/master+  mkdir /var/named/primary
  
-''/​var/​named/​master/​linuxhotel.de''​ : ( CentOS ab 5 )+''/​var/​named/​primary/​linuxhotel.de''​ : ( CentOS ab 5 )
  
-''/​var/​lib/​named/​master/​linuxhotel.de''​ : ( SuSE ab 10.0)+''/​var/​lib/​named/​primary/​linuxhotel.de''​ : ( SuSE ab 10.0)
  
-''/​var/​cache/​bind/​master/​linuxhotel.de''​ : ( Debian ab 3.1 )+''/​var/​cache/​bind/​primary/​linuxhotel.de''​ : ( Debian ab 3.1 )
 <​file>​ <​file>​
 $ORIGIN . ; hilft Tippfehler (fehlender . am Ende) zu vermeiden $ORIGIN . ; hilft Tippfehler (fehlender . am Ende) zu vermeiden
Zeile 47: Zeile 59:
 linuxhotel.de. IN SOA notebook20.linuxhotel.de. root.notebook20.linuxhotel.de. ( linuxhotel.de. IN SOA notebook20.linuxhotel.de. root.notebook20.linuxhotel.de. (
         1             ; Seriennummer         1             ; Seriennummer
-        ​1h20M         ; refresh ​     / 1 Stunde 20 Minuten+        ​1h20m         ; refresh ​     / 1 Stunde 20 Minuten
         1d12h         ; retry        / 1,5 Tage         1d12h         ; retry        / 1,5 Tage
         1w            ; expire ​      / 1 Woche         1w            ; expire ​      / 1 Woche
Zeile 73: Zeile 85:
 === Zonendatei überprüfen === === Zonendatei überprüfen ===
 == CentOS (ab 5) == == CentOS (ab 5) ==
-  named-checkzone -D linuxhotel.de. /var/named/master/​linuxhotel.de+  named-checkzone -D linuxhotel.de. /var/named/primary/​linuxhotel.de
  
 == SuSE (ab 10.0) == == SuSE (ab 10.0) ==
-  named-checkzone -D linuxhotel.de. /​var/​lib/​named/​master/​linuxhotel.de+  named-checkzone -D linuxhotel.de. /​var/​lib/​named/​primary/​linuxhotel.de
  
 == Debian (ab 3.1) == == Debian (ab 3.1) ==
-  named-checkzone -D linuxhotel.de. /​var/​cache/​bind/​master/​linuxhotel.de+  named-checkzone -D linuxhotel.de. /​var/​cache/​bind/​primary/​linuxhotel.de
  
 ==== Konfigurationsdatei ==== ==== Konfigurationsdatei ====
Zeile 88: Zeile 100:
 ''/​etc/​bind/​named.conf.local''​ : ( Debian ab 5.0 ) ''/​etc/​bind/​named.conf.local''​ : ( Debian ab 5.0 )
 <​file>​ <​file>​
-  ​zone "​linuxhotel.de"​ { +zone "​linuxhotel.de"​ { 
-        type master+  type primary
-        file "master/​linuxhotel.de";​ +  file "primary/​linuxhotel.de";​ 
-  };+};
 </​file>​ </​file>​
  
Zeile 106: Zeile 118:
 Debian (ab 6) Debian (ab 6)
   service bind9 reload   service bind9 reload
 +
 +=== im Log prüfen, ob es Fehler gab ===
 +Debian (ab 10)
 +  journalctl -eu bind9.service
  
 ==== testen ==== ==== testen ====
Zeile 115: Zeile 131:
 <​file>​ <​file>​
 $TTL 2h $TTL 2h
-@ IN SOA notebook20 root.notebook20 ​2 3h 1h 1w 1h+@ IN SOA notebook20 root.notebook20 ​1999022301 1d 2h 5w 2d
  
 ; Nameserver: ; Nameserver:
Zeile 134: Zeile 150:
 admin            IN CNAME notebook22 admin            IN CNAME notebook22
 </​file>​ </​file>​
 +
 +Hier habe ich die Zeitangaben im SOA entsprechend der Empfehlungen des Ripe ((
 +https://​www.ripe.net/​publications/​docs/​ripe-203
 +<​file>​
 +example.com. ​ 3600  SOA  dns.example.com. hostmaster.example.com. (
 +                         ​1999022301 ​  ; serial YYYYMMDDnn
 +                         ​86400 ​       ; refresh (  24 hours)
 +                         ​7200 ​        ; retry   ​( ​  2 hours)
 +                         ​3600000 ​     ; expire ​ (1000 hours)
 +                         ​172800 )     ; minimum (   2 days)
 +</​file>​
 +)) gewählt. ​
  
 Bei jeder Änderung der Zonendatei sollte die Seriennummer hochgezählt werden. Bei jeder Änderung der Zonendatei sollte die Seriennummer hochgezählt werden.
  
 === Zonendatei überprüfen === === Zonendatei überprüfen ===
-== CentOS ​== +== CentOS == 
-  named-checkzone -D linuxhotel.de. /var/named/master/​linuxhotel.de+  named-checkzone -D linuxhotel.de. /var/named/primary/​linuxhotel.de
  
-== SuSE 10.0 == +== SuSE == 
-  named-checkzone -D linuxhotel.de. /​var/​lib/​named/​master/​linuxhotel.de+  named-checkzone -D linuxhotel.de. /​var/​lib/​named/​primary/​linuxhotel.de
  
-== Debian ​3.1 == +== Debian == 
-  named-checkzone -D linuxhotel.de. /​var/​cache/​bind/​master/​linuxhotel.de+  named-checkzone -D linuxhotel.de. /​var/​cache/​bind/​primary/​linuxhotel.de
  
 === bind die Änderung mitteilen === === bind die Änderung mitteilen ===
   rndc reload linuxhotel.de   rndc reload linuxhotel.de
  
-===== Rückwärts-Zone ​===== +==== Rückwärts-Zone ==== 
-==== Zonendatei ​==== +=== Zonendatei === 
-''/​var/​named/​master/​1.168.192.in-addr.arpa'':​ ( CentOS )+''/​var/​named/​primary/​1.168.192.in-addr.arpa'':​ ( CentOS )
  
-''/​var/​lib/​named/​master/​1.168.192.in-addr.arpa'':​ ( SuSE 10.0 )+''/​var/​lib/​named/​primary/​1.168.192.in-addr.arpa'':​ ( SuSE 10.0 )
  
-''/​var/​cache/​bind/​master/​1.168.192.in-addr.arpa'':​ ( Debian 3.1 )+''/​var/​cache/​bind/​primary/​1.168.192.in-addr.arpa'':​ ( Debian 3.1 )
  
 <​file>​ <​file>​
Zeile 180: Zeile 208:
 === testen === === testen ===
 == CentOS (ab 5) == == CentOS (ab 5) ==
-  named-checkzone -D linuxhotel.de. /var/named/master/​linuxhotel.de +  named-checkzone -D linuxhotel.de. /var/named/primary/​linuxhotel.de 
-  named-checkzone -D 1.168.192.in-addr.arpa. /var/named/master/​1.168.192.in-addr.arpa+  named-checkzone -D 1.168.192.in-addr.arpa. /var/named/primary/​1.168.192.in-addr.arpa
  
 == SuSE (ab 10.0) == == SuSE (ab 10.0) ==
-  named-checkzone -D linuxhotel.de. /​var/​lib/​named/​master/​linuxhotel.de +  named-checkzone -D linuxhotel.de. /​var/​lib/​named/​primary/​linuxhotel.de 
-  named-checkzone -D 1.168.192.in-addr.arpa. /​var/​lib/​named/​master/​1.168.192.in-addr.arpa+  named-checkzone -D 1.168.192.in-addr.arpa. /​var/​lib/​named/​primary/​1.168.192.in-addr.arpa
  
 == Debian (ab 3.1) == == Debian (ab 3.1) ==
-  named-checkzone -D linuxhotel.de. /​var/​cache/​bind/​master/​linuxhotel.de +  named-checkzone -D linuxhotel.de. /​var/​cache/​bind/​primary/​linuxhotel.de 
-  named-checkzone -D 1.168.192.in-addr.arpa. /​var/​cache/​bind/​master/​1.168.192.in-addr.arpa+  named-checkzone -D 1.168.192.in-addr.arpa. /​var/​cache/​bind/​primary/​1.168.192.in-addr.arpa
  
-==== Konfigurationsdatei ​====+=== Konfigurationsdatei ===
 ''/​etc/​named.conf''​ : ( SuSE 10.2 ) ''/​etc/​named.conf''​ : ( SuSE 10.2 )
  
Zeile 199: Zeile 227:
 <​file>​ <​file>​
 zone "​1.168.192.in-addr.arpa"​ { zone "​1.168.192.in-addr.arpa"​ {
-      type master+      type primary
-      file "master/​1.168.192.in-addr.arpa";​+      file "primary/​1.168.192.in-addr.arpa";​
 }; };
 </​file>​ </​file>​
-===  ​testen ===+==  ​Syntax der Konfigurationsdatei prüfen ​==
   named-checkconf -z   named-checkconf -z
  
-=== bind die Änderung mitteilen ​===+== bind die Änderung mitteilen ==
   rndc reconfig   rndc reconfig
-==== testen ​====  ​+=== testen ===  ​
   host 192.168.1.222 127.0.0.1   host 192.168.1.222 127.0.0.1
   dig -x 192.168.1.222 @127.0.0.1   dig -x 192.168.1.222 @127.0.0.1
Zeile 217: Zeile 245:
  
 ''/​etc/​bind/​named.conf.local''​ : ( Debian ) ''/​etc/​bind/​named.conf.local''​ : ( Debian )
 +mit ''​allow-update'':​
 <​file>​ <​file>​
 acl "​nsupdate"​ { acl "​nsupdate"​ {
Zeile 223: Zeile 252:
  
 zone "​linuxhotel.de"​ { zone "​linuxhotel.de"​ {
-        type master;+        type primary;
         allow-update { "​nsupdate";​ };         allow-update { "​nsupdate";​ };
-        file "master/​linuxhotel.de";​+        file "primary/​linuxhotel.de";​
 }; };
  
 zone "​1.168.192.in-addr.arpa"​ { zone "​1.168.192.in-addr.arpa"​ {
-        type master;+        type primary;
         allow-update { "​nsupdate";​ };         allow-update { "​nsupdate";​ };
-        file "master/​1.168.192.in-addr.arpa";​+        file "primary/​1.168.192.in-addr.arpa";​
 }; };
 </​file>​ </​file>​
  
 +oder mit ''​update-policy local'':​
 +<​file>​
 +zone "​linuxhotel.de"​ {
 +        type primary;
 +        update-policy local;
 +        file "​primary/​linuxhotel.de";​
 +};
 +</​file>​
 ==== bind Konfigurationsdatei prüfen ==== ==== bind Konfigurationsdatei prüfen ====
   named-checkconf   named-checkconf
  
-==== bind Schreibzugriff auf Master-Zonendateien geben ====+==== bind Schreibzugriff auf Primary-Zonendateien geben ====
 Debian: Debian:
-  chown -R bind /​var/​cache/​bind/​master+  chown -R bind /​var/​cache/​bind/​primary
  
 ==== Testen: Eintrag hinzufügen ==== ==== Testen: Eintrag hinzufügen ====
-  nsupdate <<EOF+für ''​allow-update'':​
 <​file>​ <​file>​
 +nsupdate <<EOT
 +
 server localhost server localhost
  
Zeile 251: Zeile 290:
 update add 223.1.168.192.in-addr.arpa 43200 IN PTR notebook23.linuxhotel.de update add 223.1.168.192.in-addr.arpa 43200 IN PTR notebook23.linuxhotel.de
  
 +EOT
 +</​file>​
 +
 +für ''​update-policy local'':​
 +<​file>​
 +nsupdate -l <<EOT
 +
 +update add notebook23.linuxhotel.de 43200 IN A 192.168.1.223
 +
 +update add 223.1.168.192.in-addr.arpa 43200 IN PTR notebook23.linuxhotel.de
 +
 +EOT
 </​file>​ </​file>​
-  EOF 
  
 ==== Trotz nsupdate Zonen mit Editor bearbeiten ==== ==== Trotz nsupdate Zonen mit Editor bearbeiten ====
Zeile 263: Zeile 313:
  
 ''​~/​.bashrc''​ : ''​~/​.bashrc''​ :
-<file>+<code bash>
 function zvi { function zvi {
-  cd /​var/​cache/​bind/​master+  cd /​var/​cache/​bind/​primary
   rndc freeze $1   rndc freeze $1
   vim $1   vim $1
Zeile 272: Zeile 322:
   cd -   cd -
 } }
-</file>+</code>
  
-====== ​bind als slave einrichten ​====== +===== mehrere NS für eine Zone ===== 
-===== Master konfigurieren ​===== +==== Master? Primary! Slave? Secondary! ;-) ==== 
-Erst müssen die Slave-Nameserver in der Zonendatei des Masters ​eingetragen werden:+//​**Mittlerweile **(Version)** sind auch die Begriffe primary und secondary als Ersatz für master und slave möglich**//​ 
 + 
 +  ​masters { ...; };  ​=>  primaries { ...; }; 
 +  type master;  ​=>  type primary; 
 +  type slave; ​  =>  type secondary;​ 
 + 
 +==== Primary konfigurieren ​==== 
 +Erst müssen die Secondary-Nameserver in der Zonendatei des Primarys ​eingetragen werden:
 <​file>​ <​file>​
 linuxhotel.de. IN NS notebook04.linuxhotel.de. linuxhotel.de. IN NS notebook04.linuxhotel.de.
Zeile 286: Zeile 343:
 </​file>​ </​file>​
 in der Datei ''/​etc/​named.conf''​ eingetragen werden, oder die Zeile ganz entfernt oder auskommentiert werden. in der Datei ''/​etc/​named.conf''​ eingetragen werden, oder die Zeile ganz entfernt oder auskommentiert werden.
-=== testen: funktioniert der Master ​===+=== testen: funktioniert der Primary? ​===
 == openSuSE 12.3 == == openSuSE 12.3 ==
-  ​cd /​var/​lib/​named/​master +  named-checkzone -i local -D linuxhotel.de ​/​var/​lib/​named/​primary/​linuxhotel.de
-  ​named-checkzone -i local -D linuxhotel.de linuxhotel.de+
   rndc reload linuxhotel.de   rndc reload linuxhotel.de
   tail /​var/​log/​messages   tail /​var/​log/​messages
   dig @127.0.0.1 linuxhotel.de NS   dig @127.0.0.1 linuxhotel.de NS
  
 +== debian 8 ==
 +  named-checkzone -i local -D linuxhotel.de /​var/​cache/​bind/​primary/​linuxhotel.de
 +  rndc reload linuxhotel.de
 +  journalctl -eu bind9
 +  dig @127.0.0.1 linuxhotel.de NS
  
-===== Slave konfigurieren ​===== +==== Secondary ​konfigurieren ==== 
-Vorraussetzung: ​Master ​funktioniert +Vorraussetzung: ​Primary ​funktioniert 
-  dig @<​IP-des-Masters> linuxhotel.de AXFR+  dig @<​IP-des-Primary> linuxhotel.de AXFR
  
 Ausgabe muss mindestens 2 NS Records enthalten: Ausgabe muss mindestens 2 NS Records enthalten:
   - den eigenen Rechner   - den eigenen Rechner
-  - den Master+  - den Primary
  
 ''/​etc/​named.conf''​ : ( CentOS 5.3 ) ''/​etc/​named.conf''​ : ( CentOS 5.3 )
 <​file>​ <​file>​
 zone "​linuxhotel.de"​ { zone "​linuxhotel.de"​ {
-        type slave+        type secondary
-        file "slaves/​linuxhotel.de";​+        file "secondary/​linuxhotel.de";​
         masters { 192.168.1.220;​ };         masters { 192.168.1.220;​ };
 }; };
 zone "​1.168.192.in-addr.arpa"​ { zone "​1.168.192.in-addr.arpa"​ {
-        type slave+        type secondary
-        file "slaves/​1.168.192.in-addr.arpa";​+        file "secondary/​1.168.192.in-addr.arpa";​
         masters { 192.168.1.220;​ };         masters { 192.168.1.220;​ };
 }; };
Zeile 322: Zeile 383:
 <​file>​ <​file>​
 zone "​linuxhotel.de"​ { zone "​linuxhotel.de"​ {
-        type slave+        type secondary
-        file "slave/​linuxhotel.de";​+        file "secondary/​linuxhotel.de";​
         masters { 192.168.1.220;​ };         masters { 192.168.1.220;​ };
 }; };
 zone "​1.168.192.in-addr.arpa"​ { zone "​1.168.192.in-addr.arpa"​ {
-        type slave+        type secondary
-        file "slave/​1.168.192.in-addr.arpa";​+        file "secondary/​1.168.192.in-addr.arpa";​
         masters { 192.168.1.220;​ };         masters { 192.168.1.220;​ };
 }; };
 </​file>​ </​file>​
  
-Wenn man die Zonenfiles ​als slave **lieber im Textformat statt im Binärformat** haben will, kann man in die Zone eintragen: +Zonendateien im Binärformat kann man mit: 
- +  named-checkzone -D -f raw linuxhotel.de secondary/​linuxhotel.de 
-<file txt /​etc/​named.conf+anzeigen. ​Wenn man die Zonenfiles **lieber im Textformat statt im Binärformat** haben will, kann man in die Zone eintragen:​ 
-... +<file txt> 
-        masterfile-format text;+zone "​…"​ { 
 +  … 
 +  ​masterfile-format text; 
 +  …
 </​file>​ </​file>​
  
-==== bind Schreibzugriff auf Slave-Zonendateien geben ====+=== bind Schreibzugriff auf Secondary-Zonendateien geben ===
 Debian: Debian:
-  mkdir /​var/​cache/​bind/​slave +  mkdir /​var/​cache/​bind/​secondary 
-  chown bind /​var/​cache/​bind/​slave+  chown bind /​var/​cache/​bind/​secondary
  
-==== testen: funktioniert der Slave====+=== testen: funktioniert der Secondary? ===
 == Debian == == Debian ==
-  named-checkconf+  named-checkconf ​-z
   rndc reconfig   rndc reconfig
-  ​tail /​var/​log/​daemon.log +  ​journalctl -eu bind9 
-  ls /​var/​cache/​bind/​slave/​{linuxhotel.de,​1.168.192.in-addr.arpa}+  ls /​var/​cache/​bind/​secondary/​{linuxhotel.de,​1.168.192.in-addr.arpa}
   dig @127.0.0.1 linuxhotel.de AXFR   dig @127.0.0.1 linuxhotel.de AXFR
  
 == OpenSuSE 12.3 == == OpenSuSE 12.3 ==
-  named-checkconf+  named-checkconf ​-z
   rcnamed restart   rcnamed restart
   tail /​var/​log/​messages   tail /​var/​log/​messages
-  ls /​var/​lib/​named/​slave/​{linuxhotel.de,​1.168.192.in-addr.arpa}+  ls /​var/​lib/​named/​secondary/​{linuxhotel.de,​1.168.192.in-addr.arpa}
   dig @127.0.0.1 linuxhotel.de AXFR   dig @127.0.0.1 linuxhotel.de AXFR
  
-==== testen: funktionieren alle verantwortlichen Nameserver? ​====+=== testen: funktionieren alle verantwortlichen Nameserver? ===
   dig @141.1.1.1 linuxhotel.de +nssearch   dig @141.1.1.1 linuxhotel.de +nssearch
  
-====== Subdomains delegieren ​====== +===== Subdomains delegieren ===== 
-===== Übergeordneter DNS ===== +==== Übergeordneter DNS ==== 
-''/​etc/​named.conf.local''​ : ( Debian 5.0 )+''/​etc/​named.conf.local''​ : ( Debian ​ab 5.0 )
  
-''/​etc/​named.conf''​ : ( CentOS 5 )+''/​etc/​named.conf''​ : ( CentOS ​ab 5 )
 <​file>​ <​file>​
 zone "​linuxhotel.de"​ IN { zone "​linuxhotel.de"​ IN {
-        type master+        type primary
-        file "master/​linuxhotel.de";​+        file "primary/​linuxhotel.de";​
         forwarders ​     { };         forwarders ​     { };
 }; };
 </​file>​ </​file>​
  
-Fallstrick: ​Unbedingt ​an forwarders denken! Und **alle** dnssec Optionen ausschalten :!:+:!: Fallstrick: ​__Unbedingt ​an **forwarders** denken!__ Und **alle** dnssec Optionen ausschalten :!:
  
-''/​var/​named/​master''​ : ( CentOS 5 )+''/​var/​named/​primary''​ : ( CentOS 5 )
 <​file>​ <​file>​
 sub05.linuxhotel.de. ​       IN NS ns1.sub05.linuxhotel.de. sub05.linuxhotel.de. ​       IN NS ns1.sub05.linuxhotel.de.
Zeile 393: Zeile 457:
 Das muss auch auf jedem Delegaten konfiguriert werden :!: Das muss auch auf jedem Delegaten konfiguriert werden :!:
  
-  named-checkzone -i local -D linuxhotel.de /var/named/master/​linuxhotel.de +  named-checkzone -i local -D linuxhotel.de /var/named/primary/​linuxhotel.de 
-===== Subdomain DNS =====+==== Subdomain DNS ====
 Wie oben, unter "​eigene Zonen in bind verwalten"​ Wie oben, unter "​eigene Zonen in bind verwalten"​
  
-====== Zonendatei für Subnetz per Skript erzeugen ​====== +===== Zonendatei für Subnetz per Skript erzeugen ===== 
 <code bash> <code bash>
 #!/bin/bash #!/bin/bash
lpi2/bind.txt · Zuletzt geändert: 2024/04/17 12:38 von ingo_wichmann