Zum Hauptinhalt springen

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

TYPEWertBeschreibung
A1Host-Adresse
NS2Autoritativer Nameserver
CNAME5Kanonischer Name (Alias)
SOA6Start der Autorität
PTR12Domain-Name-Zeiger
MX15Mail-Austausch
TXT16Textzeichenketten
AAAA28IPv6-Adresse (RFC 3596)

Antwortcodes (RCODE)

WertNameBeschreibung
0NOERRORKein Fehler
1FORMERRFormatfehler
2SERVFAILServer-Fehler
3NXDOMAINName existiert nicht
4NOTIMPNicht implementiert
5REFUSEDAbgelehnt

Größenbeschränkungen

ElementGrenzeBeschreibung
Label63 BytesMaximale Länge eines einzelnen Labels
Domainname255 BytesMaximale Länge eines vollständigen Domainnamens
UDP-Nachricht512 BytesStandard-UDP-Nachrichtengröße
TCP-Nachricht65535 BytesMaximale TCP-Nachrichtengröße
TTL2^31-1 SekundenMaximale Lebensdauer

Beziehung zu RFC 1034

RFC 1034RFC 1035
Konzepte und TheorieImplementierung und Protokoll
Domain-Namenraum-StrukturNachrichtenformat
Nameserver-FunktionenNameserver-Implementierung
Resolver-KonzepteResolver-Implementierung
ZonenverwaltungZonendateiformat

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)