Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
lpi2:bind [2014/02/14 15:48] ingo_wichmann |
lpi2:bind [2024/08/09 05:28] (aktuell) |
||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
===== Vorbereiten ===== | ===== Vorbereiten ===== | ||
- | === CentOS 5 === | + | === 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 7 === | ||
Paket ''caching-nameserver'' deinstallieren | Paket ''caching-nameserver'' deinstallieren | ||
- | Paket ''system-config-bind'' installieren | + | === DNSSEC temporär abschalten === |
- | Mit | + | ''/etc/named.conf'' : CentOS |
- | system-config-bind | + | |
- | Default-Konfigurationsdateien erzeugen | + | |
- | === CentOS 6 === | + | ''/etc/bind/named.conf.options'' : Debian (ab 12) |
- | ''/etc/named.conf'' : | + | |
<file> | <file> | ||
options { | options { | ||
- | + | … | |
- | // listen-on port 53 { 127.0.0.1; }; | + | // In der Praxis ist DNSSEC eine gute Sache ... aber im Intranet zum Lernen erst mal aus: |
- | // listen-on-v6 port 53 { ::1; }; | + | |
- | // allow-query { localhost; }; | + | |
- | + | ||
- | dnssec-enable no; | + | |
dnssec-validation no; | dnssec-validation no; | ||
- | #dnssec-lookaside auto; | + | … |
+ | } | ||
</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)): | + | |
- | Debian : | + | == testen == |
- | mkdir /var/cache/bind/master | + | Eine mit DNSSEC signierte Zone abfragen: |
- | CentOS 5 : | + | |
- | mkdir /var/named/master | + | |
- | ''/var/named/master/linuxhotel.de'' : ( CentOS 5 ) | + | Ein validierender Nameserver sollte bei einer signierten Zone liefern: |
+ | dig www.posteo.de @1.1.1.1 | ||
- | ''/var/lib/named/master/linuxhotel.de'' : ( SuSE 10.0) | ||
- | |||
- | ''/var/cache/bind/master/linuxhotel.de'' : ( Debian 3.1 ) | ||
<file> | <file> | ||
- | $TTL 2h | + | flags: … ad |
- | linuxhotel.de. IN SOA notebook20.linuxhotel.de. root.notebook20.linuxhotel.de. ( | + | </file> |
+ | |||
+ | Unser Nameserver sollte das ad-Flag nicht setzen. | ||
+ | |||
+ | ===== eigene Zonen in bind verwalten ===== | ||
+ | ==== Vorwärts-Zone ==== | ||
+ | === Zonendatei === | ||
+ | |||
+ | * ''/var/named/linuxhotel.de'' : ( CentOS ab 5 ) | ||
+ | * ''/var/lib/named/linuxhotel.de'' : ( SuSE ab 10.0) | ||
+ | * ''/var/cache/bind/linuxhotel.de'' : ( Debian ab 3.1 ) | ||
+ | |||
+ | <file txt linuxhotel.de> | ||
+ | $ORIGIN . ; hilft Tippfehler (fehlender . am Ende) zu vermeiden | ||
+ | $TTL 2m ; time to live: 2 Minuten, default wäre 2 Tage | ||
+ | linuxhotel.de. 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 |
) | ) | ||
; Nameserver: | ; Nameserver: | ||
- | linuxhotel.de. IN NS notebook20.linuxhotel.de. | + | linuxhotel.de. NS notebook20.linuxhotel.de. |
; kanonische IP-Adressen: | ; kanonische IP-Adressen: | ||
- | notebook22.linuxhotel.de. IN A 192.168.1.222 | + | notebook22.linuxhotel.de. A 192.168.1.222 |
- | notebook05.linuxhotel.de. IN A 192.168.1.205 | + | notebook05.linuxhotel.de. A 192.168.1.205 |
- | notebook20.linuxhotel.de. IN A 192.168.1.220 | + | notebook20.linuxhotel.de. A 192.168.1.220 |
- | notebook06.linuxhotel.de. IN A 192.168.1.206 | + | notebook06.linuxhotel.de. A 192.168.1.206 |
- | notebook09.linuxhotel.de. IN A 192.168.1.209 | + | notebook09.linuxhotel.de. A 192.168.1.209 |
; Aliase: | ; Aliase: | ||
- | peter.linuxhotel.de. IN CNAME notebook09.linuxhotel.de. | + | peter.linuxhotel.de. CNAME notebook09.linuxhotel.de. |
- | lothar.linuxhotel.de. IN CNAME notebook05.linuxhotel.de. | + | lothar.linuxhotel.de. 60 CNAME notebook05.linuxhotel.de. |
- | heribert.linuxhotel.de. IN CNAME notebook06.linuxhotel.de. | + | heribert.linuxhotel.de. 30 CNAME notebook06.linuxhotel.de. |
- | bjoern.linuxhotel.de. IN CNAME notebook20.linuxhotel.de. | + | bjoern.linuxhotel.de. CNAME notebook20.linuxhotel.de. |
- | admin.linuxhotel.de. IN CNAME notebook22.linuxhotel.de. | + | admin.linuxhotel.de. CNAME notebook22.linuxhotel.de. |
</file> | </file> | ||
=== 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/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/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/linuxhotel.de |
- | ==== Zonendatei (kurze Schreibweise) ==== | + | === Konfigurationsdatei === |
- | Das Format der Zonendatei (([[http://tools.ietf.org/html/rfc1035|rfc1035]])) läßt es auch zu, diese Datei sehr viel kürzer zu schreiben: | + | * ''/etc/named.conf'' : ( SuSE 10.2 ) |
+ | * ''/etc/named.conf'' : ( CentOS ab 5 ) | ||
+ | * ''/etc/bind/named.conf.local'' : ( Debian ab 5.0 ) | ||
<file> | <file> | ||
- | $TTL 2h | + | zone "linuxhotel.de" { |
- | @ IN SOA notebook20 root.notebook20 ( | + | type primary; |
- | 1 ; Seriennummer | + | file "linuxhotel.de"; |
- | 3h ; refresh | + | }; |
- | 1h ; retry | + | </file> |
- | 1w ; expire | + | |
- | 1h ; negative ttl | + | |
- | ) | + | |
- | ; Nameserver: | + | Konfigdatei und eingetragene Zonen überprüfen: |
- | IN NS notebook20 | + | named-checkconf -z |
- | ; kanonische IP-Adressen: | + | === bind die Änderung mitteilen === |
- | notebook22 IN A 192.168.1.222 | + | rndc reconfig |
- | notebook05 IN A 192.168.1.205 | + | ((oder |
- | notebook20 IN A 192.168.1.220 | + | |
- | notebook06 IN A 192.168.1.206 | + | |
- | notebook09 IN A 192.168.1.209 | + | |
- | ; Aliase: | + | openSuSE, centos (ab 7) |
- | peter IN CNAME notebook09 | + | service named reload |
- | lothar IN CNAME notebook05 | + | |
- | heribert IN CNAME notebook06 | + | |
- | bjoern IN CNAME notebook20 | + | |
- | admin IN CNAME notebook22 | + | |
- | </file> | + | |
- | Bei jeder Änderung der Zonendatei sollte die Seriennummer hochgezählt werden. | + | Debian (ab 6) |
+ | service bind9 reload | ||
+ | )) | ||
+ | === im Log prüfen, ob es Fehler gab === | ||
+ | Debian (ab 11) | ||
+ | journalctl -eu named.service | ||
- | === Zonendatei überprüfen === | + | === testen === |
- | == CentOS 5 == | + | host peter.linuxhotel.de 127.0.0.1 |
- | named-checkzone -D linuxhotel.de. /var/named/master/linuxhotel.de | + | dig peter.linuxhotel.de @127.0.0.1 any |
- | == SuSE 10.0 == | + | === Zonendatei (kürzere Schreibweise) === |
- | named-checkzone -D linuxhotel.de. /var/lib/named/master/linuxhotel.de | + | Das Format der Zonendatei ((RFC [[rfc>1035]])) läßt es auch zu, diese Datei kürzer zu schreiben: |
+ | <file> | ||
+ | $TTL 2h | ||
+ | @ SOA notebook20.linuxhotel.de. root.notebook20.linuxhotel.de. 1999022301 1d 2h 5w 2d | ||
- | == Debian 3.1 == | + | ; Nameserver: |
- | named-checkzone -D linuxhotel.de. /var/cache/bind/master/linuxhotel.de | + | NS notebook20.linuxhotel.de. |
- | ==== Konfigurationsdatei ==== | + | ; kanonische IP-Adressen: |
- | ''/etc/named.conf'' : ( SuSE 10.2 ) | + | notebook22 A 192.168.1.222 |
+ | notebook05 A 192.168.1.205 | ||
+ | notebook20 A 192.168.1.220 | ||
+ | notebook06 A 192.168.1.206 | ||
+ | notebook09 A 192.168.1.209 | ||
- | ''/etc/named.conf'' : ( CentOS ) | + | ; Aliase: |
+ | peter CNAME notebook09 | ||
+ | lothar CNAME notebook05 | ||
+ | heribert 60 CNAME notebook06 | ||
+ | bjoern 30 CNAME notebook20 | ||
+ | admin CNAME notebook22 | ||
+ | </file> | ||
- | ''/etc/bind/named.conf.local'' : ( Debian 5.0 ) | + | Hier habe ich die Zeitangaben im SOA entsprechend der Empfehlungen des Ripe (( |
+ | https://www.ripe.net/publications/docs/ripe-203 | ||
<file> | <file> | ||
- | zone "linuxhotel.de" { | + | example.com. 3600 SOA dns.example.com. hostmaster.example.com. ( |
- | type master; | + | 1999022301 ; serial YYYYMMDDnn |
- | file "master/linuxhotel.de"; | + | 86400 ; refresh ( 24 hours) |
- | }; | + | 7200 ; retry ( 2 hours) |
+ | 3600000 ; expire (1000 hours) | ||
+ | 172800 ) ; minimum ( 2 days) | ||
</file> | </file> | ||
+ | )) gewählt. | ||
- | Konfigdatei und eingetragene Zonen überprüfen: | + | Bei jeder Änderung der Zonendatei sollte die Seriennummer hochgezählt werden. |
- | named-checkconf -z | + | |
- | bind die Änderung mitteilen: | + | === Zonendatei überprüfen === |
+ | == CentOS == | ||
+ | named-checkzone -D linuxhotel.de. /var/named/linuxhotel.de | ||
- | SuSE 11.1 : | + | == SuSE == |
- | /etc/init.d/named reload | + | named-checkzone -D linuxhotel.de. /var/lib/named/linuxhotel.de |
- | ==== testen ==== | + | == Debian == |
- | host peter.linuxhotel.de 127.0.0.1 | + | named-checkzone -D linuxhotel.de. /var/cache/bind/linuxhotel.de |
- | dig peter.linuxhotel.de @127.0.0.1 any | + | |
- | ===== Rückwärts-Zone ===== | + | === bind die Änderung mitteilen === |
- | ==== Zonendatei ==== | + | rndc reload linuxhotel.de |
- | ''/var/named/master/1.168.192.in-addr.arpa'': ( CentOS ) | + | |
- | + | ||
- | ''/var/lib/named/master/1.168.192.in-addr.arpa'': ( SuSE 10.0 ) | + | |
- | ''/var/cache/bind/master/1.168.192.in-addr.arpa'': ( Debian 3.1 ) | + | ==== Rückwärts-Zone ==== |
+ | === Zonendatei === | ||
+ | * ''/var/named/1.168.192.in-addr.arpa'': ( CentOS ) | ||
+ | * ''/var/lib/named/1.168.192.in-addr.arpa'': ( SuSE 10.0 ) | ||
+ | * ''/var/cache/bind/1.168.192.in-addr.arpa'': ( Debian 3.1 ) | ||
<file> | <file> | ||
Zeile 176: | Zeile 194: | ||
=== 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/linuxhotel.de |
+ | named-checkzone -D 1.168.192.in-addr.arpa. /var/named/1.168.192.in-addr.arpa | ||
- | ==== Konfigurationsdatei ==== | + | == SuSE (ab 10.0) == |
- | ''/etc/named.conf'' : ( SuSE 10.2 ) | + | named-checkzone -D linuxhotel.de. /var/lib/named/linuxhotel.de |
+ | named-checkzone -D 1.168.192.in-addr.arpa. /var/lib/named/1.168.192.in-addr.arpa | ||
- | ''/etc/named.conf'' : ( CentOS ) | + | == Debian (ab 3.1) == |
+ | named-checkzone -D linuxhotel.de. /var/cache/bind/linuxhotel.de | ||
+ | named-checkzone -D 1.168.192.in-addr.arpa. /var/cache/bind/1.168.192.in-addr.arpa | ||
- | ''/etc/bind/named.conf.local'' : ( Debian 3.1 ) | + | === Konfigurationsdatei === |
+ | * ''/etc/named.conf'' : ( SuSE 10.2 ) | ||
+ | * ''/etc/named.conf'' : ( CentOS ) | ||
+ | * ''/etc/bind/named.conf.local'' : ( Debian 3.1 ) | ||
<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 "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 ===== | ||
==== bind konfigurieren ==== | ==== bind konfigurieren ==== | ||
- | ''/etc/named.conf'' : ( SuSE, CentOS ) | + | * ''/etc/named.conf'' : ( SuSE, CentOS ) |
- | + | * ''/etc/bind/named.conf.local'' : ( Debian ) | |
- | ''/etc/bind/named.conf.local'' : ( Debian ) | + | mit ''allow-update'': |
<file> | <file> | ||
acl "nsupdate" { | acl "nsupdate" { | ||
Zeile 271: | Zeile 236: | ||
zone "linuxhotel.de" { | zone "linuxhotel.de" { | ||
- | type master; | + | type primary; |
allow-update { "nsupdate"; }; | allow-update { "nsupdate"; }; | ||
- | file "master/linuxhotel.de"; | + | file "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 "1.168.192.in-addr.arpa"; |
}; | }; | ||
</file> | </file> | ||
+ | oder mit ''update-policy local'': | ||
+ | <file> | ||
+ | zone "linuxhotel.de" { | ||
+ | type primary; | ||
+ | update-policy local; | ||
+ | file "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 bind /var/cache/bind/linuxhotel.de |
==== 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 274: | ||
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 297: | ||
''~/.bashrc'' : | ''~/.bashrc'' : | ||
- | <file> | + | <code bash> |
function zvi { | function zvi { | ||
- | cd /var/cache/bind/master | + | cd /var/cache/bind |
rndc freeze $1 | rndc freeze $1 | ||
vim $1 | vim $1 | ||
Zeile 320: | Zeile 306: | ||
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 327: | ||
</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/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/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; }; | ||
}; | }; | ||
</file> | </file> | ||
- | ''/etc/named.conf'' : ( SuSE 10.0 ) | + | * ''/etc/named.conf'' : ( SuSE 10.0 ) |
- | + | * ''/etc/bind/named.conf.local'' : ( Debian ) | |
- | ''/etc/bind/named.conf.local'' : ( Debian ) | + | |
<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; }; | + | primaries { 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; }; | + | primaries { 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 | ||
+ | oder | ||
+ | named-compilezone -f raw -F text -o - example.org. /var/cache/bind/secondary/example.org | ||
+ | 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 funktionieren. Aber 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 "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 :!: |
- | Todo: Achtung: unsicher 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'' : ( 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/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 |