CNAME (canonical name) is a DNS record type that maps an alias domain name to a canonical target name, enabling multiple hostnames to depend on a single address through RFC 1034-compliant indirection. When a resolver encounters a CNAME record, it restarts its lookup at the canonical name and returns the target's records, reducing manual updates when services change addresses but introducing operational risks including subdomain takeover, mail delivery failures, and resolution delays. Organizations using CNAMEs extensively must implement regular audits of CNAME targets and remove stale aliases pointing to deprovisioned services to mitigate security vulnerabilities and maintain DNS reliability.
So funktioniert CNAME
Ein CNAME-Eintrag speichert einen Aliasnamen und den kanonischen Namen, auf den er verweist. Wenn ein Resolver den Alias abfragt, weist die Antwort ihn an, stattdessen den kanonischen Namen nachzuschlagen.
- Client fragt den Alias ab: Ein Client fragt einen rekursiven Resolver nach einem Eintrag, beispielsweise einem A-Eintrag, für den Aliasnamen, zum Beispiel www.example.com.
- Der Server gibt den CNAME zurück: Der autoritative Server findet unter dem Alias keine Adressdaten, stößt dort jedoch auf einen CNAME-Eintrag. Er gibt diesen Eintrag zurück, der den kanonischen Namen angibt.
- Neustart des Resolvers am Ziel: Der Resolver wiederholt die Abfrage nach dem kanonischen Namen unter Verwendung desselben Datensatztyps. Dies kann eine andere Zone oder einen anderen autoritativen Server betreffen.
- Endgültige Antwort wird zurückgegeben: Der Resolver erhält die Einträge für den kanonischen Namen, wie beispielsweise dessen A- oder AAAA-Adressen, und gibt die vollständige Kette an den Client zurück, der die Adressen verwendet.
Ein Name, der über einen CNAME-Eintrag verfügt, darf keine anderen Eintragstypen unter demselben Namen haben. Aus diesem Grund kann ein CNAME nicht an der Spitze einer Zone stehen, wo SOA- und NS-Einträge vorhanden sein müssen. Jedes Glied in der Kette wird entsprechend seiner eigenen TTL zwischengespeichert, und lange Ketten verlängern die Abfragezeit.
Häufige Probleme mit CNAME-Einträgen
Das Hinzufügen eines CNAME-Eintrags an der Spitze einer Zone steht im Konflikt mit den SOA- und NS-Einträgen, die dort vorhanden sein müssen. Server können das Laden der Zone ablehnen, oder E-Mail- und Delegierungsfunktionen können ausfallen, wenn der Eintrag akzeptiert wird.
Ein CNAME, der unter einem Namen angelegt wird, der bereits MX-, TXT- oder andere Daten enthält, verstößt gegen RFC 1034. Zu den Symptomen gehören Fehler bei der E-Mail-Zustellung, verlorene Verifizierungsdatensätze und inkonsistente Antworten zwischen Resolvern.
Aliase, die auf Aliase verweisen, verursachen zusätzliche Lookups und Latenz, und eine Schleife zwischen zwei Namen führt dazu, dass die Auflösung mit dem Fehler „SERVFAIL“ fehlschlägt. Resolver begrenzen die Kettentiefe, sodass tiefe Ketten zeitweise fehlschlagen können.
Ein CNAME, der auf ein gelöschtes oder stillgelegtes Ziel verweist, gibt für den Alias den Status „NXDOMAIN“ zurück. Gehört der Zielname zu einem externen Dienst, den jemand anderes beanspruchen kann, kann der Alias für die Übernahme von Subdomains missbraucht werden.
Der Alias und der kanonische Name haben jeweils ihre eigene TTL, sodass eine Änderung am Ziel die Clients zu unterschiedlichen Zeitpunkten erreichen kann. Techniker beobachten, dass einige Nutzer nach einer Umstellung noch auf die alte Adresse zugreifen, bis beide zwischengespeicherten Einträge abgelaufen sind.