BIND/Slave: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
| (21 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
''' | '''BIND/Slave''' - Konfiguration eines [[DNS]]-Servers | ||
== Einleitung == | |||
Ein Nameserver mit BIND kann so konfiguriert werden, dass jede Zone entweder als Master- oder als Slave-Zone bereitgestellt wird | |||
* Ein Slave erhält seine Kopie der Zonendaten per Zonenübertragung von einem anderen Nameserver | |||
* Ein Master bezieht die Zonendaten aus einer unabhängigen Quelle und ist daher nicht auf andere Nameserver angewiesen | |||
Für jede Zone wird der Betrieb von mindestens zwei Nameservern empfohlen | |||
* Typischerweise existiert ein Master sowie ein oder zwei Slaves, die ihre Zonendaten vom Master übernehmen | |||
* | |||
=== Szenario === | |||
{| class="wikitable options big" | |||
|- | |||
! !! Name !! Beschreibung | |||
|- | |||
| Zone || example.com || mit zwei Nameservern | |||
|- | |||
| Master || master.example.com || 192.168.0.100 | |||
|- | |||
| Slave || slave.example.com || 192.168.0.200 | |||
|} | |||
* Master für ''example.com'' konfiguriert | |||
* Slave konfigurieren Zonendaten von master beziehen | |||
* Auf beiden Nameservern läuft [[BIND Version 9]] | |||
* | |||
* Auf beiden Nameservern läuft | |||
==== | === Dateispeicherorte === | ||
Debian-basiert | |||
{| class="wikitable options big" | {| class="wikitable options big" | ||
! Zweck !! Pfad | ! Zweck !! Pfad | ||
| Zeile 33: | Zeile 41: | ||
|} | |} | ||
== Vorgehen == | |||
Für den Betrieb von ''ns1'' als Slave von ''ns0'' sind drei Aspekte relevant | Für den Betrieb von ''ns1'' als Slave von ''ns0'' sind drei Aspekte relevant | ||
# ''ns1'' wird als Slave-Nameserver für die Zone konfiguriert | # ''ns1'' wird als Slave-Nameserver für die Zone konfiguriert | ||
# ''ns1'' muss erkennen können, wann eine Zonenübertragung erforderlich ist. Bevorzugt sendet ''ns0'' hierzu eine NOTIFY-Benachrichtigung | # ''ns1'' muss erkennen können, wann eine Zonenübertragung erforderlich ist. Bevorzugt sendet ''ns0'' hierzu eine NOTIFY-Benachrichtigung | ||
# ''ns0'' wird so konfiguriert, dass Zonenübertragungen (AXFR/IXFR) nach ''ns1'' zulässig sind | # ''ns0'' wird so konfiguriert, dass Zonenübertragungen (AXFR/IXFR) nach ''ns1'' zulässig sind | ||
==== Slave-Zone-Deklaration | === Zone-Deklaration === | ||
In der ''named''-Konfiguration ist für jede bereitgestellte Zone eine Zonendeklaration erforderlich | ; Slave-Zone-Deklaration | ||
In der ''named''-Konfiguration ist für jede bereitgestellte Zone eine Zonendeklaration erforderlich | |||
* Für ''ns1'' als Slave für die Zone ''example.com'' kann beispielsweise folgende Deklaration verwendet werden | |||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash" copy line> | ||
zone "example.com" { | zone "example.com" { | ||
type slave; | type slave; | ||
| Zeile 52: | Zeile 62: | ||
{| class="wikitable options big" | {| class="wikitable options big" | ||
! Parameter | ! Parameter | ||
! | ! Beschreibung | ||
|- | |- | ||
| type slave; | | type slave; | ||
| Legt fest, dass die Zonendaten von einem anderen Nameserver per Zonenübertragung bezogen werden | | Legt fest, dass die Zonendaten von einem anderen Nameserver per Zonenübertragung bezogen werden | ||
|- | |- | ||
| masters { 198.51.100.1; }; | | masters { 198.51.100.1; }; | ||
| Definiert eine Liste von Nameservern, von denen Zonendaten bezogen werden können | | Definiert eine Liste von Nameservern, von denen Zonendaten bezogen werden können | ||
* Ein Slave kann seine Daten auch von einem anderen Slave übernehmen.<br>Werden IP-Adressen und nicht Domainnamen angegeben | |||
|- | |- | ||
| file "/var/lib/bind/db.example.com"; | | file "/var/lib/bind/db.example.com"; | ||
| Gibt den Speicherort der lokalen Kopie der Zonendaten auf ''ns1'' an | | Gibt den Speicherort der lokalen Kopie der Zonendaten auf ''ns1'' an | ||
* Die Zonendatei für den Slave-Nameserver ist nicht obligatorisch, aber ohne sie verliert der untergeordnete Server beim Neustart den Inhalt der Zone | |||
|} | |} | ||
;Hinweis | ; Hinweis | ||
Es ist auch möglich, die Liste „masters“ im Voraus festzulegen. | |||
<syntaxhighlight lang=" | |||
<syntaxhighlight lang="bash" copy line> | |||
masters masterslist { | masters masterslist { | ||
192.0.2.10; # master1.example.com | 192.0.2.10; # master1.example.com | ||
| Zeile 74: | Zeile 87: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Danach muss diese Liste in der Anweisung ''masters'' bekannt gegeben werden | |||
<syntaxhighlight lang="bash" copy line> | |||
<syntaxhighlight lang=" | |||
zone "example.com" { | zone "example.com" { | ||
type slave; | type slave; | ||
| Zeile 84: | Zeile 96: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==== Benachrichtigungen von ns0 aktivieren | === Benachrichtigungen === | ||
; Benachrichtigungen von ns0 aktivieren | |||
; Zone-Übertragungsintervall | ; Zone-Übertragungsintervall | ||
Zeitpunkte für Zonenübertragungen lassen sich im Wesentlichen auf zwei Arten steuern | Zeitpunkte für Zonenübertragungen lassen sich im Wesentlichen auf zwei Arten steuern | ||
* regelmäßiges Abfragen (Polling) durch den Slave | * regelmäßiges Abfragen (Polling) durch den Slave | ||
* Benachrichtigung des Slave durch den Master, sobald sich die Zone geändert hat (NOTIFY) | * Benachrichtigung des Slave durch den Master, sobald sich die Zone geändert hat (NOTIFY) | ||
Die Benachrichtigung durch den Master ist in der Praxis schneller und ressourcenschonender | Die Benachrichtigung durch den Master ist in der Praxis schneller und ressourcenschonender | ||
; Einstellung NOTIFY | ; Einstellung NOTIFY | ||
BIND sendet standardmäßig NOTIFY-Benachrichtigungen | |||
* Wenn NOTIFY ein wesentlicher Bestandteil der Konfiguration ist, wird eine explizite Aktivierung empfohlen | |||
* Dies kann zonenweise erfolgen | |||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash" copy line> | ||
zone "example.com" { | zone "example.com" { | ||
type master; | type master; | ||
| Zeile 104: | Zeile 119: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
: oder global für alle Zonen | : oder global für alle Zonen | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash" copy line> | ||
options { | options { | ||
notify yes; | notify yes; | ||
| Zeile 113: | Zeile 128: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Einstellungen innerhalb einer Zonendeklaration haben Vorrang vor globalen Vorgaben in der Sektion ''options'' | ; Einstellungen innerhalb einer Zonendeklaration haben Vorrang vor globalen Vorgaben in der Sektion ''options'' | ||
Damit NOTIFY sinnvoll arbeitet, muss der Master wissen, welche Nameserver benachrichtigt werden sollen | Damit NOTIFY sinnvoll arbeitet, muss der Master wissen, welche Nameserver benachrichtigt werden sollen | ||
* Standardmäßig benachrichtigt BIND diejenigen Nameserver, für die ''NS''-Resource-Records existieren | |||
* Für zusätzliche Empfänger wird die Direktive ''also-notify'' verwendet | |||
* Diese kann für eine einzelne Zone gesetzt werden | |||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash" copy line> | ||
zone "example.com" { | zone "example.com" { | ||
type master; | type master; | ||
| Zeile 126: | Zeile 144: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
oder global | oder global | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash" copy line> | ||
options { | options { | ||
notify yes; | notify yes; | ||
| Zeile 136: | Zeile 154: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Wichtige Punkte im Überblick | Wichtige Punkte im Überblick | ||
* ''notify yes;'' aktiviert NOTIFY-Benachrichtigungen | * ''notify yes;'' aktiviert NOTIFY-Benachrichtigungen | ||
* ''also-notify { …; };'' ergänzt die Standardliste der Empfänger, die über ''NS''-Resource-Records definiert ist | * ''also-notify { …; };'' ergänzt die Standardliste der Empfänger, die über ''NS''-Resource-Records definiert ist | ||
* ''also-notify'' eignet sich insbesondere für Nameserver, die nicht im öffentlichen ''NS''-Satz der Zone aufgeführt werden sollen (z. B. versteckte Master oder zusätzliche Slaves) | * ''also-notify'' eignet sich insbesondere für Nameserver, die nicht im öffentlichen ''NS''-Satz der Zone aufgeführt werden sollen (z. B. versteckte Master oder zusätzliche Slaves) | ||
==== Zonenübertragungen auf ns0 erlauben | === Zonenübertragungen === | ||
; Zonenübertragungen auf ns0 erlauben | |||
* Es wird empfohlen, strengere Richtlinien anzuwenden | Standardmäßig erlaubt BIND Zonenübertragungen von beliebigen Adressen | ||
* Es wird empfohlen, strengere Richtlinien anzuwenden | |||
Die zugelassenen Empfänger werden mit der Direktive '''''allow-transfer''''' definiert | Die zugelassenen Empfänger werden mit der Direktive '''''allow-transfer''''' definiert | ||
* Dies kann für eine einzelne Zone erfolgen | |||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash" copy line> | ||
zone "example.com" { | zone "example.com" { | ||
type master; | type master; | ||
| Zeile 156: | Zeile 176: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
oder global für alle Zonen | oder global für alle Zonen | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash" highlight="" copy line> | ||
options { | options { | ||
notify yes; | notify yes; | ||
| Zeile 166: | Zeile 186: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Die Angabe ''allow-transfer { 203.0.113.1; };'' beschränkt Zonenübertragungen auf den Nameserver mit der IP-Adresse 203.0.113.1 | Die Angabe ''allow-transfer { 203.0.113.1; };'' beschränkt Zonenübertragungen auf den Nameserver mit der IP-Adresse 203.0.113.1 | ||
Wenn Zonenübertragungen nicht eingeschränkt werden sollen, kann dies explizit mit dem Schlüsselwort ''any'' ausgedrückt werden | Wenn Zonenübertragungen nicht eingeschränkt werden sollen, kann dies explizit mit dem Schlüsselwort ''any'' ausgedrückt werden | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash" highlight="" copy line> | ||
options { | options { | ||
notify yes; | notify yes; | ||
| Zeile 178: | Zeile 198: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
In diesem Fall sind Zonenübertragungen für beliebige Clients zulässig | In diesem Fall sind Zonenübertragungen für beliebige Clients zulässig | ||
* Ob dies sinnvoll ist, hängt von den Sicherheitsanforderungen der jeweiligen Umgebung ab | |||
Sie müssen den Bind-Dienst auf ns0 und ns1 nacheinander mit dem folgenden Befehl neu starten | === Neustart der Dienste === | ||
Sie müssen den Bind-Dienst auf ns0 und ns1 nacheinander mit dem folgenden Befehl neu starten | |||
<syntaxhighlight lang="bash" highlight="1" copy line> | <syntaxhighlight lang="bash" highlight="1" copy line> | ||
| Zeile 189: | Zeile 208: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == Test == | ||
=== | === Slave-Server === | ||
Die Funktionsfähigkeit von ''ns1'' lässt sich über eine SOA-Abfrage mit ''dig'' prüfen | Die Funktionsfähigkeit von ''ns1'' lässt sich über eine SOA-Abfrage mit ''dig'' prüfen | ||
<syntaxhighlight lang="bash" highlight="1" copy line> | <syntaxhighlight lang="bash" highlight="1" copy line> | ||
| Zeile 197: | Zeile 216: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Der Parameter ''+norecurs'' erzwingt eine nicht-rekursive Abfrage | Der Parameter ''+norecurs'' erzwingt eine nicht-rekursive Abfrage | ||
* Eine korrekte SOA-Antwort zeigt, dass der Server als autoritativer Nameserver antwortet | |||
* Das allein bestätigt jedoch nicht den Slave-Status, da die Daten aus einem Cache stammen können | |||
Zur Unterscheidung müssen die Flags im Header analysiert werden | Zur Unterscheidung müssen die Flags im Header analysiert werden | ||
<syntaxhighlight lang="console" line> | <syntaxhighlight lang="console" line> | ||
| Zeile 205: | Zeile 226: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Das relevante Flag ist ''aa'' | Das relevante Flag ist ''aa'' | ||
* Ist es gesetzt, stammt die Antwort aus der autoritativen Zone von ''ns1'' | |||
* Ein gesetztes ''aa'' zeigt damit in der Regel an, dass der Slave die Zone geladen hat | |||
=== Benachrichtigungen === | |||
Die erste Zonenübertragung erfolgt unabhängig von Benachrichtigungen, spätere Übertragungen benötigen jedoch funktionierendes NOTIFY (sofern kein Polling verwendet wird) | Die erste Zonenübertragung erfolgt unabhängig von Benachrichtigungen, spätere Übertragungen benötigen jedoch funktionierendes NOTIFY (sofern kein Polling verwendet wird) | ||
Für einen Test wird auf ''ns0'' die Seriennummer im SOA-Eintrag erhöht | Für einen Test wird auf ''ns0'' die Seriennummer im SOA-Eintrag erhöht | ||
<syntaxhighlight lang="ini" line> | <syntaxhighlight lang="ini" line> | ||
| Zeile 221: | Zeile 244: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Die Seriennummer wird beispielsweise auf 42 gesetzt | Die Seriennummer wird beispielsweise auf 42 gesetzt | ||
<syntaxhighlight lang="ini" line> | <syntaxhighlight lang="ini" line> | ||
| Zeile 232: | Zeile 255: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Anschließend wird die Konfiguration von ''named'' auf ''ns0'' neu geladen | Anschließend wird die Konfiguration von ''named'' auf ''ns0'' neu geladen | ||
* Nach dem Reload sendet ''ns0'' eine Benachrichtigung an ''ns1'' | |||
* Da die lokale Kopie auf ''ns1'' noch die ältere Seriennummer besitzt, sollte eine erneute Zonenübertragung ausgelöst werden | |||
Die erfolgreiche Replikation lässt sich erneut durch eine SOA-Abfrage prüfen | Die erfolgreiche Replikation lässt sich erneut durch eine SOA-Abfrage prüfen | ||
<syntaxhighlight lang="bash" highlight="1" copy line> | <syntaxhighlight lang="bash" highlight="1" copy line> | ||
| Zeile 240: | Zeile 265: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Erscheint die Seriennummer 42, wurde die Zone übertragen | Erscheint die Seriennummer 42, wurde die Zone übertragen | ||
<syntaxhighlight lang="console" line> | <syntaxhighlight lang="console" line> | ||
ANSWER SECTION | ANSWER SECTION | ||
example.com. 86400 IN SOA example.com. hostmaster.example.com. 42 28800 7200 604800 86400 | example.com. 86400 IN SOA example.com. hostmaster.example.com. 42 28800 7200 604800 86400 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* Für zusätzliche Sicherheit kann der Test mehrfach wiederholt werden | * Für zusätzliche Sicherheit kann der Test mehrfach wiederholt werden | ||
* Alternativ lässt sich der Ablauf über die Serverprotokolle nachvollziehen | * Alternativ lässt sich der Ablauf über die Serverprotokolle nachvollziehen | ||
<noinclude> | <noinclude> | ||
= Anhang = | |||
== Siehe auch == | |||
<div style="column-count:2"> | <div style="column-count:2"> | ||
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree> | <categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree> | ||
| Zeile 260: | Zeile 285: | ||
{{Special:PrefixIndex/{{BASEPAGENAME}}/}} | {{Special:PrefixIndex/{{BASEPAGENAME}}/}} | ||
== Dokumentation == | |||
<!-- | <!-- | ||
; Man-Page | ; Man-Page | ||
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)] | # [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)] | ||
; Info-Pages | ; Info-Pages | ||
--> | --> | ||
== Links == | |||
=== Projekt === | |||
=== Weblinks === | |||
[[Kategorie:BIND]] | [[Kategorie:BIND]] | ||
</noinclude> | </noinclude> | ||
Aktuelle Version vom 20. November 2025, 10:26 Uhr
BIND/Slave - Konfiguration eines DNS-Servers
Einleitung
Ein Nameserver mit BIND kann so konfiguriert werden, dass jede Zone entweder als Master- oder als Slave-Zone bereitgestellt wird
- Ein Slave erhält seine Kopie der Zonendaten per Zonenübertragung von einem anderen Nameserver
- Ein Master bezieht die Zonendaten aus einer unabhängigen Quelle und ist daher nicht auf andere Nameserver angewiesen
Für jede Zone wird der Betrieb von mindestens zwei Nameservern empfohlen
- Typischerweise existiert ein Master sowie ein oder zwei Slaves, die ihre Zonendaten vom Master übernehmen
Szenario
| Name | Beschreibung | |
|---|---|---|
| Zone | example.com | mit zwei Nameservern |
| Master | master.example.com | 192.168.0.100 |
| Slave | slave.example.com | 192.168.0.200 |
- Master für example.com konfiguriert
- Slave konfigurieren Zonendaten von master beziehen
- Auf beiden Nameservern läuft BIND Version 9
Dateispeicherorte
Debian-basiert
| Zweck | Pfad |
|---|---|
| Zonendeklarationen | /etc/bind/named.conf.local |
| Globale Optionen | /etc/bind/named.conf.options |
| Hauptdatei von BIND (nicht ändern) | /etc/bind/named.conf |
| Slave-Zonendateien (schreibbar für named) | /var/lib/bind |
| Protokollmeldungen | /var/log/daemon.log |
Vorgehen
Für den Betrieb von ns1 als Slave von ns0 sind drei Aspekte relevant
- ns1 wird als Slave-Nameserver für die Zone konfiguriert
- ns1 muss erkennen können, wann eine Zonenübertragung erforderlich ist. Bevorzugt sendet ns0 hierzu eine NOTIFY-Benachrichtigung
- ns0 wird so konfiguriert, dass Zonenübertragungen (AXFR/IXFR) nach ns1 zulässig sind
Zone-Deklaration
- Slave-Zone-Deklaration
In der named-Konfiguration ist für jede bereitgestellte Zone eine Zonendeklaration erforderlich
- Für ns1 als Slave für die Zone example.com kann beispielsweise folgende Deklaration verwendet werden
zone "example.com" {
type slave;
masters { 198.51.100.1; };
file "/var/lib/bind/db.example.com";
};
| Parameter | Beschreibung |
|---|---|
| type slave; | Legt fest, dass die Zonendaten von einem anderen Nameserver per Zonenübertragung bezogen werden |
| masters { 198.51.100.1; }; | Definiert eine Liste von Nameservern, von denen Zonendaten bezogen werden können
|
| file "/var/lib/bind/db.example.com"; | Gibt den Speicherort der lokalen Kopie der Zonendaten auf ns1 an
|
- Hinweis
Es ist auch möglich, die Liste „masters“ im Voraus festzulegen.
masters masterslist {
192.0.2.10; # master1.example.com
198.51.100.12; # master2.example.net
};
Danach muss diese Liste in der Anweisung masters bekannt gegeben werden
zone "example.com" {
type slave;
masters { masterslist; };
file "/var/lib/bind/db.example.com";
};
Benachrichtigungen
- Benachrichtigungen von ns0 aktivieren
- Zone-Übertragungsintervall
Zeitpunkte für Zonenübertragungen lassen sich im Wesentlichen auf zwei Arten steuern
- regelmäßiges Abfragen (Polling) durch den Slave
- Benachrichtigung des Slave durch den Master, sobald sich die Zone geändert hat (NOTIFY)
Die Benachrichtigung durch den Master ist in der Praxis schneller und ressourcenschonender
- Einstellung NOTIFY
BIND sendet standardmäßig NOTIFY-Benachrichtigungen
- Wenn NOTIFY ein wesentlicher Bestandteil der Konfiguration ist, wird eine explizite Aktivierung empfohlen
- Dies kann zonenweise erfolgen
zone "example.com" {
type master;
file "/var/lib/bind/db.example.com";
notify yes;
// …
};
- oder global für alle Zonen
options {
notify yes;
// …
};
- Einstellungen innerhalb einer Zonendeklaration haben Vorrang vor globalen Vorgaben in der Sektion options
Damit NOTIFY sinnvoll arbeitet, muss der Master wissen, welche Nameserver benachrichtigt werden sollen
- Standardmäßig benachrichtigt BIND diejenigen Nameserver, für die NS-Resource-Records existieren
- Für zusätzliche Empfänger wird die Direktive also-notify verwendet
- Diese kann für eine einzelne Zone gesetzt werden
zone "example.com" {
type master;
notify yes;
also-notify { 203.0.113.1; };
file "/var/lib/bind/db.example.com";
};
oder global
options {
notify yes;
also-notify { 203.0.113.1; };
// …
};
Wichtige Punkte im Überblick
- notify yes; aktiviert NOTIFY-Benachrichtigungen
- also-notify { …; }; ergänzt die Standardliste der Empfänger, die über NS-Resource-Records definiert ist
- also-notify eignet sich insbesondere für Nameserver, die nicht im öffentlichen NS-Satz der Zone aufgeführt werden sollen (z. B. versteckte Master oder zusätzliche Slaves)
Zonenübertragungen
- Zonenübertragungen auf ns0 erlauben
Standardmäßig erlaubt BIND Zonenübertragungen von beliebigen Adressen
- Es wird empfohlen, strengere Richtlinien anzuwenden
Die zugelassenen Empfänger werden mit der Direktive allow-transfer definiert
- Dies kann für eine einzelne Zone erfolgen
zone "example.com" {
type master;
notify yes;
allow-transfer { 203.0.113.1; };
file "/var/lib/bind/db.example.com";
};
oder global für alle Zonen
options {
notify yes;
allow-transfer { 203.0.113.1; };
// …
};
Die Angabe allow-transfer { 203.0.113.1; }; beschränkt Zonenübertragungen auf den Nameserver mit der IP-Adresse 203.0.113.1
Wenn Zonenübertragungen nicht eingeschränkt werden sollen, kann dies explizit mit dem Schlüsselwort any ausgedrückt werden
options {
notify yes;
allow-transfer { any; };
// …
};
In diesem Fall sind Zonenübertragungen für beliebige Clients zulässig
- Ob dies sinnvoll ist, hängt von den Sicherheitsanforderungen der jeweiligen Umgebung ab
Neustart der Dienste
Sie müssen den Bind-Dienst auf ns0 und ns1 nacheinander mit dem folgenden Befehl neu starten
rndc reload
Test
Slave-Server
Die Funktionsfähigkeit von ns1 lässt sich über eine SOA-Abfrage mit dig prüfen
dig @203.0.113.1 -t SOA example.com +norecurs
Der Parameter +norecurs erzwingt eine nicht-rekursive Abfrage
- Eine korrekte SOA-Antwort zeigt, dass der Server als autoritativer Nameserver antwortet
- Das allein bestätigt jedoch nicht den Slave-Status, da die Daten aus einem Cache stammen können
Zur Unterscheidung müssen die Flags im Header analysiert werden
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
Das relevante Flag ist aa
- Ist es gesetzt, stammt die Antwort aus der autoritativen Zone von ns1
- Ein gesetztes aa zeigt damit in der Regel an, dass der Slave die Zone geladen hat
Benachrichtigungen
Die erste Zonenübertragung erfolgt unabhängig von Benachrichtigungen, spätere Übertragungen benötigen jedoch funktionierendes NOTIFY (sofern kein Polling verwendet wird)
Für einen Test wird auf ns0 die Seriennummer im SOA-Eintrag erhöht
@ IN SOA example.com. hostmaster.example.com. (
41
8H
2H
1W
1D )
Die Seriennummer wird beispielsweise auf 42 gesetzt
@ IN SOA example.com. hostmaster.example.com. (
42
8H
2H
1W
1D )
Anschließend wird die Konfiguration von named auf ns0 neu geladen
- Nach dem Reload sendet ns0 eine Benachrichtigung an ns1
- Da die lokale Kopie auf ns1 noch die ältere Seriennummer besitzt, sollte eine erneute Zonenübertragung ausgelöst werden
Die erfolgreiche Replikation lässt sich erneut durch eine SOA-Abfrage prüfen
dig @203.0.113.1 -t SOA example.com +norecurs
Erscheint die Seriennummer 42, wurde die Zone übertragen
ANSWER SECTION
example.com. 86400 IN SOA example.com. hostmaster.example.com. 42 28800 7200 604800 86400
- Für zusätzliche Sicherheit kann der Test mehrfach wiederholt werden
- Alternativ lässt sich der Ablauf über die Serverprotokolle nachvollziehen
Anhang
Siehe auch
Dokumentation
Links
Projekt
Weblinks