Resource Record
# Resource Record

Ein Resource Record (RR) ist die grundlegende Informationseinheit im Domain Name System (DNS). Er tritt in ASCII-Darstellung in Zonendateien oder in komprimierter Form in DNS-Transport-Paketen oder DNS-Caches auf.

## RR-Format in Zonendateien

Das hier dargestellte Format bezieht sich auf die ASCII-Darstellung, die in Zonendateien verwendet wird. In Caches oder auf dem Transportweg wird ein inhaltsgleiches, aber komprimiertes Binärformat verwendet. RR-Typen werden im Binärformat durch 16-Bit-Zahlenwerte von 0 bis 65535 ausgedrückt. Ähnliches gilt für Class und TTL.

ASCII-Format: [<name>] [<ttl>] [<class>] <type> <rdata>

* <name> Der Domainname des Objekts, zu dem der Resource Record gehört (optional)
* <ttl> time to live (in Sekunden). Gültigkeit des Resource Records (optional)
* <class> Protokollgruppe, zu der der Resource Record gehört (optional)
* <type> beschreibt den Typ des Resource Records
* <rdata> (resource data) Daten, welche den Resource Record näher beschreiben (zum Beispiel eine IP-Adresse für einen A-RR, oder einen Hostnamen für einen NS-RR)

Bei einigen Typen ist rdata in mehrere Subfelder unterteilt, beispielsweise beim MX Resource Record. Die optionalen Komponenten können in der Zonendatei weggelassen werden. Es wird dann vom Nameserver automatisch der zuletzt aufgetretene Wert dieser Komponente eingesetzt. Auf dem Transportweg werden alle Komponenten übertragen, auch die optionalen. Im Binärformat wird vor rdata eine weitere Komponente namens rdlength übertragen, die die Länge von rdata in Bytes angibt.

## Spezielle Arten von Resource Records

### Pseudo-Record

Es gibt RR-Typen, die nie in Zonendateien eingetragen werden, sondern lediglich auf dem Transportweg zwischen Nameserver und Client zum Einsatz kommen, beispielsweise der OPT Resource Record. Diese werden als Pseudo-Resource-Records bezeichnet.

### Wildcard-Record

Wenn ein Domainname mit *. beginnt (beispielsweise *.example.net), handelt es sich dabei um einen Wildcard-Record bzw. Wildcard-Domainnamen. Ein solcher hat eine besondere Bedeutung für den zuständigen Nameserver: der Platzhalter greift für beliebige Label in dem angefragten Domainnamen. Der Nameserver erzeugt für die Antwort einen Resource Record, in dem statt des Sternchen-Platzhalters der angefragte Domainname enthalten ist und der so im Cache zwischengespeichert werden kann. Für den Client ist bei einer unsignierten DNS-Antwort nicht auf Anhieb ersichtlich, dass er eine Wildcard-Antwort erhalten hat.

Wildcards-Records können mit bestehenden Resource Records koexistieren. Die Wildcard greift nur dann, wenn kein anderer Resource Record vorhanden ist, der auf die Anfrage passt.

DNSSEC unterstützt Wildcard-Records. Damit eine Wildcard-Antwort nicht zum Zeitpunkt der Antwort signiert werden muss, sondern dies vorab geschehen kann (Offline-Signierung), enthält das DNSSEC-Protokoll eine Logik zur Validierung von Wildcard-Domainnamen. Für diesen Zweck enthält der RRSIG Resource Record eine Zählerkomponente, die die Anzahl der Namensbestandteile wiedergibt, wobei der Sternchen-Platzhalter nicht mitgezählt wird. Dadurch kann der Client in einer signierten DNSSEC-Antwort ermitteln, dass es sich um einen Wildcard-Domainnamen handelt.

Negative DNSSEC-Antworten erfordern eine zusätzliche Komplexität, um nachzuweisen, dass nicht nur der angefragte Domainname nicht existiert, sondern dass auch kein Wildcard-Domainname existiert. Daher beinhalten negative DNSSEC-Antworten zwei NSEC Resource Records oder drei NSEC3 Resource Records.

## Die zulässigen Klassen

In der Praxis wird nahezu ausnahmslos IN verwendet. Die anderen Klassen haben nur noch historische Bedeutung. Von BIND-Servern wird gelegentlich CH gebraucht, um die Versionsnummer eines Nameservers zu publizieren.

* IN Internet
* CH Chaosnet (selten verwendet)
* HS Hesiod (selten verwendet)
* CS CSNET (wird nicht mehr verwendet)

## RR-Typen

Die folgenden Typen von Resource Records sind bei der Internet Assigned Numbers Authority registriert.

| Typ | Wert (dezimal) | Definierendes RFC | Beschreibung | Funktion |
| - | - | - | - | - |
| A | 1 | RFC 1035 | Address record | Gibt die 32 Bit lange IPv4-Adresse eines Hosts zurück. Am häufigsten für die Zuordnung eines Hostnamens zu einer IP-Adresse des Hosts gebräuchlich, wird aber auch für DNSBLs, Speichern von Subnetzmasken und derlei verwendet. |
| AAAA | 28 | RFC 3596 | IPv6 Address record | Gibt die 128 Bit lange IPv6-Adresse eines Hosts zurück. Am häufigsten für die Zuordnung eines Hostnamens zu einer IP-Adresse des Hosts gebräuchlich. |
| AFSDB | 18 | RFC 1183 | AFS Database Record | Resource Record für den Ort von Cell Database Server des Andrew File Systems. Dieser RR wird üblicherweise von AFS Clients benutzt, um AFS Cells außerhalb ihrer lokalen Domain zu benachrichtigen. Ein Subtyp dieses RR wird von dem mittlerweile veralteten DCE/DFS-Dateisystems verwendet. |
| APL | 42 | RFC 3123 | Address Prefix List | Auflisten von Adressbereichen, z. B. im CIDR-Format, für verschiedene Adressfamilien. Versuchsweise eingeführt. |
| ATMA | 34 | | ATM Address | |
| A6 | 38 | | | Resource Record des Verfahrens A6 zur teilweisen Adressauflösung unter IPv6. Inzwischen veraltet. |
| CAA | 257 | RFC 6844 | Certification Authority Authorization | Certification Authority (CA) Blockierung, die zulässige CAs für einen Host bzw. eine Domain beschränken |
| CDNSKEY | 60 | RFC 7344 | Child DNSKEY | Kindkopie eines DNSKEY-Records, um sie an sein Eltern-Record zu übertragen |
| CDS | 59 | RFC 7344 | Child DS | Kindkopie eines DS-Records, um sie an sein Eltern-Record zu übertragen |
| CERT | 37 | RFC 4398 | Certificate record | Resource Record für das Speichern von Zertifikaten wie PKIX, SPKI und PGP |
| CNAME | 5 | RFC 1035 | Canonical Name record | Kanonischer Name für einen Host (die Domain mit diesem RR ist ein Alias) |
| CSYNC | 62 | RFC 7477 | Child-To-Parent Synchronization | Signalisierungsmechanismus, welche Records in die Eltern-Zone kopiert werden sollen |
| DHCID | 49 | RFC 4701 | DHCP Identifier | In Verbindung mit der FQDN-Option für DHCP benutzt. |
| DLV | 32769 | RFC 4431 | DNSSEC Lookaside Validation record | Benutzt zur Veröffentlichung von DNSSEC Trust Anchors außerhalb der DNS Delegationskette (delegation chain). Benutzt dasselbe Format wie der DS-Record. RFC 5074 beschreibt die Art der Benutzung dieser Records. |
| DNAME | 39 | RFC 2672 | Delegation Name | Alias für einen Namen und alle seine Subnamen. Ähnlich wie CNAME, aber anstatt eines Aliases nur für einen übereinstimmenden Namen, ist DNAME für komplette Domains zuständig. Ähnlich wie CNAME wird die Suche im DNS durch ständiges Probieren, den neuen Namen zu finden, weitergeführt. |
| DNSKEY | 48 | RFC 4034 | DNS Key record | Enthält einen dem Namen zugeordneten Public-Key und löste ab 2004 bei DNSSEC den Typ KEY ab. |
| DS | 43 | RFC 4034 | Delegation Signer | Dient der Identifizierung und Verkettung DNSSEC-signierter Zonen |
| EID | 31 | | Endpoint Identifier | |
| GPOS | 27 | | Geographical Position | Geographische Position, veraltet. |
| HIP | 55 | RFC 5205 | Host Identity Protocol | Methode zur Trennung der Endpunktkennzeichnung und Ortungsfunktionen von IP-Adressen. |
| HINFO | 13 | RFC 1035 | Host Information | Informationen des Hosts wie Prozessortyp und Betriebssystem |
| HTTPS | 65 | RFC Draft | HTTPS Binding | Verbesserte Performance für den direkten Zugriff auf HTTPS-Ressourcen |
| IPSECKEY | 45 | RFC 4025 | IPsec Key | Schlüsseleintrag, der mit IPsec verwendet werden kann |
| ISDN | 20 | | ISDN | ISDN-Nummer, wird nur selten verwendet. |
| KEY | 25 | RFC 2535 und RFC 2930 | Key record | Enthält einen dem Namen zugeordneten Public-Key und wird seit 2004 nicht mehr von DNSSEC verwendet. Wurde nur für SIG(0) (RFC 2931) und TKEY (RFC 2930) verwendet. RFC 3445 schloss die Nutzung für Anwendungsschlüssel aus und beschränkte ihre Nutzung auf DNSSEC. RFC 3755 kennzeichnet DNSKEY als den Ersatz innerhalb von DNSSEC. RFC 4025 benennt IPSECKEY als Ersatz bei der Nutzung von IPsec. |
| KX | 36 | RFC 2230 | Key eXchanger record | Wird in einigen kryptografischen Systemen (DNSSEC nicht eingeschlossen) verwendet, um einen Agenten zum Schlüsselmanagement für den zugehörigen Domainnamen zu bestimmen. Dieses hat nichts mit DNS-Sicherheit zu tun. Dieser Eintrag ist lediglich eine Informationsstatusangabe, anstatt von den IETF-Standards verfolgt zu werden. Er hatte immer eine eingeschränkte Entwicklung, ist aber immer noch in Benutzung. |
| LOC | 29 | RFC 1876 | Location record | Führt einen geografischen Ort (Lokation) auf, der mit einem Domainnamen in Verbindung gebracht werden kann. |
| MB | 7 | | Mailbox domain name | Spezifiziert einen Domainnamen in Verbindung mit einer Mailbox. Experimentell |
| MD | 3 | | Mail Destination | Nicht mehr in Gebrauch. Heutzutage wird MX verwendet. |
| MF | 4 | | Mail Forwarder | Nicht mehr in Gebrauch. Heutzutage wird MX verwendet. |
| MG | 8 | | Mail Group member | Experimentell |
| MINFO | 14 | | Mailbox oder mail list information | |
| MR | 9 | | Mail Rename domain name | Experimentell |
| MX | 15 | RFC 1035 und RFC 7505 | Mail eXchange record | Ordnet den für diese Domain zuständigen Mailserver einer Liste von Mail Transfer Agents zu. |
| NAPTR | 35 | RFC 3403 | Naming Authority Pointer | Eine Erweiterung des A Resource Record, die die Schreibung von Domainnamen mit regulären Ausdrücken erlaubt. Diese kann dann in URIs, weiteren Domainnamen zum Nachschlagen etc. benutzt werden. |
| NINFO | 56 | | NINFO | |
| NS | 2 | RFC 1035 | Name Server record | Hostname eines autoritativen Nameservers. Überträgt eine DNS Zone, um die vorgegebenen Nameserver zu nutzen. |
| NSAP | 22 | RFC 1706 | Network Service Access Point | |
| NSAP-PTR | 23 | RFC 1706 | Network Service Access Point PTR | |
| NSEC | 47 | RFC 4034 | Next-Secure record | Verkettet DNS-Einträge in DNSSEC-signierten Zonen und wird für den Nachweis verwendet, dass ein Name nicht existiert. Benutzt dasselbe Format wie der 2004 abgelöste Typ NXT. |
| NIMLOC | 32 | | Nimrod Locator | |
| NSEC3 | 50 | RFC 5155 | NSEC record version 3 or NSEC hashed | Alternative zum NSEC RR ohne Zone Enumeration Problem (seit 2008). Ermöglicht den Nachweis, dass ein Name fehlt, ohne die Überschreitung einer Zone zuzulassen. |
| NSEC3PARAM | 51 | RFC 5155 | NSEC3 Parameters | Parameter Eintrag für NSEC3. |
| NULL | 10 | | Null Resource Record | Experimentell |
| NXT | 30 | | Next Resource Record | Veraltet. Wurde durch den praktisch identischen NSEC Resource Record abgelöst. |
| OPENPGPKEY | 61 | RFC 7929 | OpenPGP Key | Verknüpfung von OpenPGP-Schlüsseln mit Domainnamen |
| OPT | 41 | RFC 2671 | Option Resource Record | Pseudo RR, markiert ein Paket als Extended-DNS-Paket (EDNS), stellt 16 zusätzliche Flags bereit und erweitert Response-Codes um acht Bytes (damit können in einem Paket insgesamt drei Response-Codes untergebracht werden). |
| PTR | 12 | RFC 1035 | Pointer record | Domain Name Pointer zu einem kanonischen Namen für das Reverse Mapping, um IP-Adressen Namen zuzuweisen. Im Gegensatz zu CNAME wird die DNS-Verarbeitung beendet und lediglich der Name zurückgegeben. Die häufigste allgemeine Verwendung von PTR ist die Implementierung von Reverse Mappings, aber es wird auch für DNS-SD eingesetzt. |
| RKEY | 57 | | RKEY | |
| RP | 17 | RFC 1183 | Responsible Person | Information über die verantwortliche(n) Person(en) für die Domain. Üblicherweise eine E-Mail-Adresse, wobei das '@' durch ein '.' ersetzt wurde. |
| RT | 21 | RFC 1183 | Route Through | |
| RRSIG | 46 | RFC 4034 | DNSSEC Signature | Enthält eine digitale Unterschrift für den Eintrag. Wird seit 2004 von DNSSEC (=DNS Security) verwendet und ersetzt das gleichformatige SIG. |
| SIG | 24 | RFC 2535 | Signature | Enthält eine digitale Unterschrift, die in SIG(0) (RFC 2931) und TKEY (RFC 2930) benutzt wird. SIG ist veraltet und wurde bis 2004 von DNSSEC (=DNS Security) verwendet. RFC 2535 nennt RRSIG als Ersatz für SIG zur Benutzung in DNSSEC. |
| SINK | 40 | | SINK | |
| SMIMEA | 53 | RFC 8162 | S/MIME cert association | Verknüpfung von S/MIME-Zertifikaten mit Domainnamen |
| SOA | 6 | RFC 1035 und RFC 2308 | Start Of [a zone of] Authority | Führt verbindliche Informationen über eine DNS-Zone auf, einschließlich des Primary Nameservers, der E-Mail-Adresse des Administrators der Domäne, der Seriennummer der Domäne und Angaben über mehrere Zeitgeber in Bezug auf die Aktualisierung der Zone. |
| SPF | 99 | | Sender Policy Framework (früher Sender Permitted From) | Der Eintrag SPF soll das Fälschen der Absenderadresse einer E-Mail verhindern. Es entstand als Verfahren zur Abwehr von Spam. Der Record-Typ ist veraltet und wurde durch TXT ersetzt. |
| SRV | 33 | RFC 2782 | Service locator | Verallgemeinernder Eintrag zu angebotenen Diensten (Services). Wird von neueren Protokollen benutzt anstatt protokollspezifische Einträge zu erstellen, wie dies bei MX der Fall ist. |
| SSHFP | 44 | RFC 4255 | SSH public key Fingerprint | Veröffentlichung der Fingerprints von SSH-Schlüsseln in das DNS, um die Überprüfung der Echtheit eines Hosts zu unterstützen. RFC 6594 definiert die ECC SSH-Schlüssel und die SHA-256 Hashes. Details sind bei der IANA SSHFP RR parameters registry zu finden. |
| SVCB | 64 | | Service Binding type for use with HTTP | |
| TA | 32768 | – | DNSSEC Trust Authorities | Teil eines Entwicklungsvorschlages für DNSSEC ohne signierten DNS Root. Zu Details siehe die IANA und die Weiler Spezifikationen. TA benutzt dasselbe Format wie der DS Resource Record. |
| TALINK | 57 | | Trust Anchor LINK | |
| TKEY | 249 | RFC 2930 | Secret Key | Eine Methode, um Artikel für Schlüssel zur Verfügung zu stellen, die mit TSIG benutzt werden können und das dort innerhalb des öffentlichen Schlüssels mit dem begleitenden KEY Resource Record verschlüsselt ist. |
| TLSA | 52 | RFC 6698 | TLSA certificate association | Eintrag nötig für das Protokoll DNS-based Authentication of Named Entities (DANE), das dazu dient, den Datenverkehr abzusichern. RFC 6698 definiert die Nutzung des TLSA Resource Records (RR) als Verbindung eines TLS Serverzertifikates oder eines öffentlichen Schlüssels mit dem Domainnamen, wo der Eintrag gefunden wird. Die Verbindung erstellt deshalb eine „TLSA Zertifikatsverbindung“. |
| TSIG | 250 | RFC 2845 | Transaction Signature | Kann, in ähnlicher Weise zu DNSSEC, für die Authentifikation von dynamischen Aktualisierungen in der Art verwendet werden, als ob diese von einem freigegebenen Client kommt, oder Antworten zu authentifizieren als ob diese von einem freigegebenen rekursiven Nameserver kommen. |
| TXT | 16 | RFC 1035 | Text record | Ursprünglich erdacht für frei definierbaren und von Menschen lesbaren Text in DNS Einträgen. Seit den frühen 1990ern enthält dieser Eintrag häufig jedoch u. a. auch maschinenlesbare Daten wie in RFC 1464 spezifiziert, SPF, DKIM, DMARC, DNS-SD und Google-Site Verification. |
| URI | 256 | RFC 7553 | Uniform Resource Identifier | Wird benutzt, um Abbildungen von Hostnamen auf URIs zu veröffentlichen. |
| WKS | 11 | RFC 974 | Well Known Service | Wird in der Mailweiterleitung benutzt und speichert Informationen über die Netzwerkdienste (wie z. B. SMTP), die ein vorgegebener Domainname unterstützt. |
| X25 | 19 | RFC 1356 | X.25-Adresse | Spezifiziert die Einkapselung von IP und anderen Netzwerkschichtprotokollen über X.25-Netzwerke. Wird nur selten verwendet. |
| ZONEMD | 63 | RFC 8976 | Message Digest Over Zone Data | Kryptographischer Hashwert einer Zone |
