Zum Hauptinhalt springen

3. Domain Name Space and RR Definitions (Domain-Namenraum und RR-Definitionen)

Dieses Kapitel definiert, wie Domainnamen im DNS kodiert werden und das Format von Ressourceneinträgen (Resource Records). Dies ist die technische Kernspezifikation für die Implementierung von DNS.


3.1. Name Space Definitions (Namenraum-Definitionen)

Domainnamen-Kodierung

Domainnamen in Nachrichten werden als Sequenz von Labels (Label-Sequenz) ausgedrückt.

Kodierungsformat:

Jedes Label wird dargestellt als:
[Längen-Byte (1 Byte)][Label-Inhalt (N Bytes)]

Beispiel: www.example.com
Kodiert als: 3www7example3com0

Detaillierte Erklärung:

  • Jedes Label wird als ein Oktettt-Längenfeld dargestellt, gefolgt von dieser Anzahl von Oktetten
  • Da jeder Domainname mit dem Null-Label der Wurzel endet, wird ein Domainname durch ein Längen-Byte von Null beendet
  • Die beiden höchstwertigen Bits jedes Längen-Oktetts müssen (MUST) Null sein
  • Die verbleibenden sechs Bits des Längenfeldes begrenzen das Label auf 63 Oktette oder weniger

Längenbeschränkungen:

Einzelnes Label: ≤ 63 Bytes
Vollständiger Domainname: ≤ 255 Bytes (einschließlich Längen-Bytes)

Label-Inhaltsregeln

Byte-Werte: Labels können beliebige 8-Bit-Werte in Oktetten enthalten, die ein Label bilden

Starke Empfehlung: Labels sollten (SHOULD) der bevorzugten Syntax folgen, die an anderer Stelle in diesem Memo beschrieben wird und mit bestehenden Host-Namenskonventionen kompatibel ist

Vergleichsregeln:

  • Nameserver und Resolver müssen (MUST) Labels auf Groß-/Kleinschreibung-unabhängige Weise vergleichen
  • ASCII mit Null-Parität annehmend (d.h. A=a)
  • Nicht-alphabetische Codes müssen exakt übereinstimmen

3.2. RR Definitions (RR-Definitionen)

3.2.1. Format

Alle RRs (Resource Records, Ressourceneinträge) haben das gleiche Format auf oberster Ebene, das unten gezeigt wird:

                                    1  1  1  1  1  1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| |
/ /
/ NAME /
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| TYPE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| CLASS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| TTL |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| RDLENGTH |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
/ RDATA /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Feldbeschreibungen:

  • NAME: Ein Besitzername (Owner Name), d.h. der Name des Knotens, zu dem dieser Ressourceneintrag gehört.

  • TYPE: Zwei Oktette, die einen der RR-TYPE-Codes enthalten.

  • CLASS: Zwei Oktette, die einen der RR-CLASS-Codes enthalten.

  • TTL: Eine vorzeichenbehaftete 32-Bit-Ganzzahl, die das Zeitintervall angibt, während dessen der Ressourceneintrag zwischengespeichert werden kann, bevor die Quelle der Information erneut konsultiert werden sollte. Nullwerte werden so interpretiert, dass der RR nur für die laufende Transaktion verwendet werden kann und nicht zwischengespeichert werden sollte.

  • RDLENGTH: Eine vorzeichenlose 16-Bit-Ganzzahl, die die Länge in Oktetten des RDATA-Feldes angibt.

  • RDATA: Eine Zeichenkette variabler Länge von Oktetten, die die Ressource beschreibt. Das Format dieser Information variiert je nach TYPE und CLASS des Ressourceneintrags.

3.2.2. TYPE Values (TYPE-Werte)

TYPE-Felder werden in Ressourceneinträgen verwendet. Beachten Sie, dass diese Typen eine Untermenge von QTYPEs sind.

TYPEWertBedeutung
A1Host-Adresse
NS2Autoritativer Nameserver
MD3Mail-Ziel (Veraltet - MX verwenden)
MF4Mail-Weiterleiter (Veraltet - MX verwenden)
CNAME5Kanonischer Name für einen Alias
SOA6Beginn einer Autoritätszone
MB7Mailbox-Domainname (EXPERIMENTELL)
MG8Mail-Gruppenmitglied (EXPERIMENTELL)
MR9Mail-Umbenennungs-Domainname (EXPERIMENTELL)
NULL10Null-RR (EXPERIMENTELL)
WKS11Bekannte Dienstbeschreibung
PTR12Domainnamen-Zeiger
HINFO13Host-Information
MINFO14Mailbox- oder Mailinglisten-Information
MX15Mail-Austausch
TXT16Textzeichenketten

3.2.3. QTYPE Values (QTYPE-Werte)

QTYPE-Felder erscheinen im Frageteil einer Abfrage. QTYPEs sind eine Obermenge von TYPEs, daher sind alle TYPEs gültige QTYPEs.

QTYPEWertBedeutung
AXFR252Anforderung für einen Transfer einer gesamten Zone
MAILB253Anforderung für mailbox-bezogene Einträge (MB, MG oder MR)
MAILA254Anforderung für Mail-Agent-RRs (Veraltet - siehe MX)
*255Anforderung für alle Einträge

3.2.4. CLASS Values (CLASS-Werte)

CLASS-Felder erscheinen in Ressourceneinträgen.

CLASSWertBedeutung
IN1Das Internet
CS2Die CSNET-Klasse (Veraltet)
CH3Die CHAOS-Klasse
HS4Hesiod [Dyer 87]

3.2.5. QCLASS Values (QCLASS-Werte)

QCLASS-Felder erscheinen im Frageabschnitt einer Abfrage. QCLASS-Werte sind eine Obermenge von CLASS-Werten.

QCLASSWertBedeutung
*255Jede Klasse

3.3. Standard RRs (Standard-RRs)

Die folgenden RR-Definitionen werden voraussichtlich in allen Implementierungen auftreten.

3.3.1. CNAME RDATA Format (CNAME-RDATA-Format)

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ CNAME /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Felder:

  • CNAME: Ein Domainname, der den kanonischen oder primären Namen für den Besitzer angibt. Der Besitzername ist ein Alias.

CNAME-Verwendung:

  • Ein CNAME-RR identifiziert seinen Besitzernamen als Alias
  • Gibt den entsprechenden kanonischen Namen im RDATA-Abschnitt an
  • Wenn ein CNAME-RR an einem Knoten vorhanden ist, sollten (SHOULD NOT) keine anderen Daten vorhanden sein
  • Dies stellt sicher, dass die Daten für einen kanonischen Namen und seine Aliase nicht unterschiedlich sein können

3.3.2. HINFO RDATA Format (HINFO-RDATA-Format)

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ CPU /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ OS /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Felder:

  • CPU: Eine Zeichenkette, die den CPU-Typ angibt.
  • OS: Eine Zeichenkette, die den Betriebssystemtyp angibt.

Zweck: HINFO-Einträge werden verwendet, um allgemeine Informationen über einen Host zu erhalten.

3.3.3. MB RDATA Format (MB-RDATA-Format) - EXPERIMENTELL

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ MADNAME /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Felder:

  • MADNAME: Ein Domainname, der einen Host angibt, der die angegebene Mailbox besitzt.

Status: EXPERIMENTELL

3.3.4. MD RDATA Format (MD-RDATA-Format) - Obsolet

Status: Obsolet - MX verwenden

3.3.5. MF RDATA Format (MF-RDATA-Format) - Obsolet

Status: Obsolet - MX verwenden

3.3.6. MG RDATA Format (MG-RDATA-Format) - EXPERIMENTELL

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ MGMNAME /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Felder:

  • MGMNAME: Ein Domainname, der eine Mailbox angibt, die Mitglied der durch den Domainnamen identifizierten Mailgruppe ist.

Status: EXPERIMENTELL

3.3.7. MINFO RDATA Format (MINFO-RDATA-Format) - EXPERIMENTELL

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ RMAILBX /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ EMAILBX /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Felder:

  • RMAILBX: Ein Domainname, der die für die Mailbox verantwortliche Mailbox angibt.
  • EMAILBX: Ein Domainname, der die Mailbox angibt, die Fehlermeldungen empfängt.

Status: EXPERIMENTELL

3.3.8. MR RDATA Format (MR-RDATA-Format) - EXPERIMENTELL

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ NEWNAME /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Felder:

  • NEWNAME: Ein Domainname, der den korrekten Namen der Mailbox angibt.

Status: EXPERIMENTELL

3.3.9. MX RDATA Format (MX-RDATA-Format)

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| PREFERENCE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ EXCHANGE /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Felder:

  • PREFERENCE: Eine 16-Bit-Ganzzahl, die die Präferenz angibt, die diesem RR unter anderen beim gleichen Besitzer gegeben wird. Niedrigere Werte werden bevorzugt.
  • EXCHANGE: Ein Domainname, der einen Host angibt, der bereit ist, als Mail-Austausch für den Besitzernamen zu fungieren.

MX-Verwendung:

  • MX-Einträge verursachen zusätzliche Sektion-Verarbeitung vom Typ A für den durch EXCHANGE angegebenen Host
  • Die Verwendung von MX-RRs wird ausführlich in RFC-974 erläutert

3.3.10. NULL RDATA Format (NULL-RDATA-Format) - EXPERIMENTELL

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ `<anything>` /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Felder:

  • <anything>: Beliebiger Inhalt, maximal 65535 Oktette

Zweck:

  • Der NULL-RR wird nicht für normale Operationen verwendet
  • Kann für experimentelle Zwecke verwendet werden
  • Kann beliebige Daten enthalten

Status: EXPERIMENTELL

3.3.11. NS RDATA Format (NS-RDATA-Format)

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ NSDNAME /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Felder:

  • NSDNAME: Ein Domainname, der einen Host angibt, der für die angegebene Klasse und Domain autoritativ sein sollte.

NS-Verwendung:

  • NS-Einträge verursachen sowohl die übliche zusätzliche Sektion-Verarbeitung zum Auffinden eines Typ-A-Eintrags
  • Bei Verwendung in einer Verweisung signalisieren sie einen Delegierungspunkt im Namensraum

3.3.12. PTR RDATA Format (PTR-RDATA-Format)

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ PTRDNAME /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Felder:

  • PTRDNAME: Ein Domainname, der auf einen Ort im Domainnamenraum zeigt.

PTR-Verwendung:

  • PTR-Einträge verursachen keine zusätzliche Sektion-Verarbeitung
  • Diese RRs werden in speziellen Domains verwendet, um auf einen anderen Ort im Domainnamenraum zu zeigen
  • Hauptsächlich für Reverse-DNS-Lookups in der IN-ADDR.ARPA-Domain verwendet

3.3.13. SOA RDATA Format (SOA-RDATA-Format)

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ MNAME /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ RNAME /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| SERIAL |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| REFRESH |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| RETRY |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| EXPIRE |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| MINIMUM |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Felder:

  • MNAME: Der Domainname des Nameservers, der die ursprüngliche oder primäre Quelle von Daten für diese Zone war.
  • RNAME: Ein Domainname, der die Mailbox der für diese Zone verantwortlichen Person angibt.
  • SERIAL: Die vorzeichenlose 32-Bit-Versionsnummer der Originalkopie der Zone.
  • REFRESH: Ein 32-Bit-Zeitintervall, bevor die Zone aktualisiert werden sollte.
  • RETRY: Ein 32-Bit-Zeitintervall, das vergehen sollte, bevor eine fehlgeschlagene Aktualisierung wiederholt werden sollte.
  • EXPIRE: Ein 32-Bit-Zeitwert, der die Obergrenze des Zeitintervalls angibt, das vergehen kann, bevor die Zone nicht mehr autoritativ ist.
  • MINIMUM: Das vorzeichenlose 32-Bit-Minimum-TTL-Feld, das mit jedem RR aus dieser Zone exportiert werden sollte.

3.3.14. TXT RDATA Format (TXT-RDATA-Format)

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ TXT-DATA /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Felder:

  • TXT-DATA: Eine oder mehrere Zeichenketten.

TXT-Verwendung:

  • TXT-RRs werden verwendet, um beschreibenden Text zu enthalten
  • Die Semantik des Textes hängt von der Domain ab, in der er gefunden wird
  • Häufig für SPF, DKIM, Domain-Verifizierung usw. verwendet

3.4. Internet Specific RRs (Internet-spezifische RRs)

3.4.1. A RDATA Format (A-RDATA-Format)

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ADDRESS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Felder:

  • ADDRESS: Eine 32-Bit-Internet-Adresse.

A-Eintrag-Verwendung:

  • Hosts, die mehrere Internet-Adressen haben, werden mehrere A-Einträge haben
  • Der RDATA-Abschnitt einer A-Zeile in einer Masterdatei ist eine Internet-Adresse, die als vier durch Punkte getrennte Dezimalzahlen ausgedrückt wird

Beispiel:

www.example.com.  IN  A  93.184.216.34

3.5. IN-ADDR.ARPA Domain (IN-ADDR.ARPA-Domain)

Die IN-ADDR.ARPA-Domain wird für Rückwärts-DNS-Lookups (Reverse DNS Lookups) verwendet - Zuordnung von IP-Adressen zu Domainnamen.

Struktur:

  • Die Domain ist nach IP-Adress-Oktetten in umgekehrter Reihenfolge organisiert
  • Jedes Oktett bildet ein Label im Domainnamen

Beispiel:

IP-Adresse: 93.184.216.34
IN-ADDR.ARPA-Name: 34.216.184.93.in-addr.arpa.

Verwendung:

  • PTR-Einträge in der IN-ADDR.ARPA-Domain zeigen auf den kanonischen Hostnamen
  • Dies ermöglicht Anwendungen, von einer Adresse zu einem Namen zu mappen

Beispiel-PTR-Eintrag:

34.216.184.93.in-addr.arpa.  IN  PTR  www.example.com.

3.6. Defining New Types, Classes, and Special Namespaces (Definition neuer Typen, Klassen und spezieller Namenräume)

Das DNS ist so konzipiert, dass es erweiterbar ist. Neue RR-Typen und -Klassen können definiert werden, um neue Anwendungen und Dienste zu unterstützen.

Richtlinien:

  • Neue Typen und Klassen sollten (SHOULD) bei der IANA registriert werden
  • Implementierungen sollten (SHOULD) in der Lage sein, unbekannte Typen angemessen zu handhaben
  • Unbekannte RR-Typen sollten (SHOULD) von Nameservern bewahrt und weitergeleitet werden
  • Das allgemeine Format von RRs ermöglicht das Hinzufügen neuer Typen, ohne bestehende Implementierungen zu brechen

Weiter: 4. Messages (Nachrichten)