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:
- Konvertieren Sie
<local-part>in ein einzelnes Label (unabhängig davon, wie viele Punkte es enthält) - Konvertieren Sie
<mail-domain>in einen Domänennamen unter Verwendung des üblichen Textformats für Domänennamen (Punkte kennzeichnen Labelgrenzen) - 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> | " "
<subdomain> ::= <label> | <subdomain> "." <label>
<label> ::= <letter> [ [ <ldh-str> ] <let-dig> ]
<ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>
<let-dig-hyp> ::= <let-dig> | "-"
<let-dig> ::= <letter> | <digit>
<letter> ::= A-Z | a-z (52 Buchstaben)
<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:
| Typ | Wert | Beschreibung |
|---|---|---|
| A | 1 | Host-Adresse (IPv4) |
| NS | 2 | Autoritativer Nameserver |
| CNAME | 5 | Alias des kanonischen Namens |
| SOA | 6 | Start der Autorität |
| PTR | 12 | Zeiger auf einen anderen Teil des Domänennamen-Raums |
| HINFO | 13 | CPU und OS, die vom Host verwendet werden |
| MX | 15 | Mail-Austausch der Domäne [RFC-974] |
| TXT | 16 | Textzeichenkette |
| AAAA | 28 | IPv6-Adresse (später hinzugefügt) |
class (Klasse)
Ein kodierter 16-Bit-Wert, der eine Protokollfamilie oder Protokollinstanz identifiziert.
Häufige Klassen:
| Klasse | Wert | Beschreibung |
|---|---|---|
| IN | 1 | Internet |
| CS | 2 | CSNET (veraltet) |
| CH | 3 | CHAOS |
| HS | 4 | Hesiod |
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:
<owner> [<TTL>] [<class>] <type> <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
- Baumstruktur: Hierarchische Organisation, Wurzel oben
- Label-System: 0-63 Bytes, Geschwister eindeutig
- Groß-/Kleinschreibungsunabhängig: Beibehalten, aber nicht unterschieden
- Längenbegrenzung: Insgesamt 255 Bytes
- Absolut vs. relativ: FQDN endet mit Punkt
Kern der Ressourceneinträge
- Fünftupel: owner, type, class, TTL, RDATA
- Vielfältige Typen: A, NS, CNAME, MX, SOA usw.
- Klassensystem: Hauptsächlich Klasse IN verwendet
- TTL-Steuerung: Cache-Zeitverwaltung
- Textformat: Menschenlesbares Masterdatei-Format
Design-Prinzipien
- Allgemeinheit: Erzwingt keine bestimmte Struktur
- Erweiterbarkeit: Unterstützt neue Typen und Klassen
- Kompatibilität: Berücksichtigt bestehende Systeme
- Verteilt: Administrative Grenzen entsprechen Organisationen
- Flexibilität: Passt sich verschiedenen Anwendungen an
Nächstes Kapitel: 4. Name Servers (Nameserver) - Vertiefung in die internen Arbeitsweisen und Algorithmen von DNS-Servern