Domain Name System/Server/Autoritative: Unterschied zwischen den Versionen
Erscheinungsbild
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 2: | Zeile 2: | ||
== Beschreibung == | == Beschreibung == | ||
'''Die Hauptaufgabe eines autoritativen Servers''': Speicherung und Veröffentlichung autoritativer Daten | '''Die Hauptaufgabe eines autoritativen Servers''': Speicherung und Veröffentlichung autoritativer Daten | ||
* Speichert eine oder mehrere DNS-Zonen. Quelle der autoritativen Daten für diese Zonen | * Speichert eine oder mehrere DNS-Zonen. Quelle der autoritativen Daten für diese Zonen | ||
;Abgrenzung zum Rekursiven Server | ;Abgrenzung zum Rekursiven Server | ||
* Der autoritative Server speichert keine Cache-Daten fremder Domains und greift nicht nach außen. | * Der autoritative Server speichert keine Cache-Daten fremder Domains und greift nicht nach außen. | ||
* Gibt nur Antworten für | * Gibt nur Antworten für eigene Zonen und Delegationen zurück. Für Namen außerhalb der Zuständigkeit erfolgt typischerweise ''REFUSED''. Negative Antworten innerhalb der autoritativen Zone sind ''NXDOMAIN'' oder ''NODATA''. | ||
* Der ausgehende Datenverkehr ist auf den Dienstverkehr beschränkt | * Der ausgehende Datenverkehr ist auf den Dienstverkehr beschränkt. ''AXFR/IXFR'' zum Master. ''NOTIFY'' zu den Slaves. | ||
* Führt keine Rekursion durch. | * Führt keine Rekursion durch. | ||
:* ''RD'' in der | :* Rekursion wird nicht durchgeführt, auch wenn ''RD=1'' gesetzt ist. | ||
:* ''RA'' in der Antwort = 0. | :* ''RD'' wird in der Antwort gespiegelt. | ||
:* ''RA'' in der Antwort = 0. | |||
== Funktionen == | |||
== Funktionen == | |||
=== Rollen === | |||
=== Rollen === | |||
==== Primary (Master) ==== | |||
* Einzige Quelle für Zonenänderungen. | ==== Primary (Master) ==== | ||
* Verwaltet den beschreibbaren Speicher/das Repository. | * Einzige Quelle für Zonenänderungen. | ||
* Kann „versteckt” (hidden primary) sein und nicht im NS veröffentlicht werden. | * Verwaltet den beschreibbaren Speicher/das Repository. | ||
* Erhöht die SOA-Serial bei jeder Änderung. Hält Journale für IXFR. Fällt bei Bedarf auf AXFR zurück. | * Kann „versteckt” (hidden primary) sein und nicht im NS veröffentlicht werden. | ||
* Versendet NOTIFY an Secondaries. Pflegt die Empfängerliste. | * Erhöht die SOA-Serial bei jeder Änderung. Hält Journale für IXFR. Fällt bei Bedarf auf AXFR zurück. | ||
* Kein Rekursivmodus. | * Versendet NOTIFY an Secondaries. Pflegt die Empfängerliste. | ||
* In [[BIND]] kann derselbe Server zwar auch rekursiv agieren, jedoch gilt dies als getrennte Funktionsebene | * Kein Rekursivmodus. | ||
* In [[BIND]] kann derselbe Server zwar auch rekursiv agieren, jedoch gilt dies als getrennte Funktionsebene | |||
; Hidden Primary | |||
* Der primäre Server ist innerhalb der Infrastruktur versteckt, z. B. hinter einer Firewall. | ; Hidden Primary | ||
* Der Secondary-DNS-Server bedient alle DNS-Anfragen wie der Primary-Server und erhält weiterhin alle DNS-Eintrag-Updates vom primären DNS-Server. | * Der primäre Server ist innerhalb der Infrastruktur versteckt, z. B. hinter einer Firewall. | ||
* Diese Konfiguration wird ausschließlich zur Erhöhung der Sicherheit verwendet. | * Der Secondary-DNS-Server bedient alle DNS-Anfragen wie der Primary-Server und erhält weiterhin alle DNS-Eintrag-Updates vom primären DNS-Server. | ||
* Diese Konfiguration wird ausschließlich zur Erhöhung der Sicherheit verwendet. | |||
==== Secondary (Slave) ==== | |||
* Nur lesbare Replikate. | ==== Secondary (Slave) ==== | ||
* Erhalten Änderungen über AXFR/IXFR. Initiierung über NOTIFY. | * Nur lesbare Replikate. | ||
* Authentifizierung über TSIG. | * Erhalten Änderungen über AXFR/IXFR. Initiierung über NOTIFY. | ||
* Authentifizierung über TSIG. | |||
; Multi-Primary | |||
* Mehrere Primäre für hohe Verfügbarkeit. | ; Multi-Primary | ||
* Synchronisierung von Serien und Schlüsseln erforderlich. | * Mehrere Primäre für hohe Verfügbarkeit. | ||
* Synchronisierung von Serien und Schlüsseln erforderlich. | |||
; Nur autoritativ | |||
Server, bei dem die Rekursion deaktiviert ist. | ; Nur autoritativ | ||
Server, bei dem die Rekursion deaktiviert ist. | |||
=== Speicherung von DNS-Einträgen === | |||
=== Speicherung von DNS-Einträgen === | |||
; Ablageformen | |||
; Ablageformen | |||
; RRset-Semantik | |||
; RRset-Semantik | |||
; Dynamische Updates (DDNS, RFC 2136) | |||
; Dynamische Updates (DDNS, RFC 2136) | |||
=== Verarbeitung von DNS-Anfragen === | |||
=== Verarbeitung von DNS-Anfragen === | |||
=== Aktualisierung von Informationen === | |||
=== Aktualisierung von Informationen === | |||
==== Replikation von Zonen ==== | |||
==== Replikation von Zonen ==== | |||
Abgestimmtes Kopieren (Replikation) der Zone vom Primärserver auf die Sekundärserver. | |||
Abgestimmtes Kopieren (Replikation) der Zone vom Primärserver auf die Sekundärserver. | |||
* Änderungen an der Zone werden auf dem Primary persistiert. Die SOA-Serial wird erhöht | |||
* Der Primary informiert autorisierte Secondaries per NOTIFY (optional TSIG) | * Änderungen an der Zone werden auf dem Primary persistiert. Die SOA-Serial wird erhöht | ||
* Secondaries prüfen Absender/TSIG, holen die SOA vom Primary und vergleichen die Serial | * Der Primary informiert autorisierte Secondaries per NOTIFY (optional TSIG) | ||
* Bei älterer Kopie fordert der Secondary eine Übertragung an: | * Secondaries prüfen Absender/TSIG, holen die SOA vom Primary und vergleichen die Serial | ||
:* IXFR, wenn Journale/Deltas verfügbar sind. Der Secondary übermittelt seine bekannte Serial. | * Bei älterer Kopie fordert der Secondary eine Übertragung an: | ||
:* AXFR als Fallback, wenn kein passendes Journal vorhanden ist, das Delta zu groß ist oder IXFR nicht unterstützt wird. | :* IXFR, wenn Journale/Deltas verfügbar sind. Der Secondary übermittelt seine bekannte Serial. | ||
* Ohne NOTIFY erfolgt die Aktualitätsprüfung nach den SOA-Timern: | :* AXFR als Fallback, wenn kein passendes Journal vorhanden ist, das Delta zu groß ist oder IXFR nicht unterstützt wird. | ||
:* refresh: Zeitpunkt der nächsten planmäßigen Prüfung beim Primary. | * Ohne NOTIFY erfolgt die Aktualitätsprüfung nach den SOA-Timern: | ||
:* retry: Intervall für Wiederholungen, falls die Prüfung fehlschlägt. | :* refresh: Zeitpunkt der nächsten planmäßigen Prüfung beim Primary. | ||
:* expire: maximale Gültigkeitsdauer. Nach Ablauf wird die Zone nicht mehr ausgeliefert. | :* retry: Intervall für Wiederholungen, falls die Prüfung fehlschlägt. | ||
:* expire: maximale Gültigkeitsdauer. Nach Ablauf wird die Zone nicht mehr ausgeliefert. | |||
; SOA serial number | |||
; SOA serial number | |||
* Eindeutige Versionsnummer der DNS-Zone | |||
* Erhöht sich bei jeder Änderung der DNS-Zone | * Eindeutige Versionsnummer der DNS-Zone | ||
* Erhöht sich bei jeder Änderung der DNS-Zone | |||
; AXFR (RFC 5936) | |||
; AXFR (RFC 5936) | |||
* Vollständige Replikation der Zone | |||
* Funktioniert über TCP | * Vollständige Replikation der Zone | ||
* Wird für die Erstbefüllung verwendet oder wenn IXFR nicht möglich ist | * Funktioniert über TCP | ||
* Enthält alle Ressourcensätze der Zone | * Wird für die Erstbefüllung verwendet oder wenn IXFR nicht möglich ist | ||
* Enthält alle Ressourcensätze der Zone | |||
; IXFR (RFC 1995) | |||
* Inkrementeller Transfer | ; IXFR (RFC 1995) | ||
* | * Inkrementeller Transfer | ||
* Erfolgt typischerweise über TCP. UDP ist nur praktikabel, wenn die Antwort in eine einzelne UDP-Nachricht passt. Bei zu großer Antwort wird auf TCP gewechselt. | |||
* Voraussetzung: Primary führt Journale. Secondary meldet seine letzte Serial | |||
; NOTIFY (RFC 1996) | |||
* Aktiv-Signal vom Primary an Secondaries | ; NOTIFY (RFC 1996) | ||
* Funktioniert über UDP | * Aktiv-Signal vom Primary an Secondaries | ||
* Meldet, dass sich die Zone geändert hat | * Funktioniert über UDP | ||
* Empfänger prüft per SOA-Query die Serial | * Meldet, dass sich die Zone geändert hat | ||
* Verhindert lange Refresh-Intervalle | * Empfänger prüft per SOA-Query die Serial | ||
* Verhindert lange Refresh-Intervalle | |||
; TSIG (Transaction SIGnature) | |||
; TSIG (Transaction SIGnature) | |||
* Protokoll zur Gewährleistung der Sicherheit und Authentifizierung von Daten im DNS | |||
* Fügt Nachrichten eine digitale Signatur hinzu | * Protokoll zur Gewährleistung der Sicherheit und Authentifizierung von Daten im DNS | ||
* Verwendet eine kryptografische Signatur auf Basis eines geheimen Schlüssels, der sowohl dem sendenden als auch dem empfangenden Server bekannt ist | * Fügt Nachrichten eine digitale Signatur hinzu | ||
* Das TSIG-Protokoll wird von allen gängigen DNS-Servern unterstützt: | * Verwendet eine kryptografische Signatur auf Basis eines geheimen Schlüssels, der sowohl dem sendenden als auch dem empfangenden Server bekannt ist | ||
NSD, PowerDNS, Knot und BIND. | * Das TSIG-Protokoll wird von allen gängigen DNS-Servern unterstützt: | ||
NSD, PowerDNS, Knot und BIND. | |||
; Protokollierung | |||
; Protokollierung | |||
=== DNS-Zone === | |||
=== DNS-Zone === | |||
==== Namensraum und Delegation ==== | |||
==== Namensraum und Delegation ==== | |||
'''Eine DNS-Zone''' ist die Verwaltungseinheit für einen zusammenhängenden Teil des DNS-Namensraums. Sie definiert, für welche Namen ein autoritativer Server zuständig ist und autoritative Antworten liefern kann. | |||
'''Eine DNS-Zone''' ist die Verwaltungseinheit für einen zusammenhängenden Teil des DNS-Namensraums. Sie definiert, für welche Namen ein autoritativer Server zuständig ist und autoritative Antworten liefern kann. | |||
* Eine Zone wird durch eine eigene ''SOA''- und ''NS''-Ressourcensatzgruppe beschrieben. | |||
* Die Grenze einer Zone wird durch Delegationen markiert: | * Eine Zone wird durch eine eigene ''SOA''- und ''NS''-Ressourcensatzgruppe beschrieben. | ||
** In der übergeordneten Zone existieren nur die ''NS''-Records der Child-Zone sowie ggf. Glue-Records (''A/AAAA'') für deren Nameserver. | * Die Grenze einer Zone wird durch Delegationen markiert: | ||
** Die eigentlichen Daten der Child-Zone werden ausschließlich in der Zone der Child-Zone geführt. | ** In der übergeordneten Zone existieren nur die ''NS''-Records der Child-Zone sowie ggf. Glue-Records (''A/AAAA'') für deren Nameserver. | ||
* Für alle Namen innerhalb der Zone, die nicht in eine Subzone delegiert sind, liefert der autoritative Server Daten oder negative Antworten (''NXDOMAIN''/''NODATA'') mit gesetztem ''AA''-Flag. | ** Die eigentlichen Daten der Child-Zone werden ausschließlich in der Zone der Child-Zone geführt. | ||
* Ein Nameserver kann mehrere Zonen bedienen. Bei der Anfrageverarbeitung wird immer die Zone mit dem längsten passenden Suffix ausgewählt (Longest-Match-Regel), z.B. für ''www.sub.example.com.'': | * Für alle Namen innerhalb der Zone, die nicht in eine Subzone delegiert sind, liefert der autoritative Server Daten oder negative Antworten (''NXDOMAIN''/''NODATA'') mit gesetztem ''AA''-Flag. | ||
** existieren die Zonen ''example.com.'' und ''sub.example.com.'', ist ''sub.example.com.'' zuständig. | * Ein Nameserver kann mehrere Zonen bedienen. Bei der Anfrageverarbeitung wird immer die Zone mit dem längsten passenden Suffix ausgewählt (Longest-Match-Regel), z.B. für ''www.sub.example.com.'': | ||
** existiert nur ''example.com.'', beantwortet diese Zone die Anfrage oder liefert ''NXDOMAIN''/''NODATA''. | ** existieren die Zonen ''example.com.'' und ''sub.example.com.'', ist ''sub.example.com.'' zuständig. | ||
** existiert nur ''example.com.'', beantwortet diese Zone die Anfrage oder liefert ''NXDOMAIN''/''NODATA''. | |||
Begrifflich ist zu unterscheiden: | |||
Begrifflich ist zu unterscheiden: | |||
* ''Domain'': Knoten oder Teilbaum im hierarchischen Namensraum. | |||
* ''Zone'': tatsächlich verwalteter Ausschnitt mit eigener ''SOA'' und ''NS''-Satz. Eine Zone kann eine oder mehrere Domains umfassen. | * ''Domain'': Knoten oder Teilbaum im hierarchischen Namensraum. | ||
* ''Zone'': tatsächlich verwalteter Ausschnitt mit eigener ''SOA'' und ''NS''-Satz. Eine Zone kann eine oder mehrere Domains umfassen. | |||
==== SOA ==== | |||
Der SOA-Record markiert den Beginn der Zone (Zonenapex) und enthält Verwaltungsinformationen für Zonentransfers und Caching. | ==== SOA ==== | ||
* Es gibt genau einen SOA-Record pro Zone. Sein Name entspricht dem Zonenapex (z. B. ''example.com.'') | Der SOA-Record markiert den Beginn der Zone (Zonenapex) und enthält Verwaltungsinformationen für Zonentransfers und Caching. | ||
* Typischer Aufbau (bind9): | * Es gibt genau einen SOA-Record pro Zone. Sein Name entspricht dem Zonenapex (z. B. ''example.com.'') | ||
<syntaxhighlight lang="ini" highlight="" line> | * Typischer Aufbau (bind9): | ||
example.com. 3600 IN SOA ns1.example.com. hostmaster.example.com. ( | <syntaxhighlight lang="ini" highlight="" line> | ||
2025112101 ; Serial | example.com. 3600 IN SOA ns1.example.com. hostmaster.example.com. ( | ||
7200 ; Refresh | 2025112101 ; Serial | ||
3600 ; Retry | 7200 ; Refresh | ||
1209600 ; Expire | 3600 ; Retry | ||
3600 ; Minimum / Negative TTL | 1209600 ; Expire | ||
) | 3600 ; Minimum / Negative TTL | ||
</syntaxhighlight> | ) | ||
{| class="wikitable options big" | </syntaxhighlight> | ||
! Feld | {| class="wikitable options big" | ||
! Wert | ! Feld | ||
! Beschreibung | ! Wert | ||
|- | ! Beschreibung | ||
| Name (Owner) | |- | ||
| ''example.com.'' | | Name (Owner) | ||
| Zonenapex (Wurzel) der Zone, zu der der SOA-Eintrag gehört. | | ''example.com.'' | ||
|- | | Zonenapex (Wurzel) der Zone, zu der der SOA-Eintrag gehört. | ||
| TTL | |- | ||
| ''3600'' | | TTL | ||
| Lebensdauer des SOA-Eintrags im Cache in Sekunden. | | ''3600'' | ||
|- | | Lebensdauer des SOA-Eintrags im Cache in Sekunden. | ||
| Klasse | |- | ||
| ''IN'' | | Klasse | ||
| Protokollklasse. Für das Internet immer ''IN''. | | ''IN'' | ||
|- | | Protokollklasse. Für das Internet immer ''IN''. | ||
| Typ | |- | ||
| ''SOA'' | | Typ | ||
| Record-Typ. ''Start of Authority'', Beginn der Zone und ihre Metadaten. | | ''SOA'' | ||
|- | | Record-Typ. ''Start of Authority'', Beginn der Zone und ihre Metadaten. | ||
| MNAME | |- | ||
| ''ns1.example.com.'' | | MNAME | ||
| Name des primären autoritativen Nameservers für die Zone. | | ''ns1.example.com.'' | ||
|- | | Name des primären autoritativen Nameservers für die Zone. | ||
| RNAME | |- | ||
| ''hostmaster.example.com.'' | | RNAME | ||
| Kontaktadresse des Zonenadministrators als Mailadresse mit Punkt statt ''@''. | | ''hostmaster.example.com.'' | ||
|- | | Kontaktadresse des Zonenadministrators als Mailadresse mit Punkt statt ''@''. | ||
| Serial | |- | ||
| ''2025112101'' | | Serial | ||
| Seriennummer der Zone. Wird bei jeder inhaltlichen Änderung erhöht und von Secondary-Servern zum Versionsvergleich verwendet. Häufig wird das Format YYYYMMDDNN verwendet, wobei NN die Änderungsnummer für den heutigen Tag ist. | | ''2025112101'' | ||
|- | | Seriennummer der Zone. Wird bei jeder inhaltlichen Änderung erhöht und von Secondary-Servern zum Versionsvergleich verwendet. Häufig wird das Format YYYYMMDDNN verwendet, wobei NN die Änderungsnummer für den heutigen Tag ist. | ||
| Refresh | |- | ||
| ''7200'' | | Refresh | ||
| Intervall in Sekunden, nach dem ein Secondary den SOA des Masters erneut abfragen soll. | | ''7200'' | ||
|- | | Intervall in Sekunden, nach dem ein Secondary den SOA des Masters erneut abfragen soll. | ||
| Retry | |- | ||
| ''3600'' | | Retry | ||
| Wartezeit in Sekunden, bevor ein fehlgeschlagener Refresh zum Master erneut versucht wird. | | ''3600'' | ||
|- | | Wartezeit in Sekunden, bevor ein fehlgeschlagener Refresh zum Master erneut versucht wird. | ||
| Expire | |- | ||
| ''1209600'' | | Expire | ||
| Maximale Zeit in Sekunden, während der ein Secondary alte Zonendaten verwenden darf, wenn der Master nicht erreichbar ist. Nach Ablauf gilt die Zone als ungültig. | | ''1209600'' | ||
|- | | Maximale Zeit in Sekunden, während der ein Secondary alte Zonendaten verwenden darf, wenn der Master nicht erreichbar ist. Nach Ablauf gilt die Zone als ungültig. | ||
| Negative TTL | |- | ||
| ''3600'' | | Negative TTL | ||
| Maximale Dauer in Sekunden, für die negative Antworten ''NXDOMAIN''/''NODATA'' gecacht werden dürfen gemäß RFC 2308. Wird als Minimum aus diesem Wert und der TTL des SOA-Records verwendet. | | ''3600'' | ||
|} | | Maximale Dauer in Sekunden, für die negative Antworten ''NXDOMAIN''/''NODATA'' gecacht werden dürfen gemäß RFC 2308. Wird als Minimum aus diesem Wert und der TTL des SOA-Records verwendet. | ||
|} | |||
;Hinweis | |||
: In der Zonendatei werden die Zeitwerte intern immer in Sekunden gespeichert und im Protokoll auch so übertragen. | ;Hinweis | ||
:* Für die Lesbarkeit können die Felder wie ''Refresh'', ''Retry'', ''Expire'', ''Minimum/Negative TTL'' sowie die allgemeine ''$TTL'' aber mit Zeiteinheiten angegeben werden, z. B. ''3600'', ''1h'', ''60m'', ''1d'' oder ''2w''. | : In der Zonendatei werden die Zeitwerte intern immer in Sekunden gespeichert und im Protokoll auch so übertragen. | ||
:* Der Nameserver rechnet diese Angaben beim Einlesen der Zone automatisch in Sekunden um. | :* Für die Lesbarkeit können die Felder wie ''Refresh'', ''Retry'', ''Expire'', ''Minimum/Negative TTL'' sowie die allgemeine ''$TTL'' aber mit Zeiteinheiten angegeben werden, z. B. ''3600'', ''1h'', ''60m'', ''1d'' oder ''2w''. | ||
:* Der Nameserver rechnet diese Angaben beim Einlesen der Zone automatisch in Sekunden um. | |||
==== NS ==== | |||
==== NS ==== | |||
; Negative Caching (RFC 2308) | |||
; Negative Caching (RFC 2308) | |||
=== Transport === | |||
=== Transport === | |||
==== UDP ==== | |||
==== UDP ==== | |||
==== TCP ==== | |||
==== TCP ==== | |||
=== DNSSEC === | === DNSSEC === | ||
; KSK,ZSK | ; KSK,ZSK | ||
; CSK | ; CSK | ||
; NSEC, NSEC3 | ; NSEC, NSEC3 | ||
=== Negative Antworten === | === Negative Antworten === | ||
=== NXDOMAIN === | === NXDOMAIN === | ||
=== NOERROR === | === NOERROR === | ||
=== NODATA === | === NODATA === | ||
;SOA.MINIMUM | ;SOA.MINIMUM | ||
;TTL | ;TTL | ||
<noinclude> | <noinclude> | ||
== Anhang == | == Anhang == | ||
Version vom 15. Dezember 2025, 17:05 Uhr
Domain Name System/Server/Autoritative - Autoritativer Server
Beschreibung
Die Hauptaufgabe eines autoritativen Servers: Speicherung und Veröffentlichung autoritativer Daten
- Speichert eine oder mehrere DNS-Zonen. Quelle der autoritativen Daten für diese Zonen
- Abgrenzung zum Rekursiven Server
- Der autoritative Server speichert keine Cache-Daten fremder Domains und greift nicht nach außen.
- Gibt nur Antworten für eigene Zonen und Delegationen zurück. Für Namen außerhalb der Zuständigkeit erfolgt typischerweise REFUSED. Negative Antworten innerhalb der autoritativen Zone sind NXDOMAIN oder NODATA.
- Der ausgehende Datenverkehr ist auf den Dienstverkehr beschränkt. AXFR/IXFR zum Master. NOTIFY zu den Slaves.
- Führt keine Rekursion durch.
- Rekursion wird nicht durchgeführt, auch wenn RD=1 gesetzt ist.
- RD wird in der Antwort gespiegelt.
- RA in der Antwort = 0.
Funktionen
Rollen
Primary (Master)
- Einzige Quelle für Zonenänderungen.
- Verwaltet den beschreibbaren Speicher/das Repository.
- Kann „versteckt” (hidden primary) sein und nicht im NS veröffentlicht werden.
- Erhöht die SOA-Serial bei jeder Änderung. Hält Journale für IXFR. Fällt bei Bedarf auf AXFR zurück.
- Versendet NOTIFY an Secondaries. Pflegt die Empfängerliste.
- Kein Rekursivmodus.
- In BIND kann derselbe Server zwar auch rekursiv agieren, jedoch gilt dies als getrennte Funktionsebene
- Hidden Primary
- Der primäre Server ist innerhalb der Infrastruktur versteckt, z. B. hinter einer Firewall.
- Der Secondary-DNS-Server bedient alle DNS-Anfragen wie der Primary-Server und erhält weiterhin alle DNS-Eintrag-Updates vom primären DNS-Server.
- Diese Konfiguration wird ausschließlich zur Erhöhung der Sicherheit verwendet.
Secondary (Slave)
- Nur lesbare Replikate.
- Erhalten Änderungen über AXFR/IXFR. Initiierung über NOTIFY.
- Authentifizierung über TSIG.
- Multi-Primary
- Mehrere Primäre für hohe Verfügbarkeit.
- Synchronisierung von Serien und Schlüsseln erforderlich.
- Nur autoritativ
Server, bei dem die Rekursion deaktiviert ist.
Speicherung von DNS-Einträgen
- Ablageformen
- RRset-Semantik
- Dynamische Updates (DDNS, RFC 2136)
Verarbeitung von DNS-Anfragen
Aktualisierung von Informationen
Replikation von Zonen
Abgestimmtes Kopieren (Replikation) der Zone vom Primärserver auf die Sekundärserver.
- Änderungen an der Zone werden auf dem Primary persistiert. Die SOA-Serial wird erhöht
- Der Primary informiert autorisierte Secondaries per NOTIFY (optional TSIG)
- Secondaries prüfen Absender/TSIG, holen die SOA vom Primary und vergleichen die Serial
- Bei älterer Kopie fordert der Secondary eine Übertragung an:
- IXFR, wenn Journale/Deltas verfügbar sind. Der Secondary übermittelt seine bekannte Serial.
- AXFR als Fallback, wenn kein passendes Journal vorhanden ist, das Delta zu groß ist oder IXFR nicht unterstützt wird.
- Ohne NOTIFY erfolgt die Aktualitätsprüfung nach den SOA-Timern:
- refresh: Zeitpunkt der nächsten planmäßigen Prüfung beim Primary.
- retry: Intervall für Wiederholungen, falls die Prüfung fehlschlägt.
- expire: maximale Gültigkeitsdauer. Nach Ablauf wird die Zone nicht mehr ausgeliefert.
- SOA serial number
- Eindeutige Versionsnummer der DNS-Zone
- Erhöht sich bei jeder Änderung der DNS-Zone
- AXFR (RFC 5936)
- Vollständige Replikation der Zone
- Funktioniert über TCP
- Wird für die Erstbefüllung verwendet oder wenn IXFR nicht möglich ist
- Enthält alle Ressourcensätze der Zone
- IXFR (RFC 1995)
- Inkrementeller Transfer
- Erfolgt typischerweise über TCP. UDP ist nur praktikabel, wenn die Antwort in eine einzelne UDP-Nachricht passt. Bei zu großer Antwort wird auf TCP gewechselt.
- Voraussetzung: Primary führt Journale. Secondary meldet seine letzte Serial
- NOTIFY (RFC 1996)
- Aktiv-Signal vom Primary an Secondaries
- Funktioniert über UDP
- Meldet, dass sich die Zone geändert hat
- Empfänger prüft per SOA-Query die Serial
- Verhindert lange Refresh-Intervalle
- TSIG (Transaction SIGnature)
- Protokoll zur Gewährleistung der Sicherheit und Authentifizierung von Daten im DNS
- Fügt Nachrichten eine digitale Signatur hinzu
- Verwendet eine kryptografische Signatur auf Basis eines geheimen Schlüssels, der sowohl dem sendenden als auch dem empfangenden Server bekannt ist
- Das TSIG-Protokoll wird von allen gängigen DNS-Servern unterstützt:
NSD, PowerDNS, Knot und BIND.
- Protokollierung
DNS-Zone
Namensraum und Delegation
Eine DNS-Zone ist die Verwaltungseinheit für einen zusammenhängenden Teil des DNS-Namensraums. Sie definiert, für welche Namen ein autoritativer Server zuständig ist und autoritative Antworten liefern kann.
- Eine Zone wird durch eine eigene SOA- und NS-Ressourcensatzgruppe beschrieben.
- Die Grenze einer Zone wird durch Delegationen markiert:
- In der übergeordneten Zone existieren nur die NS-Records der Child-Zone sowie ggf. Glue-Records (A/AAAA) für deren Nameserver.
- Die eigentlichen Daten der Child-Zone werden ausschließlich in der Zone der Child-Zone geführt.
- Für alle Namen innerhalb der Zone, die nicht in eine Subzone delegiert sind, liefert der autoritative Server Daten oder negative Antworten (NXDOMAIN/NODATA) mit gesetztem AA-Flag.
- Ein Nameserver kann mehrere Zonen bedienen. Bei der Anfrageverarbeitung wird immer die Zone mit dem längsten passenden Suffix ausgewählt (Longest-Match-Regel), z.B. für www.sub.example.com.:
- existieren die Zonen example.com. und sub.example.com., ist sub.example.com. zuständig.
- existiert nur example.com., beantwortet diese Zone die Anfrage oder liefert NXDOMAIN/NODATA.
Begrifflich ist zu unterscheiden:
- Domain: Knoten oder Teilbaum im hierarchischen Namensraum.
- Zone: tatsächlich verwalteter Ausschnitt mit eigener SOA und NS-Satz. Eine Zone kann eine oder mehrere Domains umfassen.
SOA
Der SOA-Record markiert den Beginn der Zone (Zonenapex) und enthält Verwaltungsinformationen für Zonentransfers und Caching.
- Es gibt genau einen SOA-Record pro Zone. Sein Name entspricht dem Zonenapex (z. B. example.com.)
- Typischer Aufbau (bind9):
example.com. 3600 IN SOA ns1.example.com. hostmaster.example.com. (
2025112101 ; Serial
7200 ; Refresh
3600 ; Retry
1209600 ; Expire
3600 ; Minimum / Negative TTL
)
| Feld | Wert | Beschreibung |
|---|---|---|
| Name (Owner) | example.com. | Zonenapex (Wurzel) der Zone, zu der der SOA-Eintrag gehört. |
| TTL | 3600 | Lebensdauer des SOA-Eintrags im Cache in Sekunden. |
| Klasse | IN | Protokollklasse. Für das Internet immer IN. |
| Typ | SOA | Record-Typ. Start of Authority, Beginn der Zone und ihre Metadaten. |
| MNAME | ns1.example.com. | Name des primären autoritativen Nameservers für die Zone. |
| RNAME | hostmaster.example.com. | Kontaktadresse des Zonenadministrators als Mailadresse mit Punkt statt @. |
| Serial | 2025112101 | Seriennummer der Zone. Wird bei jeder inhaltlichen Änderung erhöht und von Secondary-Servern zum Versionsvergleich verwendet. Häufig wird das Format YYYYMMDDNN verwendet, wobei NN die Änderungsnummer für den heutigen Tag ist. |
| Refresh | 7200 | Intervall in Sekunden, nach dem ein Secondary den SOA des Masters erneut abfragen soll. |
| Retry | 3600 | Wartezeit in Sekunden, bevor ein fehlgeschlagener Refresh zum Master erneut versucht wird. |
| Expire | 1209600 | Maximale Zeit in Sekunden, während der ein Secondary alte Zonendaten verwenden darf, wenn der Master nicht erreichbar ist. Nach Ablauf gilt die Zone als ungültig. |
| Negative TTL | 3600 | Maximale Dauer in Sekunden, für die negative Antworten NXDOMAIN/NODATA gecacht werden dürfen gemäß RFC 2308. Wird als Minimum aus diesem Wert und der TTL des SOA-Records verwendet. |
- Hinweis
- In der Zonendatei werden die Zeitwerte intern immer in Sekunden gespeichert und im Protokoll auch so übertragen.
- Für die Lesbarkeit können die Felder wie Refresh, Retry, Expire, Minimum/Negative TTL sowie die allgemeine $TTL aber mit Zeiteinheiten angegeben werden, z. B. 3600, 1h, 60m, 1d oder 2w.
- Der Nameserver rechnet diese Angaben beim Einlesen der Zone automatisch in Sekunden um.
NS
- Negative Caching (RFC 2308)
Transport
UDP
TCP
DNSSEC
- KSK,ZSK
- CSK
- NSEC, NSEC3
Negative Antworten
NXDOMAIN
NOERROR
NODATA
- SOA.MINIMUM
- TTL
Anhang
Siehe auch