DNS-Records: Wie funktionieren DNS-Einträge?
Das Domain Name System (DNS) sorgt dafür, dass Nutzer eine Domain in den Browser eingeben können und die gewünschte Website erreichen. Eigentlich kommunizieren die Netzteilnehmer nämlich über IP-Adressen. Da diese aber mehr als sperrig sind, gibt man nur den Namen der Website ein und lässt diesen automatisch in die Ziffernfolge übersetzen. Wie funktioniert diese Übersetzung?
Was sind DNS-Records?
Wenn man eine Internetadresse in den Browser eingibt, muss das System erst nachschlagen, welche IP-Adresse zu dieser Domain gehört. Dies geschieht manchmal bereits im Speicher des eigenen Computers, oft bei den Datenbanken des Internetanbieters oder anderen DNS-Servern und im Zweifelsfall über einen der großen Rootserver, die als autoritäre Instanzen über das ganze Domain Name System wachen. Um eine Namensauflösung durchzuführen, muss in den Datenbanken der DNS- bzw. Nameserver nach DNS-Einträgen gesucht werden, den sogenannten DNS-Records oder Resource Records. Hier ist jeder (dem Server bekannten) IP-Adresse ein Domain-Name zugeordnet.
Das DNS ist hierarchisch und dezentral aufgebaut. Auf jeder Ebene gibt es Server, die für ihren sogenannten Namensraum zuständig sind. Dies bedeutet, dass der Rootserver bei der Recherche nach der IP-Adresse für www.example.com nur insofern hilft, als er weiß, welcher Server für die Top-Level-Domain (TLD) .com verantwortlich ist. So werden die einzelnen Ebenen durchlaufen, um die Namensauflösung durchzuführen. Das bedeutet: Die IP-Adresse des eigentlichen Web- oder Mailservers liegt schließlich beim Host selbst. Deshalb ist es für Betreiber von Websites wichtig, das Konzept der Resource Records zu verstehen.
- Inklusive Wildcard-SSL-Zertifikat
- Inklusive Domain Lock
- Inklusive 2 GB E-Mail-Postfach
Wie funktionieren DNS-Records?
DNS-Einträge befinden sich in erster Linie in Zonendateien. Im DNS-Kontext bezeichnet eine Zone einen organisatorischen Bereich. Es ist möglich, dass eine Domain aus einer einzigen Zone besteht. Gerade umfangreiche Domains sind aber oft in mehrere Zonen aufgeteilt. Jeder DNS-Server ist für eine Zone zuständig. Möchte ein Client also eine bestimmte Domain aufrufen, guckt der bzw. die DNS-Server in den Zonendateien nach den entsprechenden Einträgen und leitet die Anfrage so lange an einen tieferliegenden Server weiter, bis das endgültige Ziel erreicht ist.
Syntax der DNS-Einträge
Resource Records sind nach einem einfachen System aufgebaut und in ASCII kodiert. Für jeden DNS-Record existiert eine eigene Zeile. Die Einträge folgen in der Regel folgendem Format:
<name> <ttl> <class> <type> <rdlength> <radata>
Die jeweiligen Informationen werden durch ein Leerzeichen voneinander getrennt, wobei manche Angaben nur optional sind. In bestimmten Eintragstypen kommen noch weitere Felder vor. Wofür stehen aber die wichtigsten Record-Felder?
- <name>: Der Name der Domain ist das, was der Nutzer z. B. in seinen Browser eingibt.
- <ttl>: TTL steht für „Time to live“ und bezeichnet die Zeit (in Sekunden), die ein Eintrag im Cache zwischengespeichert werden darf. Nach Ablauf der Zeit kann nicht sichergestellt werden, dass der Resource Record noch aktuell ist. Die Angabe ist optional.
- <class>: Theoretisch gibt es verschiedene Klassen für DNS-Records, praktisch beziehen die Einträge sich aber immer auf das Internet (als IN gekennzeichnet), weshalb auch diese Angabe optional ist.
- <type>: In einer Zonendatei kommen verschiedene Typen von Resource Records vor (mehr dazu s. u.).
- <rdlength>: Dieses optionale Feld gibt an, welchen Umfang das anschließende Datenfeld hat.
- <rdata>: Resource Data sind die Informationen, nach denen man den Namen der Domain auflösen möchte, beispielsweise die IP-Adresse.
Der DNS-Eintrag für den Webserver von example.com sieht daher so aus:
www.example.com. 12879 IN A 93.184.216.34
Ein Client kann den Eintrag für 12.879 Sekunden (knapp dreieinhalb Stunden) im Cache speichern, bevor die Information erneut vom DNS-Server angefragt werden muss. Es handelt sich um einen DNS-Record im Internet (IN) und einen Typ-A-Eintrag (A). Aufgelöst wird die Domain auf eine IP-Adresse.
Es ist noch eine weitere Notation möglich:
$TTL 12879
$ORIGIN example.com.
www A 93.184.216.34
Diese Schreibweise verdeutlicht, dass der Rechner mit dem Namen www Teil der Domain example.com ist. Auf diese Weise lassen sich auch weitere Rechner wie mail oder ftp unter der Origin-Domain unterbringen.
Der Name einer Domain endet (oder eigentlich: beginnt, da man von rechts nach links geht) mit einem Punkt. In DNS-Records werden Fully Qualified Domain Names (FQDN) verwendet, in denen auch das Root-Label vorkommt, das allerdings leer ist. Es steht prinzipiell hinter dem Punkt.
Die wichtigsten DNS-Record-Typen
Ein Record-Typ bestimmt, welche Art von Information sich in dem Eintrag befindet. Neben der Auflösung von Domain-Namen nach IP-Adressen haben DNS-Records noch weitere Funktionen.
A-Record
Über den Typ A-Record findet der größte Teil der Namensauflösungen im Internet statt. In seinem Datenfeld befindet sich eine IPv4-Adresse. Über diese Einträge ist es beispielsweise möglich, dass Internetnutzer einen Domain-Namen in den Browser eintragen und der Client eine HTTP-Anfrage an die entsprechende IP-Adresse sendet. Da eine IPv4-Adresse immer eine Größe von 4 Byte hat, ist auch der Wert unter rdlength immer 4, falls er angegeben wird.
AAAA-Record
Ein AAAA-Record, auch als „quad-A“ bekannt, funktioniert genau wie der A-Record, nutzt aber statt einer IPv4-Adresse eine IPv6-Adresse zum Auflösen des Namens. Da IPv6 eine Länge von 128 Bit bzw. 16 Byte hat, ist auch hier die Länge des Datenfeldes fest vorgegeben. Die Bezeichnung AAAA geht darauf zurück, dass das Datenfeld die vierfache Länge von dem in einem A-Record hat.
SOA-Record
SOA steht für Start of Authority. Die Einträge dieses Typs enthalten Informationen zur Zone, die durch die Zonendatei bzw. den DNS-Server organisiert wird. Dies ist u. a. wichtig beim Zonentransfer: Bei diesem werden Zonendateien auf weitere Server gespiegelt, um Ausfälle zu verhindern. Der Zonentransfer regelt die regelmäßige Verbreitung der Originaldatei. In einem solchen DNS-Record ist neben der Mailadresse des verantwortlichen Administrators daher auch eine Seriennummer hinterlegt. Diese steigt mit jedem Update der Datei. Hier erfahren Sie mehr über den SOA-Record.
CNAME-Record
Unter einem CNAME-Record (Canonical-Name-Record) findet man einen Alias, also einen zusätzlichen Namen, zu einer Domain. Dabei verweist der Eintrag dann auf einen bestehenden A- oder AAAA-Record. Das Feld rdata ist bei diesem Typ demnach mit einem Domain-Namen gefüllt, der zuvor in der Datei mit einer IP-Adresse verknüpft wurde. Auf diese Weise können verschiedene Adressen auf den gleichen Server verweisen.
MX-Record
Ein MX-Record bezieht sich auf einen Mail Exchange, bzw. einen SMTP-E-Mail-Server. Hier werden ein oder mehrere E-Mail-Server definiert, die zu der entsprechenden Domain gehören. Wenn man mehrere Mailserver verwendet, um beispielsweise einen Ausfall zu kompensieren, gibt man verschiedene Prioritätsstufen an. Auf diese Weise weiß das DNS, in welcher Reihenfolge die Kontaktversuche ablaufen sollen.
PTR-Record
Der PTR-Record (Pointer) ist ein DNS-Record, der einen Reverse-Lookup zulässt. Hierüber kann der DNS-Server auch Auskunft darüber geben, welche Hostnamen zu einer bestimmten IP-Adresse gehören. Zu jeder IP-Adresse, die in A- oder AAAA-Records verwendet wird, existiert demnach auch ein PTR-Record. Die IP-Adresse wird hierbei in umgekehrter Reihenfolge aufgebaut und zudem mit dem Namen einer Zone versehen.
NS-Record
Im NS-Record, dem Nameserver-Eintrag einer Zonendatei, ist die Zuständigkeit für eine spezifische Zone geklärt. Deshalb ist dieser Eintrag obligatorisch für jede Zonendatei. Dieser Resource Record gibt dem DNS-Server Auskunft darüber, ob er für die Anfrage zuständig ist, er also die betreffende Zone organisiert, oder an wen er die Anfrage weiterzuleiten hat.
TXT-Record
Der TXT-Record enthält Text, der entweder für menschliche Nutzer als Informationsquelle gedacht ist oder maschinenlesbare Informationen enthält. Dieser DNS-Eintrag gibt einem Administrator die Möglichkeit, unstrukturierten Text (im Gegensatz zu den strukturierten Daten der anderen DNS-Records) unterzubringen. Dazu können z. B. auch Details über das Unternehmen gehören, das hinter der Domäne steht.
SRV-Record
Über den SRV-Record kann ein Server über weitere Services (SRV) informieren. Dazu wird der Dienst inklusive Port, an dem man diesen erreichen kann, angegeben. Zusätzlich ist das verwendete Protokoll Teil der Namensnennung. Über den DNS-Eintrag kann ein Client beispielsweise Informationen zu LDAP- oder XMPP-Diensten erhalten.
LOC-Record
Über den LOC-Record kann man den Standort des physikalischen Servers bekanntgeben. Dafür stehen am Ende des Eintrags Breitengrad, Längengrad, Höhe über dem Meeresspiegel sowie eine Fehlerabweichung.
Erfahren Sie mehr zum Thema "Was ist DNS-Propagation".
Zonendatei
In der Zonendatei (einer simplen Textdatei) sind alle DNS-Records aufgelistet. Damit die Daten korrekt verarbeitet werden können, müssen bestimmte Vorgaben eingehalten werden. Ansonsten kann das DNS nicht funktionieren und der Client erhält die Fehlermeldung SERVFAIL. Deshalb hält man sich auch an einen speziellen Aufbau: Zunächst wird der Name der Zone angegeben und dann in vielen Fällen die TTL. Die Zeitangabe direkt hier unterzubringen, hat den Vorteil, dass in den einzelnen Resource Records die Angabe weggelassen werden kann. Die TTL gilt dann global für die ganze Zone.
$ORIGIN example.com.
$TTL 12879
Der erste DNS-Eintrag ist ein SOA-Record. Ohne diesen ist eine funktionierende Zonendatei nicht möglich. Umgekehrt gilt: Eine Zonendatei ist auch dann gültig, wenn ausschließlich der SOA-Record vorhanden ist. Anschließend kommen erst Einträge zu den Nameservern und dann die A- und AAAA-Einträge.
Möchte man Kommentare in der Datei unterbringen, um z. B. anderen Administratoren die Arbeit zu erleichtern, verwendet man Semikolons. Am Ende einer Zeile kann man so Informationen zu einem DNS-Record machen, ohne dass der Server den Text verarbeitet. Um die Einträge zu strukturieren, lassen sich Leerzeilen einbauen. Auch diese werden vom System beim Auslesen einfach ignoriert. Pro Eintrag nutzt man eine Zeile; ein Zeilenumbruch schließt den Eintrag ab. Will man allerdings einen Eintrag über mehrere Zeilen laufen lassen, setzt man Klammern.
Alle DNS-Record-Typen im Überblick
Neben den vorgestellten gibt es noch viele weitere mögliche Resource-Record-Typen, die man in Zonendateien finden kann – wenn auch nicht allzu häufig. Die folgende Tabelle stellt alle Typen vor und gibt einen kurzen Einblick in die Funktionen.
Die Internet Assigned Numbers Authority (IANA), die u. a. auch für die Vergabe von IP-Adressen zuständig ist, hat jedem DNS-Record-Typen einen Wert (quasi eine Identifikationsnummer) zugewiesen.
Wert | Typ | Beschreibung |
1 | A | Address gibt die IPv4-Adresse eines Hosts an. |
2 | NS | Nameserver klärt die Autorität einer Zone. |
3 | MD | Mail Destination wurde durch den MX-Record ersetzt (obsolet). |
4 | MF | Mail Forwarder wurde durch den MX-Record ersetzt (obsolet). |
5 | CNAME | Canonical Name definiert einen Alias. |
6 | SOA | Start of Authority gibt Details über die Zone bekannt. |
7 | MB | Mailbox Domain Name ist experimentell. |
8 | MG | Mail Group Member ist experimentell. |
9 | MR | Mail Rename Domain Name ist experimentell. |
10 | NULL | Null Resource ist experimentell. |
11 | WKS | Well Known Service wurde für die Mailweiterleitung verwendet (inzwischen obsolet). |
12 | PTR | Pointer ist für den Reverse-Lookup gedacht. |
13 | HINFO | Host Information liefert Hardware- und Software-Details des Hosts. |
14 | MINFO | Mailbox Information ist experimentell. |
15 | MX | Mail Exchange ordnet E-Mail-Servern eine Domain zu. |
16 | TXT | Text bietet die Möglichkeit, zusätzlichen Text einzutragen. |
17 | RP | Responsible Person liefert Informationen zu Verantwortlichen. |
18 | AFSDB | AFS Database ist speziell für AFS Clients gedacht. |
19 | X25 | X.25 PSDN Address liefert Details zur Einkapselung via X.25 (obsolet). |
20 | ISDN | Eintrag ordnet dem DNS-Namen eine ISDN-Nummer zu (obsolet). |
21 | RT | Route Through Record bietet Route-through Binding ohne WAN-Adresse (obsolet). |
22 | NSAP | Eintrag ermöglicht Zuordnung von Domain-Namen zu Network Service Access Points (obsolet). |
23 | NSAP-PTR | NSAP Pointer wurde durch PTR ersetzt (obsolet). |
24 | SIG | Signature wurde durch RRSIG ersetzt (obsolet). |
25 | KEY | Key wurde durch IPSECKEY ersetzt (obsolet). |
26 | PX | Pointer to X.400 gibt MIXER-Mapping-Regeln an (obsolet). |
27 | GPOS | Geographical Position wurde durch LOC ersetzt (obsolet). |
28 | AAAA | AAAA liefert die IPv6-Adresse eines Hosts. |
29 | LOC | Location enthält Informationen zum Standort. |
30 | NXT | Next wurde durch NSEC ersetzt (obsolet). |
31 | EID | Endpoint Identifier ist für Nimrod Routing Architecture gedacht (obsolet). |
32 | NIMLOC | Nimrod Locator ist für Nimrod Routing Architecture gedacht (obsolet). |
33 | SRV | Service Locator informiert über weitere Dienste. |
34 | ATMA | ATM Address liefert Informationen im Kontext des Asynchronous Transfer Modes (obsolet). |
35 | NAPTR | Naming Authority Pointer ist eine Erweiterung des A-Records, die Suchmuster (reguläre Ausdrücke) zulässt. |
36 | KX | Key Exchanger ermöglicht Schlüsselmanagement für Kryptografie. |
37 | CERT | Cert speichert Zertifikate. |
38 | A6 | A6 wurde durch AAAA ersetzt. |
39 | DNAME | Delegation Name gibt Aliasse für komplette Domains an. |
40 | SINK | Kitchen Sink ermöglicht das Speichern von unterschiedlichen Daten (obsolet). |
41 | OPT | Option ist ein Pseudo-Record im Kontext von DNS-Erweiterungsmechanismen (EDNS). |
42 | APL | Address Prefix List listet Adressbereiche im CIDR-Format auf. |
43 | DS | Delegation Signer identifiziert DNSSEC-signierte Zonen. |
44 | SSHFP | SSH Public Key Fingerprint veröffentlicht den Fingerprint für SSH-Schlüssel. |
45 | IPSECKEY | IPsec Key enthält einen Schlüssel für IPsec. |
46 | RRSIG | RR Signature enthält eine digitale Unterschrift für DNSSEC. |
47 | NSEC | Next Secure verkettet signierte Zonen in DNSSEC. |
48 | DNSKEY | DNS Key enthält einen Public Key für DNSSEC. |
49 | DHCID | DHCP Identifier verknüpft Domain-Namen mit DHCP-Clients. |
50 | NSEC3 | Next Secure 3 ist eine Alternative zu NSEC. |
51 | NSEC3PARAM | Dieser Eintrag enthält Parameter für NSEC3. |
52 | TLSA | Dieser Eintrag erstellt eine TLSA Certificate Association mit einem Domain-Namen im Rahmen von DANE. |
53 | SMIMEA | Dieser Eintrag erstellt eine S/MIME Certificate Association mit einem Domain-Namen. |
54 | n/a | Nicht zugewiesen |
55 | HIP | Host Identity Protocol trennt Endpunktkennzeichnung und Ortungsfunktionen von IP-Adressen. |
56 | NINFO | NINFO liefert Informationen zum Status der Zone (identischer Aufbau zu TXT; obsolet). |
57 | RKEY | RKEY speichert Schlüssel (identischer Aufbau zu KEY und DNSKEY; obsolet). |
58 | TALINK | Trust Anchor Link verbindet zwei Domain-Namen (obsolet). |
59 | CDS | Child DS ist eine Kindkopie eines DS-Records. |
60 | CDNSKEY | Child DNSKEY ist eine Kindkopie eines DNSKEY-Records. |
61 | OPENPGPKEY | OpenPGP Key veröffentlicht Public Keys. |
62 | CSYNC | Child-to-Parent Synchronization ermöglicht den Abgleich von Eltern- und Kindzonen (obsolet). |
63 | ZONEMD | Message Digest for DNS Zone ist experimentell (obsolet). |
64–98 | n/a | Nicht zugewiesen. |
99 | SPF | Sender Policy Framework wurde durch den TXT-Record ersetzt (obsolet). |
100 | UINFO | Reserviert. |
101 | UID | Reserviert. |
102 | GID | Reserviert. |
103 | UNSPEC | Reserviert. |
104 | NID | NodeID ist experimentell. |
105 | L32 | 32-bit Locator ist experimentell. |
106 | L64 | 64-bit Locator ist experimentell. |
107 | LP | Locator Pointer ist experimentell. |
108 | EUI48 | 48-bit Extended Unique Identifier verschlüsselt Adressen. |
109 | EUI64 | 64-bit Extended Unique Identifier verschlüsselt Adressen. |
110–248 | n/a | Nicht zugewiesen. |
249 | TKEY | Transaction Key ermöglicht den Austausch von Secret Keys. |
250 | TSIG | Transaction Signature dient der Authentifizierung. |
251 | IXFR | Incremental Zone Transfer ermöglicht es, Teile einer Zonendatei auf einem zweiten Server zu aktualisieren (obsolet). |
252 | AXFR | AFXR überträgt einen komplette Zonendatei auf einen zweiten Server (obsolet). |
253 | MAILB | Mailbox erfragt Einträge rund um eine Mailbox (obsolet). |
254 | MAILA | Mail Agent wurde durch den MX-Record ersetzt (obsolet). |
255 | * | * erfragt alle Einträge (obsolet). |
256 | URI | Uniform Resource Identifier veröffentlicht die Zuordnung von Hostnamen zu URIs. |
257 | CAA | Certificate Authority Authorization spezifiziert die möglichen CAs für eine Domain. |
258 | AVC | Application Visibility and Control enthält Anwendungsmetadaten für DNS-AS (obsolet). |
259 | DOA | DOA ist nicht mehr aktiv (obsolet). |
260 | AMTRELAY | Automatic Multicast Tunneling Relay ermöglicht das Finden von AMT Relays (obsolet). |
261–32767 | n/a | Nicht vergeben. |
32768 | TA | DNSSEC Trust Authorities ermöglicht DNSSEC ohne Signed Root. |
32769 | DLV | DNSSEC Lookaside Validation veröffentlicht Trust Anchors abseits der normalen DNS-Kette. |
32770–65279 | n/a | Nicht zugewiesen. |
65280–65534 | n/a | Für privaten Gebrauch. |
65535 | n/a | Reserviert. |
- Inklusive Wildcard-SSL-Zertifikat
- Inklusive Domain Lock
- Inklusive 2 GB E-Mail-Postfach