Das Domain Name System (DNS) er­mög­licht das Surfen durchs World Wide Web, wie wir es kennen: Man gibt den Namen einer Domain in Form einer URL ein und kommt so auf die ge­wünsch­te Website. Die ei­gent­li­che Kom­mu­ni­ka­ti­on findet al­ler­dings über eine in­di­vi­du­el­le IP-Adresse statt. Das DNS basiert auf Einträgen in Zo­nen­da­tei­en. Die ei­gent­li­che Na­mens­auf­lö­sung findet durch die wichtigen Typen der A-Records und AAAA-Records statt.

Hinweis

Es gibt viele ver­schie­de­ne Record-Typen. In unserem um­fang­rei­chen Artikel über DNS-Records erklären wir nicht nur die grund­le­gen­den Ei­gen­schaf­ten der Einträge, sondern bieten auch eine Über­blick­s­ta­bel­le mit sämt­li­chen Typen.

Es ist aber nicht so, dass eine IP-Adresse immer nur mit einem Do­main­na­men verknüpft ist. Es können auch mehrere Namen auf die gleiche IP-Adresse verweisen. Um das zu er­mög­li­chen, nutzt das DNS die CNAME-Records.

Was sind CNAME-Records?

Das DNS basiert auf einem dezentral or­ga­ni­sier­ten Server-Netzwerk. Name­ser­ver verwalten bestimmte Zonen und verfügen zu diesem Zweck über Zo­nen­da­tei­en: Einfache Text­da­tei­en, in denen ver­schie­de­ne DNS-Records Zeile für Zeile auf­ge­führt sind. Die Einträge setzen sich aus ver­schie­de­nen Typen zusammen. Um dem Do­main­na­men mit einer IPv4-Adresse zu ver­knüp­fen, wählt man den Typ A. Mit dem Typ CNAME verknüpft man wiederum einen Do­main­na­men mit einem Alias – also einem anderen Namen, unter dem dasselbe Angebot zu erreichen ist.

Der ei­gent­li­che Name ist dann jener, der in einem A-Record mit der IP-Adresse verbunden wird. Der Vorteil hierbei: Ändert sich die IP-Adresse, muss man lediglich den A-Record anpassen. Da alle Aliase sich wiederum auf diesen Eintrag des Typs A (oder AAAA) beziehen, werden die CNAME-Records direkt mit­an­ge­passt.

Fakt

Die Be­zeich­nung CNAME ist ein Kof­fer­wort aus ‚Canonical Name‘, also ka­no­ni­scher Name – der Name, der Standard ist. Deshalb ist die Be­zeich­nung auch etwas ver­wir­rend, denn der Eintrag etabliert eben nicht den ‚ei­gent­li­chen‘ Do­main­na­men, sondern sein Alias.

Syntax von CNAME

DNS-Records folgen einer stan­dar­di­sier­ten Syntax mit ver­schie­de­nen Feldern:

  • <name>: Im ersten Feld erscheint das Alias der Domain.
  • <ttl>: Die „Time to live“ be­zeich­net die Zeit, die ein Eintrag im Cache behalten werden darf, bevor man die In­for­ma­tio­nen neu anfordern muss.
  • <class>: Das Class-Feld ist optional und gibt die Art des Netz­wer­kes an, für das der Eintrag gilt.
  • <type>: Dieses Feld legt den Typ des Eintrags fest – in diesem Fall also CNAME.
  • <rdata>: Das letzte Feld enthält die In­for­ma­ti­on, auf die sich der Eintrag ei­gent­lich bezieht, in diesem Fall also der ei­gent­li­che Name der Domain.

Die Felder werden einfach durch Leer­zei­chen getrennt und innerhalb einer Zeile an­ge­ord­net:

<name> <ttl> <class> <type> <rdata>

Die so­ge­nann­te Time to live (TTL) gibt praktisch die Halt­bar­keit der In­for­ma­tio­nen an. Der Anbieter ga­ran­tiert, dass die Daten in diesem Zeitraum korrekt sind und daher im Cache bleiben dürfen. Ist die Zeit ab­ge­lau­fen, müssen die In­for­ma­tio­nen erneut vom Server abgerufen werden. In der Praxis taucht das Feld al­ler­dings nur selten in den einzelnen Einträgen auf. Statt­des­sen legt man global für die komplette Zone eine TTL fest. Die einzelnen Records über­neh­men diese dann.

Das optionale Feld zur Klasse hat heute nur noch his­to­ri­schen Wert: Bei der Eta­blie­rung des DNS kamen ur­sprüng­lich noch die beiden heute nicht mehr exis­tie­ren­den Netzwerke Hesiod (HS) und Chaosnet (CH) in Frage. In­zwi­schen ist nur noch das Internet übrig geblieben. Deshalb findet man an dieser Stelle entweder das Kürzel IN oder das Feld entfällt komplett.

Namen werden in DNS-Einträgen immer im Format der Fully Qualified Domain Names (FQDN) angegeben. Das bedeutet, dass die Angabe mit einem Punkt endet. Grund dafür: FQDN verfolgen den kom­plet­ten Pfad einer Domain nach – und diese beginnt (ganz rechts) mit dem Root­ser­ver. Da das ent­spre­chen­de Feld al­ler­dings leer ist, bleibt nur der Punkt übrig, der die Be­stand­tei­le von­ein­an­der trennt.

Hinweis

Ein CNAME-Record muss immer auf eine andere Domain verweisen. Es ist nicht zulässig, statt­des­sen eine IP-Adresse ein­zu­set­zen. Außerdem ist es nicht zulässig, das de­fi­nier­te Alias in anderen Record-Typen zu verwenden. Empfohlen wird zudem, einen CNAME-Eintrag nicht auf einen anderen CNAME-Eintrag verweisen zu lassen. Das führt zwar nicht zu einem Fehler, macht die Zo­nen­da­tei aber unnötig komplex.

CNAME-Beispiel

In der Praxis sieht ein CNAME-Record fol­gen­der­ma­ßen aus:

www.example.net. CNAME www.example.com.

Damit der Verweis durch CNAME funk­tio­nie­ren kann, muss ebenfalls ein A- und/oder AAAA-Record in der Zo­nen­da­tei vorhanden sein.

$TTL 11107
www.example.com.	IN	A		93.184.216.34
www.example.com.	IN	AAAA		2606:2800:220:1:248:1893:25c8:1946
www.example.net.	IN	CNAME		www.example.com.
www.example.org.	IN	CNAME		www.example.com.

Die beiden CNAME-Records verweisen auf den A- bzw. AAAA-Record. Die Time to live ist global für die ganze Zone (dar­ge­stellt wird das durch das Dol­lar­zei­chen) auf 11107 Sekunden gesetzt – sie beträgt also etwas mehr als drei Stunden.

CNAME-Check: Wie man den CNAME-Eintrag her­aus­fin­det

Möchten man den CNAME-Record einer Website her­aus­fin­den, kann man entweder zu einer spe­zi­el­len Software greifen oder einfach einen Webdienst dafür verwenden. Mit Public DNS stellt Google einen eigenen DNS-Server zur Verfügung, über den man an die ver­schie­dens­ten DNS-Records von Websites kommt.

Auf der Start­sei­te des Angebots gibt man dazu die ge­wünsch­te Domain ein, deren CNAME man checken möchte. Auf der folgenden Seite wechselt man den RR type (stan­dard­mä­ßig ist dieser auf A gestellt) auf den CNAME-Record, dann muss man noch einmal den Resolve-Button anklicken und erhält an­schlie­ßend das Ergebnis.

Die beiden Ein­stel­lun­gen zu EDNS client subnet und DNSSEC können un­ver­än­dert bleiben. Ersteres ist ein Me­cha­nis­mus, der den Standort des An­fra­gen­den mit erfassen und dadurch ef­fi­zi­en­te­re Er­geb­nis­se liefern soll – er wird derzeit aber nur von Google und OpenDNS vor­an­ge­trie­ben. DNSSEC auf der anderen Seite ga­ran­tiert dem Nutzer, dass die In­for­ma­tio­nen nicht durch einen Dritten ma­ni­pu­liert wurden, der sich unbemerkt in die Kom­mu­ni­ka­ti­on ge­schal­tet hat.

Zum Hauptmenü