Was ist eine DNS-Zone?
Eine DNS-Zone ist ein bestimmter Bereich des DNS-Namespace, der von einer spezifischen Organisation oder einem Administrator verwaltet wird. Eine Zone enthält DNS-Datensätze für eine oder mehrere Domains und wird von Authoritative Nameservern bedient. Während eine Domain ein Name in der DNS-Struktur ist, ist eine Zone eine administrative Grenze, die definiert, welche Nameserver für das Beantworten von Abfragen verantwortlich sind.
Domain und Zone im Vergleich
Die Unterscheidung zu verstehen ist entscheidend:
Domain
Eine Domain ist ein Name in der DNS-Hierarchie:
example.com (domain)
└── www.example.com (subdomain)
└── blog.example.com (subdomain)
└── api.example.com (subdomain)
Zone
Eine Zone ist administrative Kontrolle über Datensätze:
Single Zone für Domain und Subdomains:example.com zone contains:
- example.com
- www.example.com
- blog.example.com
- api.example.com
Managed by: ns1.example.com, ns2.example.com
Delegierte Subdomain-Zone:
example.com zone contains:
- example.com
- www.example.com
- Delegation: api.example.com → different nameservers
api.example.com zone (separate) contains:
- api.example.com
- v1.api.example.com
- v2.api.example.com
Managed by: ns1.apihost.com, ns2.apihost.com
Zone-Komponenten
Zone-Datei
Eine Textdatei mit allen DNS-Datensätzen für eine Zone:
; example.com zone file
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
2024010101 ; Serial
7200 ; Refresh
3600 ; Retry
1209600 ; Expire
3600 ; Minimum TTL
)
; Nameserver records
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
; A records
@ IN A 203.0.113.50
www IN A 203.0.113.50
blog IN A 203.0.113.51
; MX records
@ IN MX 10 mail.example.com.
mail IN A 203.0.113.52
; CNAME records
ftp IN CNAME www.example.com.
; TXT records
@ IN TXT "v=spf1 include:_spf.google.com ~all"
SOA-Datensatz (Start of Authority)
Jede Zone muss genau einen SOA-Datensatz haben:
example.com. IN SOA ns1.example.com. admin.example.com. (
2024010101 ; Serial
7200 ; Refresh
3600 ; Retry
1209600 ; Expire
3600 ; Minimum TTL
)
SOA-Felder:
| Feld | Zweck | Beispielwert |
|---|---|---|
| Primary NS | Master-Nameserver | ns1.example.com |
| Admin-E-Mail | Kontakt (@ → .) | admin.example.com ([email protected]) |
| Serial | Zone-Versionsnummer | 2024010101 |
| Refresh | Sekundärer NS Prüfintervall | 7.200 s (2 Stunden) |
| Retry | Wiederholungsintervall bei Fehler | 3.600 s (1 Stunde) |
| Expire | Sekundärer NS gibt auf nach | 1.209.600 s (14 Tage) |
| Minimum TTL | Negatives Caching Dauer | 3.600 s (1 Stunde) |
NS-Datensätze (Nameserver)
Bestimmt, welche Server Authoritative für die Zone sind:
example.com. IN NS ns1.example.com.
example.com. IN NS ns2.example.com.
Diese teilen der Welt mit, welche Server für Datensätze dieser Zone abzufragen sind.
Zone-Typen
Primäre Zone (Master)
Die Authoritative Quelle wo Zone-Datensätze bearbeitet werden:
ns1.example.com (primary)
→ Zone file edited here
→ Changes made directly
→ Notifies secondaries of updates
Sekundäre Zone (Slave)
Schreibgeschützte Kopien, die vom Primary replizieren:
ns2.example.com (secondary)
→ Retrieves zone data from primary
→ Cannot be edited directly
→ Automatically syncs based on SOA refresh interval
Zone Transfer (AXFR):
1. Secondary checks SOA serial number
2. If primary serial is higher → request full zone transfer
3. Primary sends entire zone
4. Secondary updates its copy
Inkrementeller Transfer (IXFR):
1. Secondary requests only changes since last serial
2. Primary sends diff
3. More efficient for large zones with small changes
Forward-Zone
Mappt Domain-Namen zu IP-Adressen (am häufigsten):
example.com → 203.0.113.50
www.example.com → 203.0.113.50
Reverse-Zone
Mappt IP-Adressen zu Domain-Namen (PTR-Datensätze):
50.113.0.203.in-addr.arpa → example.com
Genutzt für:
- Mail-Server-Verifikation
- Logging und Sicherheit
- Troubleshooting
Zone-Delegation
Delegation erstellt separate Zonen für Subdomains:
Parent-Zone (example.com)
; example.com zone
@ IN A 203.0.113.50
www IN A 203.0.113.50
; Delegate api.example.com to different nameservers
api IN NS ns1.apihost.com.
api IN NS ns2.apihost.com.
; Glue records (if needed)
ns1.api IN A 198.51.100.1
ns2.api IN A 198.51.100.2
Delegierte Zone (api.example.com)
Komplett separate Zone-Datei auf unterschiedlichen Nameservern:
; api.example.com zone (on ns1.apihost.com)
@ IN A 198.51.100.10
v1 IN A 198.51.100.11
v2 IN A 198.51.100.12
Warum delegieren?
- Organisatorisch: Unterschiedliche Teams verwalten unterschiedliche Zonen
- Technisch: Unterschiedliche DNS-Anbieter nutzen (z.B. API auf AWS, Website auf Cloudflare)
- Leistung: DNS-Last verteilen
- Sicherheit: Sensible Services isolieren
Zone-Verwaltung
Serial-Nummer-Verwaltung
Serial-Nummern verfolgen Zone-Versionen (normalerweise YYYYMMDDnn Format):
2024010101 ; January 1, 2024, version 01
2024010102 ; January 1, 2024, version 02
2024010201 ; January 2, 2024, version 01
Kritische Regel: Serial muss mit jeder Änderung zunehmen, oder Sekundären aktualisieren sich nicht.
Zone-Transfer-Sicherheit
Problem: Zone-Transfers zeigen alle DNS-Datensätze Lösung: Zone-Transfers auf autorisierte Sekundären beschränken BIND-Konfiguration:zone "example.com" {
type master;
file "/var/named/example.com.zone";
allow-transfer { 203.0.113.52; 203.0.113.53; }; // Secondary IPs only
notify yes;
};
TSIG (Transaction Signature): Authentifiziere Zone-Transfers mit gemeinsamen Schlüsseln:
key "transfer-key" {
algorithm hmac-sha256;
secret "base64-encoded-key";
};
allow-transfer { key transfer-key; };
Zone-Konfiguration prüfen
SOA-Datensatz abfragen
dig example.com SOA
; ANSWER SECTION:
example.com. 3600 IN SOA ns1.example.com. admin.example.com. (
2024010101 7200 3600 1209600 3600 )
NS-Datensätze abfragen
dig example.com NS
; ANSWER SECTION:
example.com. 86400 IN NS ns1.example.com.
example.com. 86400 IN NS ns2.example.com.
Zone-Transfer anfordern (AXFR)
dig @ns1.example.com example.com AXFR
# If allowed, returns entire zone
# If denied, returns transfer failed
Die meisten öffentlichen Nameserver verweigern AXFR zum Verhindern von Informations-Offenlegung.
Häufige Zone-Konfigurationen
Einfache Website
example.com zone:
@ A 203.0.113.50
www A 203.0.113.50
@ MX 10 mail.example.com
mail A 203.0.113.51
@ TXT "v=spf1 mx -all"
Multi-Service-Zone
example.com zone:
@ A 203.0.113.50
www A 203.0.113.50
blog CNAME hosting.wordpress.com.
shop CNAME shops.myshopify.com.
cdn CNAME d111111abcdef8.cloudfront.net.
@ MX 10 aspmx.l.google.com.
Delegierte Subdomains
example.com zone:
@ A 203.0.113.50
www A 203.0.113.50
; Delegate api to AWS Route 53
api NS ns-123.awsdns-01.com.
api NS ns-456.awsdns-02.net.
; Delegate cdn to Cloudflare
cdn NS ns1.cloudflare.com.
cdn NS ns2.cloudflare.com.
Bewährte Vorgehensweisen für Zonendateien
1. Erhöhen Sie Serial immer: Nach jeder Änderung, oder Sekundären aktualisieren sich nicht
2. Nutzen Sie Datums-basierte Serials: Format YYYYMMDDnn für Klarheit
3. Beschränken Sie Zone-Transfers: Nur autorisierten Sekundären erlauben
4. Nutzen Sie mehrere Nameserver: Mindestens 2, bevorzugt auf unterschiedlichen Netzwerken
5. Setzen Sie angemessene TTLs: Balance zwischen Caching-Vorteilen und Update-Geschwindigkeit
6. Testen Sie vor Anwendung: Zone-Datei-Syntax validieren vor Laden
7. Überwachen Sie Zone-Transfers: Sicherstellen Sekundären synchronisieren
8. Dokumentieren Sie Delegationen: Notieren welche Zonen delegiert sind und wo
9. Backup Zone-Dateien: Reguläre Backups verhindern Datenverlust
10. Nutzen Sie Versionskontrolle: Zone-Datei-Änderungen im Laufe der Zeit verfolgen
Erweiterte Zonenfunktionen
DNSSEC (Zone-Signierung)
Kryptographisch signiere Zone-Datensätze:
example.com. IN A 203.0.113.50
example.com. IN RRSIG A 8 2 3600 (
signature-data-here )
Schützt gegen Cache-Poisoning und Manipulation.
Dynamisches DNS (DDNS)
Erlaube programmgesteuerte Zone-Updates:
# Update A record dynamically
nsupdate -k Kupdate.key <<EOF
server ns1.example.com
update delete www.example.com A
update add www.example.com 300 A 203.0.113.51
send
EOF
Nützlich für:
- Home-IP-Adress-Updates
- Auto-Scaling-Infrastruktur
- Service-Discovery
Zonenansichten (Split-Horizon-DNS)
Bediene unterschiedliche Zone-Daten basierend auf Client-IP:
Internal clients: example.com → 10.0.0.50 (internal)
External clients: example.com → 203.0.113.50 (public)
Anwendungsfälle:
- Interne vs externe Website-Versionen
- Private Netzwerk-Ressourcen
- Geo-basierte Antworten
Fehlerbehebung bei Zonenproblemen
Zone-Transfer-Fehler
Symptom: Sekundären nicht synchron Prüfen Sie:# Check if primary allows transfers
dig @ns1.example.com example.com AXFR
# Check secondary logs for errors
tail -f /var/log/named.log
Lösungen:
- Verifizieren Sie allow-transfer Einstellungen
- Prüfen Sie Netzwerk-Konnektivität zwischen Servern
- Sicherstellen Serial-Nummer erhöht sich
Serial-Nummer erhöht sich nicht
Symptom: Änderungen propagieren sich nicht zu Sekundären Lösung: Erhöhen Sie Serial immer bei Zone-ÄnderungDelegation funktioniert nicht
Symptom: Subdomain wird nicht aufgelöst Prüfen Sie:# Verify delegation
dig example.com NS
dig api.example.com NS
# Should show different nameservers for delegated subdomain
Lösungen:
- Verifizieren Sie NS-Datensätze in Parent-Zone
- Prüfen Sie Glue-Datensätze wenn Nameserver innerhalb Subdomain
- Bestätigen Sie Kind-Zone ist konfiguriert
DNS-Zonen sind die Grundlage der verteilten DNS-Verwaltung – das Verständnis von Zone-Struktur, Delegation und Verwaltung ermöglicht die effektive DNS-Architektur für Organisationen jeder Größe.