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