CNAME
Mit einem CNAME Resource Record (CNAME für eng. canonical name) wird zu einem vorhandenen DNS-Namen ein Alias-Name definiert. Links im Resource Record (RR) steht der Alias-Name und rechts der Original-Name oder in der DNS-Terminologie: der kanonische Name. Zu einem kanonischen Namen können beliebig viele Aliase definiert werden. Umgekehrt darf ein Alias-Name nur an einen kanonischen Namen verweisen.
Inhaltsverzeichnis
Aufbau
- Alias-Name
- TTL
- (TTL = Time to Live) gibt an, wie lange dieser RR in einem Cache gültig sein darf
- IN
- CNAME
- Original-Name
Im folgenden Beispiel wird zum kanonischen Namen linux.heim.netz ein Alias angelegt:
linux.heim.netz 1285 IN A 192.168.3.1 heim.netz 1285 IN CNAME linux.heim.netz
Komplexere Fälle
Zu einem kanonischen Namen können mehrere Aliase angelegt werden:
linux.heim.netz 1285 IN A 192.168.3.1 heim.netz 1285 IN CNAME linux.heim.netz www.heim.netz 1285 IN CNAME linux.heim.netz
Es ist auch nicht explizit verboten einen Alias auf einen bestehenden Alias zu definieren, also Aliase zu verketten:
linux.heim.netz 1285 IN A 192.168.3.1 heim.netz 1285 IN CNAME linux.heim.netz www.heim.netz 1285 IN CNAME heim.netz
Laut Standard sollen Domainnamen in RRs jedoch stets auf den kanonischen Namen zeigen. Es wird also stark davon abgeraten, dass ein CNAME RR auf einen anderen Alias zeigt. Ebenso folgt daraus zum Beispiel, dass ein MX RR nicht auf einen Alias zeigen sollte.
Es ist auch möglich, einen Alias zu einem kanonischen Namen aus einer anderen Domain zu definieren. Beispiel:
linux.heim.netz 1285 IN CNAME neu.heim.netz.
Nicht zulässig ist, einen Alias zu definieren, für den ein weiterer RR-Typ gleichen Namens existiert. Der Nameserver wüsste in diesem Fall nicht, wie er sich verhalten sollte. In diesem Beispiel existiert für den Namen heim.netz sowohl ein A-RR als auch ein CNAME-RR:
heim.netz 1285 IN A 192.168.3.1 heim.netz 1285 IN CNAME linux.heim.netz
Alias-Auflösung
Wenn ein Nameserver einen DNS-Request empfängt, für den ein CNAME-RR existiert, so löst er diesen selbst auf. Im obersten Beispiel erkennt der Nameserver, dass sich hinter heim.netz der kanonische Name linux.heim.netz verbirgt und löst diesen auf, d. h. er ermittelt die zugehörigen IP-Adresse 192.168.3.1.
Bei der Antwort auf einen DNS-Request wird neben der IP-Adresse auch der kanonische Name übergeben. Der Resolver kann so erkennen, dass sich seine ursprüngliche Anfrage auf einen Alias-Namen bezogen hatte.
Beispiel
Ein nslookup würde folgende Antwort liefern:
Linux Beispiel (ohne Alias auflösung)
linux:~ # nslookup linux.heim.netz Server: 192.168.3.1 Address: 192.168.3.1#53 Name: linux.heim.netz Address: 192.168.3.1
Beim Alias wird folgendes angezeigt:
linux:~ # nslookup heim.netz Server: 192.168.3.1 Address: 192.168.3.1#53 heim.netz canonical name = linux.heim.netz Name: linux.heim.netz Address: 192.168.3.1
Windows Beispiel:
C:\>nslookup heim.netz Name: linux.heim.netz Address: 192.168.3.1 Aliases: heim.netz
Es kann natürlich passieren, dass der Nameserver einen kanonischen Namen nicht auflösen kann. In diesem Fall lässt er bei der Antwort einfach die IP-Adresse weg, und übergibt nur den kanonischen Namen. Der Resolver kann dann selbst versuchen, diesen Namen aufzulösen.
Hinweis: |
Ein PTR-RR sollte niemals auf einen Alias zeigen, sondern grundsätzlich auf einen kanonischen Namen. Die meisten Nameserver akzeptieren allerdings auch PTR-RRs auf Aliase. Korrektes Beispiel (linux.heim.netz ist ein kanonischer Name): 200.100.23.127.in-addr.arpa. IN PTR linux.heim.netz.example.com. Inkorrektes Beispiel (heim.netz ist ein Alias): 200.100.23.127.in-addr.arpa. IN PTR heim.netz.example.com. |
Quellen und weiterführende Links
- RFC 1035
- bind
Dieser Artikel ist aus der Wikipedia mit der dortigen Lizenz GFDL (Wikipedia) übernommen worden. Die Quelle in der Wikipedia unter CNAME ist zum Zeitpunkt der Einfügung identisch mit dem, was im Linux-Cub Wiki unter CNAME steht. Der Artikel kann gerne überarbeitet werden. Wenn der Artikel der Quelle im Wortlaut nicht mehr entspricht, kann der Baustein entfernt werden, es muss aber die Quellenangabe unten eingefügt werden. Zudem sollte dann der Bausteine Vorlage:GFDL eingefügt werden, da der Artikel dann unter diese Lizenz fällt. In der Wikipedia ist eine Liste der Autoren verfügbar. |