RFC 1035 - Domainnamen - Implementierung und Spezifikation
Status: Internet-Standard (STD 13)
Obsolet: RFC 882, 883, 973
Autor: Paul Mockapetris (ISI)
Veröffentlichung: November 1987
Zusammenfassung
Dieses RFC beschreibt die Details des Domain-Systems und -Protokolls und setzt voraus, dass der Leser mit den im Begleit-RFC „Domain Names - Concepts and Facilities (Domainnamen - Konzepte und Einrichtungen)" [RFC-1034] diskutierten Konzepten vertraut ist.
Das Domain-System ist eine Mischung aus Funktionen und Datentypen, die ein offizielles Protokoll sind, und Funktionen und Datentypen, die noch experimentell sind. Da das Domain-System absichtlich erweiterbar konzipiert ist, sollten in Teilen des Systems jenseits des offiziellen Protokolls immer neue Datentypen und experimentelles Verhalten erwartet werden. Die offiziellen Protokollteile umfassen Standardabfragen, Antworten und die Internet-Klasse-RR-Datenformate (z. B. Hostadressen).
Bedeutung
RFC 1035 bildet zusammen mit RFC 1034 die Kernspezifikation von DNS:
- RFC 1034: Konzepte und Einrichtungen (Theorie und Architektur)
- RFC 1035: Implementierung und Spezifikation (Protokoll und Formate)
Dieses RFC liefert alle technischen Details, die zur Implementierung von DNS erforderlich sind:
- 📦 Nachrichtenformat und Kodierung
- 📋 Ressourceneintrags-Definitionen
- 📁 Zonendateiformat
- 🖥️ Nameserver-Implementierung
- 🔍 Resolver-Implementierung
Inhaltsverzeichnis
2. Introduction (Einführung)
- 2.1 Überblick
- 2.2 Gängige Konfigurationen
- 2.3 Konventionen
- 2.3.1 Bevorzugte Namenssyntax
- 2.3.2 Datenübertragungsreihenfolge
- 2.3.3 Groß-/Kleinschreibung von Zeichen
- 2.3.4 Größenbeschränkungen
3. Domain Name Space and RR Definitions (Domainnamenraum und RR-Definitionen)
- 3.1 Namenraum-Definitionen
- 3.2 RR-Definitionen
- 3.2.1 Format
- 3.2.2 TYPE-Werte
- 3.2.3 QTYPE-Werte
- 3.2.4 CLASS-Werte
- 3.2.5 QCLASS-Werte
- 3.3 Standard-RRs
- 3.3.1 CNAME RDATA-Format
- 3.3.2 HINFO RDATA-Format
- 3.3.3 MB RDATA-Format (EXPERIMENTELL)
- 3.3.4 MD RDATA-Format (Veraltet)
- 3.3.5 MF RDATA-Format (Veraltet)
- 3.3.6 MG RDATA-Format (EXPERIMENTELL)
- 3.3.7 MINFO RDATA-Format (EXPERIMENTELL)
- 3.3.8 MR RDATA-Format (EXPERIMENTELL)
- 3.3.9 MX RDATA-Format
- 3.3.10 NULL RDATA-Format (EXPERIMENTELL)
- 3.3.11 NS RDATA-Format
- 3.3.12 PTR RDATA-Format
- 3.3.13 SOA RDATA-Format
- 3.3.14 TXT RDATA-Format
- 3.4 Internet-spezifische RRs
- 3.4.1 A RDATA-Format
- 3.4.2 WKS RDATA-Format
- 3.5 IN-ADDR.ARPA-Domain
- 3.6 Definition neuer Typen, Klassen und spezieller Namenräume
4. Messages (Nachrichten)
- 4.1 Format
- 4.1.1 Header-Sektion-Format
- 4.1.2 Frage-Sektion-Format
- 4.1.3 Ressourceneintrag-Format
- 4.1.4 Nachrichtenkompression
- 4.2 Transport
- 4.2.1 UDP-Verwendung
- 4.2.2 TCP-Verwendung
5. Master Files (Masterdateien)
- 5.1 Format
- 5.2 Verwendung von Masterdateien zur Definition von Zonen
- 5.3 Masterdatei-Beispiel
6. Name Server Implementation (Nameserver-Implementierung)
- 6.1 Architektur
- 6.1.1 Steuerung
- 6.1.2 Datenbank
- 6.1.3 Zeit
- 6.2 Standardabfrage-Verarbeitung
- 6.3 Zonen-Aktualisierungs- und Neuladebearbeitung
- 6.4 Inverse Abfragen (Optional)
- 6.5 Vervollständigungsabfragen und -antworten
7. Resolver Implementation (Resolver-Implementierung)
- 7.1 Umwandlung einer Benutzeranfrage in eine Abfrage
- 7.2 Senden der Abfragen
- 7.3 Verarbeitung von Antworten
- 7.4 Verwendung des Caches
Glossary (Glossar)
References (Referenzen)
Schnellreferenz
DNS-Nachrichtenformat
+---------------------+
| Header | 12 Bytes
+---------------------+
| Question | variabel
+---------------------+
| Answer | variabel
+---------------------+
| Authority | variabel
+---------------------+
| Additional | variabel
+---------------------+
DNS-Header-Format (12 Bytes)
1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|QR| Opcode |AA|TC|RD|RA| Z | RCODE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| QDCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ANCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| NSCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ARCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Gängige RR-Typen
| TYPE | Wert | Beschreibung |
|---|---|---|
| A | 1 | Host-Adresse |
| NS | 2 | Autoritativer Nameserver |
| CNAME | 5 | Kanonischer Name (Alias) |
| SOA | 6 | Start der Autorität |
| PTR | 12 | Domain-Name-Zeiger |
| MX | 15 | Mail-Austausch |
| TXT | 16 | Textzeichenketten |
| AAAA | 28 | IPv6-Adresse (RFC 3596) |
Antwortcodes (RCODE)
| Wert | Name | Beschreibung |
|---|---|---|
| 0 | NOERROR | Kein Fehler |
| 1 | FORMERR | Formatfehler |
| 2 | SERVFAIL | Server-Fehler |
| 3 | NXDOMAIN | Name existiert nicht |
| 4 | NOTIMP | Nicht implementiert |
| 5 | REFUSED | Abgelehnt |
Größenbeschränkungen
| Element | Grenze | Beschreibung |
|---|---|---|
| Label | 63 Bytes | Maximale Länge eines einzelnen Labels |
| Domainname | 255 Bytes | Maximale Länge eines vollständigen Domainnamens |
| UDP-Nachricht | 512 Bytes | Standard-UDP-Nachrichtengröße |
| TCP-Nachricht | 65535 Bytes | Maximale TCP-Nachrichtengröße |
| TTL | 2^31-1 Sekunden | Maximale Lebensdauer |
Beziehung zu RFC 1034
| RFC 1034 | RFC 1035 |
|---|---|
| Konzepte und Theorie | Implementierung und Protokoll |
| Domain-Namenraum-Struktur | Nachrichtenformat |
| Nameserver-Funktionen | Nameserver-Implementierung |
| Resolver-Konzepte | Resolver-Implementierung |
| Zonenverwaltung | Zonendateiformat |
Implementierungsanforderungen
Muss implementiert werden (MUST)
- ✅ Standardabfragen und -antworten
- ✅ A, NS, CNAME, SOA, PTR, MX-Einträge
- ✅ UDP-Transport (512 Bytes)
- ✅ Nachrichtenkompression
- ✅ Groß-/Kleinschreibung-unabhängiger Vergleich
Sollte implementiert werden (SHOULD)
- ✅ TCP-Transport (für große Antworten)
- ✅ Zonentransfer (AXFR)
- ✅ Caching und TTL-Verarbeitung
- ✅ Unterstützung rekursiver Abfragen
Kann implementiert werden (MAY)
- Inverse Abfragen
- Experimentelle RR-Typen
- Dynamische Updates
Verwandte RFCs
- RFC 1034: DNS-Konzepte und -Einrichtungen (Begleitdokument)
- RFC 2181: DNS-Spezifikationsklärungen
- RFC 2308: Negatives Caching von DNS-Abfragen
- RFC 3596: DNS-Erweiterungen für IPv6
- RFC 4033-4035: DNSSEC
- RFC 6891: EDNS(0)
- RFC 8499: DNS-Terminologie
Online-Ressourcen
Begleitdokument: RFC 1034 - DNS-Konzepte und -Einrichtungen
Nächstes Kapitel: 2. Introduction (Einführung)