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 [2014/02/14 15:48]
ingo_wichmann
lpi2:bind [2023/06/14 10:28]
ingo_wichmann [Konfigurationsdatei]
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 +=== DNSSEC temporär abschalten === 
-Mit  +''​/​etc/​named.conf'' ​: CentOS (ab 6)
-  system-config-bind +
-Default-Konfigurationsdateien erzeugen+
  
-=== CentOS 6 === +''/​etc/bind/named.conf.options''​ : Debian (ab 7)
-''/​etc/​named.conf''​ :+
 <​file>​ <​file>​
 options { options {
- + 
-        // listen-on port 53 { 127.0.0.1; }; +        // In der Praxis ist DNSSEC eine gute Sache ... aber zum Lernen erst mal aus:
-        // listen-on-v6 port 53 { ::1; }; +
-        // allow-query ​    { localhost; }; +
         dnssec-enable no;         dnssec-enable no;
         dnssec-validation no;         dnssec-validation no;
-        ​#dnssec-lookaside ​auto+        dnssec-lookaside ​no
 +… 
 +}
 </​file>​ </​file>​
 (( mehr zu ''​allow-query''​ weiter unten im Kapitel "Bind absichern"​ und natürlich unter  (( mehr zu ''​allow-query''​ weiter unten im Kapitel "Bind absichern"​ und natürlich unter 
   man named.conf   man named.conf
 )) ))
-====== eigene Zonen in bind verwalten ​====== +  named-checkconf  
-===== Vorwärts-Zone ​===== +  rndc reconfig 
-==== Zonendatei ​==== + 
-Unter Debian und CentOS ​muß man ein entsprechendes Verzeichnis ''​master''​ für die Zonendateien noch anlegen ​((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 5 : +CentOS ​(ab 5
-  mkdir /var/named/master+  mkdir /var/named/primary
  
-''/​var/​named/​master/​linuxhotel.de''​ : ( CentOS 5 )+''/​var/​named/​primary/​linuxhotel.de''​ : ( CentOS ​ab 5 )
  
-''/​var/​lib/​named/​master/​linuxhotel.de''​ : ( SuSE 10.0)+''/​var/​lib/​named/​primary/​linuxhotel.de''​ : ( SuSE ab 10.0)
  
-''/​var/​cache/​bind/​master/​linuxhotel.de''​ : ( Debian 3.1 )+''/​var/​cache/​bind/​primary/​linuxhotel.de''​ : ( Debian ​ab 3.1 )
 <​file>​ <​file>​
-$TTL 2h+$ORIGIN . ; hilft Tippfehler (fehlender . am Ende) zu vermeiden 
 +$TTL 2m   ; time to live: 2 Minuten, default wäre 2 Tage
 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
-        ​3h            ​; refresh +        ​1h20m         ; refresh ​     / 1 Stunde 20 Minuten 
-        ​1h            ​; retry +        ​1d12h         ; retry        / 1,5 Tage 
-        1w            ; expire +        1w            ; expire ​      / 1 Woche 
-        ​1h            ​; negative ttl+        ​60s           ; negative ttl / 60 Sekunden
 ) )
  
Zeile 71: Zeile 84:
  
 === Zonendatei überprüfen === === Zonendatei überprüfen ===
-== CentOS 5 == +== CentOS ​(ab 5== 
-  named-checkzone linuxhotel.de. /var/named/master/​linuxhotel.de+  named-checkzone ​-D linuxhotel.de. /var/named/primary/​linuxhotel.de
  
-== SuSE 10.0 == +== SuSE (ab 10.0== 
-  named-checkzone linuxhotel.de. /​var/​lib/​named/​master/​linuxhotel.de+  named-checkzone ​-D linuxhotel.de. /​var/​lib/​named/​primary/​linuxhotel.de
  
-== Debian 3.1 == +== Debian ​(ab 3.1== 
-  named-checkzone linuxhotel.de. /​var/​cache/​bind/​master/​linuxhotel.de+  named-checkzone ​-D linuxhotel.de. /​var/​cache/​bind/​primary/​linuxhotel.de 
 + 
 +==== Konfigurationsdatei ==== 
 +''/​etc/​named.conf''​ : ( SuSE 10.2 ) 
 + 
 +''/​etc/​named.conf''​ : ( CentOS ab 5 ) 
 + 
 +''/​etc/​bind/​named.conf.local''​ : ( Debian ab 5.0 ) 
 +<​file>​ 
 +zone "​linuxhotel.de"​ { 
 +  type primary; 
 +  file "​primary/​linuxhotel.de";​ 
 +}; 
 +</​file>​ 
 + 
 +Konfigdatei und eingetragene Zonen überprüfen:​ 
 +  named-checkconf -z 
 + 
 +=== bind die Änderung mitteilen === 
 +  rndc reconfig 
 +oder  
 + 
 +openSuSE, centos (ab 7) 
 +  service named reload 
 + 
 +Debian (ab 6) 
 +  service bind9 reload 
 + 
 +=== im Log prüfen, ob es Fehler gab === 
 +Debian (ab 11) 
 +  journalctl -eu named.service 
 + 
 +==== testen ==== 
 +  host peter.linuxhotel.de 127.0.0.1 
 +  dig peter.linuxhotel.de @127.0.0.1 any
  
 ==== Zonendatei (kurze Schreibweise) ==== ==== Zonendatei (kurze Schreibweise) ====
Zeile 84: Zeile 131:
 <​file>​ <​file>​
 $TTL 2h $TTL 2h
-@ IN SOA notebook20 root.notebook20 ​+@ IN SOA notebook20 root.notebook20 ​1999022301 1d 2h 5w 2d
-        1             ; Seriennummer +
-        3h            ; refresh +
-        1h            ; retry +
-        1w            ; expire +
-        1h            ; negative ttl +
-)+
  
 ; Nameserver: ; Nameserver:
Zeile 109: 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
  
-==== Konfigurationsdatei ==== +=== bind die Änderung mitteilen === 
-''/​etc/​named.conf''​ : ( SuSE 10.2 ) +  ​rndc reload ​linuxhotel.de
- +
-''/​etc/​named.conf''​ : ( CentOS ) +
- +
-''/​etc/​bind/​named.conf.local''​ : ( Debian 5.0 ) +
-<​file>​ +
-  zone "​linuxhotel.de"​ { +
-        type master; +
-        file "​master/​linuxhotel.de";​ +
-  }; +
-</​file>​ +
- +
-Konfigdatei und eingetragene Zonen überprüfen:​ +
-  named-checkconf -z +
- +
-bind die Änderung mitteilen+
- +
-SuSE 11.1 : +
-  /​etc/​init.d/​named reload +
- +
-==== testen ==== +
-  ​host peter.linuxhotel.de ​127.0.0.1 +
-  dig peter.linuxhotel.de @127.0.0.1 any+
  
-===== 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 176: Zeile 207:
  
 === testen === === testen ===
-  ​named-checkzone linuxhotel.de /var/lib/named/master/​linuxhotel.de +== CentOS (ab 5) == 
-  named-checkzone 1.168.192.in-addr.arpa. /var/lib/named/master/​1.168.192.in-addr.arpa+  ​named-checkzone ​-D linuxhotel.de/var/named/primary/​linuxhotel.de 
 +  named-checkzone ​-D 1.168.192.in-addr.arpa. /var/named/primary/​1.168.192.in-addr.arpa
  
-==== Konfigurationsdatei ​====+== SuSE (ab 10.0) == 
 +  named-checkzone -D linuxhotel.de. /​var/​lib/​named/​primary/​linuxhotel.de 
 +  named-checkzone -D 1.168.192.in-addr.arpa. /​var/​lib/​named/​primary/​1.168.192.in-addr.arpa 
 + 
 +== Debian (ab 3.1) == 
 +  named-checkzone -D linuxhotel.de. /​var/​cache/​bind/​primary/​linuxhotel.de 
 +  named-checkzone -D 1.168.192.in-addr.arpa. /​var/​cache/​bind/​primary/​1.168.192.in-addr.arpa 
 + 
 +=== Konfigurationsdatei ​===
 ''/​etc/​named.conf''​ : ( SuSE 10.2 ) ''/​etc/​named.conf''​ : ( SuSE 10.2 )
  
Zeile 187: 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+  named-checkconf ​-z
  
-==== testen ​==== +== bind die Änderung mitteilen ​== 
-SuSE 11.1 : +  rndc reconfig 
-  /​etc/​init.d/​named reload +=== 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
- 
-===== Interne Anfragen abfangen ===== 
-Todo: leere Zonendateien für [[http://​linuxhotel.de/​teilnehmerinfo/​seminar-info.html#​Netzwerk|private IP-Adressen]] anlegen 
- 
-=== Debian 5.0 === 
-Bei debian 5.0 gibt es dazu  
-''/​etc/​bind/​zones.rfc1918'',​ 
-''/​etc/​bind/​db.empty''​ 
-und einen Eintrag in ''/​etc/​bind/​named.conf.local'':​ 
-<​file>​ 
-//include "/​etc/​bind/​zones.rfc1918";​ 
-</​file>​ 
- 
-Muß man je nach eigenen verwendeten privaten Netzen anpassen. ​ 
- 
-=== openSuSE 11.4 === 
-( noch nicht fertig ) 
- 
-''/​etc/​named.d/​zones.rfc1918.conf''​ : 
-<​file>​ 
-zone "​10.in-addr.arpa" ​     { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-  
-zone "​16.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​17.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​18.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​19.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​20.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​21.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​22.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​23.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​24.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​25.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​26.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​27.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​28.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​29.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​30.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​31.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
- 
-zone "​168.192.in-addr.arpa"​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-</​file>​ 
- 
-''/​var/​lib/​named/​db.empty''​ : 
-<​file>​ 
-; BIND reverse data file for empty rfc1918 zone 
-; 
-; DO NOT EDIT THIS FILE - it is used for multiple zones. 
-; Instead, copy it, edit named.conf, and use that copy. 
-; 
-$TTL    86400 
-@       ​IN ​     SOA     ​localhost. root.localhost. ( 
-                              1         ; Serial 
-                         ​604800 ​        ; Refresh 
-                          86400         ; Retry 
-                        2419200 ​        ; Expire 
-                          86400 )       ; Negative Cache TTL 
-; 
-@       ​IN ​     NS      localhost. 
-</​file>​ 
  
 ===== Zonendateien mit nsupdate bearbeiten ===== ===== Zonendateien mit nsupdate bearbeiten =====
Zeile 265: Zeile 245:
  
 ''/​etc/​bind/​named.conf.local''​ : ( Debian ) ''/​etc/​bind/​named.conf.local''​ : ( Debian )
 +mit ''​allow-update'':​
 <​file>​ <​file>​
 acl "​nsupdate"​ { acl "​nsupdate"​ {
Zeile 271: 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 299: 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 311: 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 320: Zeile 322:
   cd -   cd -
 } }
-</file>+</code> 
 + 
 +===== mehrere NS für eine Zone ===== 
 +==== Master? Primary! Slave? Secondary! ;-) ==== 
 +//​**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;
  
-====== bind als slave einrichten ====== +==== Primary konfigurieren ​==== 
-Erst müssen die Slave-Nameserver in der Zonendatei des Masters ​eingetragen werden:+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 333: 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 369: 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>​
  
-==== bind Schreibzugriff auf Slave-Zonendateien geben ====+Zonendateien im Binärformat kann man mit: 
 +  named-checkzone -D -f raw linuxhotel.de secondary/​linuxhotel.de 
 +anzeigen. Wenn man die Zonenfiles **lieber im Textformat statt im Binärformat** haben will, kann man in die Zone eintragen:​ 
 +<file txt> 
 +zone "​…"​ { 
 +  … 
 +  masterfile-format text; 
 +  … 
 +</​file>​ 
 + 
 +=== 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? === 
-=== OpenSuSE 12.3 ===+== Debian == 
 +  named-checkconf -z 
 +  rndc reconfig 
 +  journalctl -eu bind9 
 +  ls /​var/​cache/​bind/​secondary/​{linuxhotel.de,​1.168.192.in-addr.arpa} 
 +  dig @127.0.0.1 linuxhotel.de AXFR 
 + 
 +== OpenSuSE 12.3 == 
 +  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
  
-====== Zonentransfer signieren ====== +=== testen: funktionieren alle verantwortlichen Nameserver? ​=== 
-Schlüsselpaar erstellen: (( Todo: eigentlich sollte das immer mit -n HOST funktionierenAber ich hatte Situationen,​ wo ich  +  dig @141.1.1.1 linuxhotel.de +nssearch
-  dnssec-keygen -a hmac-md5 -b 128 -n ZONE zonentransfer +
-benutzt habe )) +
-  cd +
-  dnssec-keygen -a hmac-md5 -b 512 -n HOST zonentransfer+
  
-Dadurch werden zwei Dateien erstellt: +===== Subdomains delegieren ===== 
-  ls Kzonentransfer.+157+*+==== Übergeordneter DNS ==== 
 +''/​etc/​named.conf.local''​ : ( Debian ab 5.0 )
  
-Die darin angegebenen Schlüssel und Verschlüsselungsverfahren müssen in die Konfigurationsdateien von master und slave eingetragen werden. +''/​etc/​named.conf''​ : ( CentOS ​ab 5 )
- +
-===== master ===== +
-''/​etc/​named.conf''​ : ( CentOS 5, Debian 5.0 )+
 <​file>​ <​file>​
-key "​zonentransfer"​ { +zone "​linuxhotel.de" ​IN 
-        algorithm hmac-md5; +        type primary
-        secret "​Ur7+TU8m24L9q24AWgNd4g==";​ +        file "primary/​linuxhotel.de";​ 
-}; +        ​forwarders ​     ​{ };
- +
-zone "​linuxhotel.de"​ { +
-        type master+
-        file "master/​linuxhotel.de";​ +
-        ​allow-transfer ​key zonentransfer;​ }; +
-}; +
- +
-zone "​1.168.192.in-addr.arpa"​ { +
-        type master; +
-        file "​master/​1.168.192.in-addr.arpa";​ +
-        allow-transfer { key zonentransfer; ​};+
 }; };
 </​file>​ </​file>​
  
-==== testen ==== +:!Fallstrick: __Unbedingt an **forwarders** denken!__ Und **alle** dnssec Optionen ausschalten :!:
-TodoAchtungunsicher da so der Schlüssen in ''​ps ax''​ Ausgabe und in der history landet. Mit ''​-k''​ wäre sicherer +
-  dig @192.168.53.103 signed03.dnslab.org AXFR -y "​zonentransfer:Ur7+TU8m24L9q24AWgNd4g=="​+
  
-===== slave ===== +''/​var/named/primary''​ : ( CentOS 5 )
-''/​etc/named.conf''​ : ( CentOS 5, Debian 5.0 )+
 <​file>​ <​file>​
-key "​zonentransfer"​ { +sub05.linuxhotel.de. ​       ​IN NS ns1.sub05.linuxhotel.de
-      algorithm hmac-md5; +ns1.sub05.linuxhotel.de   IN A 192.168.150.110
-      secret "​Ur7+TU8m24L9q24AWgNd4g==";​ +
-}; +
- +
-server 192.168.1.220 { +
-      keys { zonentransfer;​ }; +
-}; +
- +
-zone "linuxhotel.de" { +
-        type slave; +
-        file "​slaves/​linuxhotel.de"; +
-        masters { 192.168.1.220; }; +
-}; +
- +
-zone "1.168.192.in-addr.arpa"​ { +
-        type slave; +
-        file "​slaves/​1.168.192.in-addr.arpa";​ +
-        masters { 192.168.1.220; }; +
-};+
 </​file>​ </​file>​
  
-====== Subdomains delegieren ====== +Fallstrick: Seit bind 9.9 werden die empty zones automatisch "​aufgefüllt"​Dadurch werden aber PTR-RR für nicht eigene Netze nicht mehr geforwarded :!:
-===== Übergeordneter DNS ===== +
-''/​etc/​named.conf.local'' ​( Debian 5.0 )+
  
-''/​etc/​named.conf''​ : ( CentOS 5 )+''/​etc/​named.conf.options''​ : ( Debian 8 )
 <​file>​ <​file>​
-zone "linuxhotel.de" IN { +disable-empty-zone "168.192.in-addr.arpa";
-        type master; +
-        file "​master/​linuxhotel.de"+
-        forwarders ​     { }; +
-};+
 </​file>​ </​file>​
  
-''/​var/​named/​master'' ​( CentOS 5 ) +Das muss auch auf jedem Delegaten konfiguriert werden :!:
-<​file>​ +
-sub05.linuxhotel.de. ​       IN NS ns1.sub05.linuxhotel.de. +
-ns1.sub05.linuxhotel.de. ​   IN A 192.168.150.110 +
-</​file>​+
  
-  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