Zum Hauptinhalt springen

3. Domänennamen-Raum und Ressourceneinträge (Domain Name Space and Resource Records)

Dieses Kapitel beschreibt die Kern-Datenstrukturen von DNS: die Baumstruktur des Domänennamen-Raums und das Format von Ressourceneinträgen.


3.1. Namensraum-Spezifikationen und Terminologie (Name space specifications and terminology)

Baumstruktur (Tree Structure)

Der Domänennamen-Raum ist eine Baumstruktur (tree structure). Jeder Knoten und jedes Blatt im Baum entspricht einer Ressourcenmenge (die leer sein kann).

Schlüsselmerkmale:

  • Das Domänensystem unterscheidet nicht zwischen der Verwendung von inneren Knoten und Blättern
  • Dieses Memo verwendet den Begriff "Knoten" (node) für beide

Labels

Jeder Knoten hat ein Label, das 0 bis 63 Oktette lang ist.

Regeln:

  • ✅ Geschwisterknoten dürfen nicht dasselbe Label haben
  • ✅ Nicht-Geschwisterknoten können dasselbe Label verwenden
  • ⭐ Ein Label ist reserviert: das leere Label (Länge Null) wird für die Wurzel verwendet

Beispiel:

        .  (Wurzel, leeres Label)
|
+---+---+
| |
com org (Geschwister, verschiedene Labels)
| |
google google (Nicht-Geschwister, Labels können gleich sein)

Domänennamen (Domain Names)

Der Domänenname eines Knotens ist die Liste der Labels auf dem Pfad vom Knoten zur Wurzel des Baumes.

Konvention:

  • Labels werden von links nach rechts gedruckt oder gelesen
  • Vom spezifischsten (niedrigsten, am weitesten von der Wurzel entfernt) zum am wenigsten spezifischen (höchsten, am nächsten zur Wurzel)

Beispiel:

www.example.com.
│ │ │ └─ Wurzel (.)
│ │ └───── com
│ └─────────── example
└───────────── www

Lesereihenfolge: www → example → com → (Wurzel)

Interne Darstellung (Internal Representation)

Intern sollten Programme, die Domänennamen manipulieren, diese als Sequenzen von Labels darstellen:

  • Jedes Label ist ein Längenoktett, gefolgt von einer Oktettzeichenkette
  • Da alle Domänennamen an der Wurzel enden, die eine Nullzeichenkette als Label hat
  • Diese internen Darstellungen können ein Längenbyte von Null verwenden, um einen Domänennamen zu beenden

Kodierungsformat:

Interne Darstellung von www.example.com:
[3]www[7]example[3]com[0]
│ │ │ │ │ └─ Wurzel-Terminator
│ │ │ │ └───── "com"
│ │ │ └───────── Länge von "com"
│ │ └─────────────── "example"
│ └─────────────────── Länge von "example"
└────────────────────── Länge von "www"

Hexadezimal:
03 77 77 77 07 65 78 61 6D 70 6C 65 03 63 6F 6D 00

Groß-/Kleinschreibung (Case Insensitivity)

Konvention:

  • Domänennamen können mit beliebiger Groß-/Kleinschreibung gespeichert werden
  • Alle Domänennamenvergleiche werden groß-/kleinschreibungsunabhängig durchgeführt
  • ASCII-Zeichensatz und Null-Paritätsbit angenommen

Regeln:

  • ✅ Sie können einen Knoten mit Label "A" oder Label "a" erstellen
  • ❌ Sie können nicht beide als Geschwister haben
  • ✅ Sie können sich auf beide mit "a" oder "A" beziehen
  • ⭐ Wenn Sie einen Domänennamen oder ein Label erhalten, sollten Sie dessen Groß-/Kleinschreibung beibehalten

Begründung:

  • Wir müssen möglicherweise eines Tages vollständige binäre Domänennamen für neue Dienste hinzufügen
  • Bestehende Dienste würden nicht geändert

Beispiel:

Example.COM = example.com = EXAMPLE.COM
www.Example.Com = WWW.EXAMPLE.COM

Absolute vs. relative Namen (Absolute vs Relative Names)

Wenn ein Benutzer einen Domänennamen eingeben muss, wird die Länge jedes Labels weggelassen und die Labels werden durch Punkte (.) getrennt.

Absolute Namen (Absolute Names)

Ein vollständiger Domänenname endet mit dem Wurzellabel, was zu einer gedruckten Form führt, die mit einem Punkt endet.

Merkmale:

  • Endet mit .
  • Vollqualifizierter Domänenname (FQDN)
  • Eindeutig

Beispiel:

poneria.ISI.EDU.  (absolut)
www.example.com. (absolut)

Relative Namen (Relative Names)

Eine Zeichenkette, die die Anfangslabels eines Domänennamens darstellt, unvollständig, sollte von lokaler Software unter Verwendung der Kenntnis der lokalen Domäne vervollständigt werden.

Merkmale:

  • Endet nicht mit .
  • Erfordert kontextuelle Interpretation
  • Üblich in Benutzeroberflächen und Masterdateien

Beispiel:

poneria  (relativ zur Domäne ISI.EDU)
→ löst sich auf zu poneria.ISI.EDU.

www (relativ zur Domäne example.com)
→ löst sich auf zu www.example.com.

Interpretationsmethoden:

  • Relativ zu einem bekannten Ursprung
  • Relativ zu einer Liste von Domänen, die als Suchliste verwendet wird
  • Die häufigste Interpretation verwendet die Wurzel . als einzigen Ursprung oder als eines der Mitglieder der Suchliste

Längenbeschränkungen (Length Limits)

Um Implementierungen zu vereinfachen, ist die Gesamtzahl der Oktette, die einen Domänennamen darstellen (d.h. die Summe aller Label-Oktette und Labellängen), auf 255 begrenzt.

Zusammensetzung:

Maximale Domänennamen-Länge: 255 Bytes
= Label-Längen-Bytes + Label-Inhalt + ... + Wurzel-Terminator

Beispiel:
www.example.com.
= 1 + 3 + 1 + 7 + 1 + 3 + 1 = 17 Bytes

Domänen und Subdomänen (Domains and Subdomains)

Domäne (domain):

  • Identifiziert durch einen Domänennamen
  • Besteht aus dem Teil des Domänennamen-Raums, der auf oder unter der Domäne liegt, die durch den Domänennamen spezifiziert wird

Subdomäne (subdomain):

  • Wenn eine Domäne in einer anderen Domäne enthalten ist, ist sie eine Subdomäne dieser Domäne
  • Diese Beziehung kann getestet werden, indem man prüft, ob der Name der Subdomäne mit dem Namen der enthaltenden Domäne endet

Beispiel:

A.B.C.D ist Subdomäne von:
- B.C.D
- C.D
- D
- "" (Wurzel)

Testmethode:
Endet A.B.C.D mit B.C.D? ✅
Endet A.B.C.D mit C.D? ✅
Endet A.B.C.D mit D? ✅

3.2. Administrative Richtlinien zur Verwendung (Administrative guidelines on use)

Design-Philosophie

Als Frage der Politik schreiben die DNS-Technischen Spezifikationen keine bestimmte Baumstruktur oder Regeln für die Auswahl von Labels vor.

Ziele:

  • So allgemein wie möglich sein
  • Nützlich zum Aufbau beliebiger Anwendungen
  • Der Namensraum muss nicht entlang von Netzwerkgrenzen, Nameservern usw. organisiert werden

Begründung:

  • Nicht, dass der Namensraum keine implizite Semantik haben sollte
  • Vielmehr sollte die Wahl der impliziten Semantik offen gehalten werden für das vorliegende Problem
  • Verschiedene Teile des Baumes können unterschiedliche implizite Semantik haben

Beispiele für spezielle Domänen

IN-ADDR.ARPA-Domäne

Organisation: Nach Netzwerk- und Host-Adresse organisiert und verteilt

Grund: Ihre Rolle ist die Übersetzung von Netzwerk- oder Hostnummern zu Namen

Struktur:

IN-ADDR.ARPA
|
1
|
168
|
192
|
1 → 1.168.192.IN-ADDR.ARPA (Reverse-DNS für 192.168.1.1)

NetBIOS-Domäne

Organisation: Flach (flat)

Grund: Angemessen für diese Anwendung [RFC-1001, RFC-1002]

Allgemeine Richtlinien

Einige Richtlinien, die für die "normalen" Teile des Namensraums gelten, die für Hosts, Mailboxen usw. verwendet werden:

Ziele:

  • ✅ Den Namensraum einheitlicher machen
  • ✅ Raum für Wachstum bieten
  • ✅ Probleme minimieren beim Konvertieren von Software von der alten Host-Tabelle

Politik-Referenzen:

  • Politische Entscheidungen über die obersten Ebenen des Baumes stammen aus RFC-920
  • Die aktuelle Politik für die obersten Ebenen wird in [RFC-1032] diskutiert
  • MILNET-Konvertierungsprobleme werden in [RFC-1031] behandelt

Design-Empfehlungen

Zonenaufteilung:

  • Niedrigere Domänen, die schließlich in mehrere Zonen aufgeteilt werden, sollten Verzweigungen an der Spitze der Domäne bieten
  • Damit die eventuelle Zerlegung ohne Umbenennung durchgeführt werden kann

Label-Auswahl:

  • Knotenlabels, die Sonderzeichen, führende Ziffern usw. verwenden, werden wahrscheinlich ältere Software brechen, die von restriktiveren Auswahlmöglichkeiten abhängt
  • Sollten vermieden werden

3.3. Technische Richtlinien zur Verwendung (Technical guidelines on use)

Bevor das DNS verwendet werden kann, um Namensgebungsinformationen für eine Art von Objekt zu halten, müssen zwei Bedürfnisse erfüllt werden:

Bedarf 1: Konvention für Zuordnung zwischen Objektname und Domänenname

Beschreibt, wie auf Informationen über das Objekt zugegriffen wird.

Host-Zuordnung

Bestehende Syntax: Hostnamen sind eine Teilmenge der üblichen Textdarstellung für Domänennamen

Bedürfnisse:

  • RR-Format, das Host-Adressen usw. beschreibt
  • Zuverlässige umgekehrte Zuordnung von Adresse zu Hostname
  • Spezielle Adresszuordnung für die IN-ADDR.ARPA-Domäne

Beispiel:

Vorwärts: www.example.com → 93.184.216.34
Rückwärts: 34.216.184.93.IN-ADDR.ARPA → www.example.com

Mailbox-Zuordnung

Zuordnungsregel: <local-part>@<mail-domain> wird auf Domänenname abgebildet

Schritte:

  1. Konvertieren Sie <local-part> in ein einzelnes Label (unabhängig davon, wie viele Punkte es enthält)
  2. Konvertieren Sie <mail-domain> in einen Domänennamen unter Verwendung des üblichen Textformats für Domänennamen (Punkte kennzeichnen Labelgrenzen)
  3. Verketten Sie beide, um einen einzelnen Domänennamen zu bilden

Beispiel:

Mailbox: [email protected]
Domänennamen-Darstellung: HOSTMASTER.SRI-NIC.ARPA.

Mailbox: [email protected]
Domänennamen-Darstellung: user\.name.example.com.
(Hinweis: Punkte in local-part müssen escaped werden)

Koordination: Das Schema für Mail-Austausch [RFC-974] muss berücksichtigt werden

Bedarf 2: RR-Typ und Datenformat, das das Objekt beschreibt

Definiert den Typ und das Format des Ressourceneintrags.

Design-Überlegungen:

  • Bestehende Formate
  • Aufwärtskompatibilität
  • Kann mehrere Zuordnungen oder Zuordnungsebenen erfordern

3.4. Beispiel-Namensraum (Example name space)

Die folgende Abbildung zeigt einen Teil des aktuellen Domänennamen-Raums, der in vielen Beispielen in diesem RFC verwendet wird.

                               |
|
+---------------------+------------------+
| | |
MIL EDU ARPA
| | |
| | |
+-----+-----+ | +------+-----+-----+
| | | | | | |
BRL NOSC DARPA | IN-ADDR SRI-NIC ACC
|
+--------+------------------+---------------+--------+
| | | | |
UCI MIT | UDEL YALE
| ISI
| |
+---+---+ |
| | |
LCS ACHILLES +--+-----+-----+--------+
| | | | | |
XX A C VAXA VENERA Mockapetris

Beschreibung:

  • Die Wurzeldomäne hat drei direkte Subdomänen: MIL, EDU, ARPA
  • Die Domäne LCS.MIT.EDU hat eine direkte Subdomäne namens XX.LCS.MIT.EDU
  • Alle Blätter sind auch Domänen

Hinweis: Dies ist eine sehr kleine Teilmenge des tatsächlichen Namensraums


3.5. Bevorzugte Namenssyntax (Preferred name syntax)

Design-Prinzipien

Die DNS-Spezifikationen versuchen, bei den Regeln für die Konstruktion von Domänennamen so allgemein wie möglich zu sein.

Ziele:

  • Der Name jedes bestehenden Objekts kann mit minimalen Änderungen als Domänenname ausgedrückt werden
  • Beim Zuweisen eines Domänennamens für ein Objekt wird der umsichtige Benutzer einen Namen auswählen, der sowohl die Regeln des Domänensystems als auch alle bestehenden Regeln für das Objekt erfüllt

Kompatibilitätsüberlegungen

Beispiel:

  • Beim Benennen einer Mail-Domäne sollte der Benutzer sowohl die Regeln dieses Memos als auch die in RFC-822 erfüllen
  • Beim Erstellen eines neuen Hostnamens sollten die alten Regeln für HOSTS.TXT befolgt werden
  • Vermeidet Probleme beim Konvertieren alter Software zur Verwendung von Domänennamen

Empfohlene Syntax (ABNF)

Die folgende Syntax führt zu weniger Problemen mit vielen Anwendungen, die Domänennamen verwenden (z.B. Mail, TELNET):

<domain> ::= <subdomain> | " "

&lt;subdomain> ::= <label> | &lt;subdomain> "." <label>

<label> ::= &lt;letter> [ [ &lt;ldh-str> ] &lt;let-dig> ]

&lt;ldh-str> ::= &lt;let-dig-hyp> | &lt;let-dig-hyp> &lt;ldh-str>

&lt;let-dig-hyp> ::= &lt;let-dig> | "-"

&lt;let-dig> ::= &lt;letter> | &lt;digit>

&lt;letter> ::= A-Z | a-z (52 Buchstaben)

&lt;digit> ::= 0-9 (10 Ziffern)

Label-Regeln

ARPANET-Hostnamen-Regeln:

  • ✅ Muss mit Buchstabe beginnen
  • ✅ Muss mit Buchstabe oder Ziffer enden
  • ✅ Innere Zeichen können nur Buchstaben, Ziffern und Bindestriche sein
  • ✅ Label muss 63 Zeichen oder weniger sein

Groß-/Kleinschreibung:

  • Groß- und Kleinbuchstaben sind in Domänennamen erlaubt
  • Groß-/Kleinschreibung hat keine Bedeutung
  • Zwei Namen mit derselben Schreibweise, aber unterschiedlicher Groß-/Kleinschreibung sollten als gleich behandelt werden

Beispiele für gültige Domänennamen

A.ISI.EDU
XX.LCS.MIT.EDU
SRI-NIC.ARPA
www.example.com
mail-server-01.company.co.uk

Beispiele für ungültige Domänennamen

❌ -example.com (beginnt mit Bindestrich)
❌ example-.com (endet mit Bindestrich)
❌ 123.com (rein numerisches Label, obwohl technisch erlaubt)
❌ example..com (aufeinanderfolgende Punkte)
❌ .example.com (beginnt mit Punkt, relativer Name)

3.6. Ressourceneinträge (Resource Records)

Grundkonzepte

Ein Domänenname identifiziert einen Knoten. Jeder Knoten hat eine Menge von Ressourceninformationen, die leer sein kann.

Schlüsselmerkmale:

  • Die Menge von Ressourceninformationen, die mit einem bestimmten Namen verbunden sind, besteht aus separaten Ressourceneinträgen (RRs)
  • Die Reihenfolge der RRs in einer Menge ist nicht signifikant
  • Muss nicht von Nameservern, Resolvern oder anderen Teilen des DNS beibehalten werden

RR-Struktur

Wenn wir über einen bestimmten RR sprechen, nehmen wir an, dass er Folgendes hat:

owner (Eigentümer)

Der Domänenname, wo der RR gefunden wird.

type (Typ)

Ein kodierter 16-Bit-Wert, der den Typ der Ressource in diesem Ressourceneintrag spezifiziert.

Häufige Typen:

TypWertBeschreibung
A1Host-Adresse (IPv4)
NS2Autoritativer Nameserver
CNAME5Alias des kanonischen Namens
SOA6Start der Autorität
PTR12Zeiger auf einen anderen Teil des Domänennamen-Raums
HINFO13CPU und OS, die vom Host verwendet werden
MX15Mail-Austausch der Domäne [RFC-974]
TXT16Textzeichenkette
AAAA28IPv6-Adresse (später hinzugefügt)

class (Klasse)

Ein kodierter 16-Bit-Wert, der eine Protokollfamilie oder Protokollinstanz identifiziert.

Häufige Klassen:

KlasseWertBeschreibung
IN1Internet
CS2CSNET (veraltet)
CH3CHAOS
HS4Hesiod

Hinweis: In der Praxis dominiert die Klasse IN.

TTL (Time To Live, Lebensdauer)

32-Bit-Ganzzahl mit Vorzeichen, die das Zeitintervall spezifiziert, während dessen der RR gecacht werden kann, dann verworfen oder von der autoritativen Quelle aufgefrischt werden muss.

Einheit: Sekunden

Zweck:

  • Cache-Verhalten steuern
  • Frische und Leistung ausbalancieren

Beispielwerte:

300    - 5 Minuten (dynamische Daten)
3600 - 1 Stunde (häufiger Standardwert)
86400 - 1 Tag (statische Daten)
604800 - 1 Woche (sehr statisch)

RDATA (Resource Data, Ressourcendaten)

Daten, die die Ressource beschreiben. Das Format hängt vom TYPE und CLASS des RR ab.

Beispiel:

A-Eintrag: 4 Bytes IPv4-Adresse
AAAA-Eintrag: 16 Bytes IPv6-Adresse
CNAME-Eintrag: Domänenname
MX-Eintrag: Priorität + Domänenname

Vollständiges RR-Beispiel

; owner    TTL   class type  rdata
www.example.com. 3600 IN A 93.184.216.34
example.com. 3600 IN MX 10 mail.example.com.
example.com. 3600 IN NS ns1.example.com.
ftp.example.com. 3600 IN CNAME www.example.com.

3.6.1. Textuelle Darstellung von RRs (Textual expression of RRs)

RRs werden in Textform in Masterdateien dargestellt.

Format:

&lt;owner> [&lt;TTL>] [&lt;class>] &lt;type> &lt;RDATA>

Auslassungsregeln:

  • TTL kann weggelassen werden (verwendet Standardwert der $TTL-Direktive)
  • class kann weggelassen werden (Standard IN)
  • owner kann weggelassen werden (verwendet owner des vorherigen Eintrags)

Beispiel:

$ORIGIN example.com.
$TTL 3600

@ IN SOA ns1.example.com. admin.example.com. (
2024010101 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL

IN NS ns1.example.com.
IN NS ns2.example.com.

www IN A 93.184.216.34
mail IN A 93.184.216.35
IN MX 10 mail.example.com.

3.6.2. Aliase und kanonische Namen (Aliases and canonical names)

CNAME-Einträge

Zweck: Alias mit kanonischem Namen verknüpfen

Regeln:

  • Ein CNAME-RR identifiziert seinen Eigentümernamen als Alias eines anderen "kanonischen" oder primären Namens
  • Wenn ein Domänenname ein CNAME-Alias ist, kann er keine anderen Daten haben

Beispiel:

www.example.com.  IN  A      93.184.216.34
ftp.example.com. IN CNAME www.example.com.
web.example.com. IN CNAME www.example.com.

; Abfrage ftp.example.com → gibt CNAME zurück → Abfrage www.example.com → gibt A-Eintrag zurück

Einschränkungen

CNAME-Kette:

  • Sehr lange CNAME-Ketten sollten vermieden werden
  • Können Leistungsprobleme verursachen
  • Erhöhen Abfragelatenz

Nicht erlaubte Konfiguration:

❌ Falsches Beispiel:
example.com. IN CNAME www.example.com.
example.com. IN MX 10 mail.example.com.
; CNAME kann nicht mit anderen Einträgen koexistieren

✅ Richtiges Beispiel:
example.com. IN A 93.184.216.34
example.com. IN MX 10 mail.example.com.
www.example.com. IN CNAME example.com.

Zusammenfassung der Schlüsselkonzepte

Merkmale des Domänennamen-Raums

  1. Baumstruktur: Hierarchische Organisation, Wurzel oben
  2. Label-System: 0-63 Bytes, Geschwister eindeutig
  3. Groß-/Kleinschreibungsunabhängig: Beibehalten, aber nicht unterschieden
  4. Längenbegrenzung: Insgesamt 255 Bytes
  5. Absolut vs. relativ: FQDN endet mit Punkt

Kern der Ressourceneinträge

  1. Fünftupel: owner, type, class, TTL, RDATA
  2. Vielfältige Typen: A, NS, CNAME, MX, SOA usw.
  3. Klassensystem: Hauptsächlich Klasse IN verwendet
  4. TTL-Steuerung: Cache-Zeitverwaltung
  5. Textformat: Menschenlesbares Masterdatei-Format

Design-Prinzipien

  1. Allgemeinheit: Erzwingt keine bestimmte Struktur
  2. Erweiterbarkeit: Unterstützt neue Typen und Klassen
  3. Kompatibilität: Berücksichtigt bestehende Systeme
  4. Verteilt: Administrative Grenzen entsprechen Organisationen
  5. Flexibilität: Passt sich verschiedenen Anwendungen an

Nächstes Kapitel: 4. Name Servers (Nameserver) - Vertiefung in die internen Arbeitsweisen und Algorithmen von DNS-Servern