Verständnisfrage zu CNAME-Records und RFC-Konformität

nexus

Well-Known Member
Ich habe gelernt, daß ein CNAME-Record nicht auf einen anderen CNAME-Record zeigen darf.
Nach ein wenig Recherche (Dank hierfür an danton) zeigt sich, daß zb. die englische Wiki sagt, daß es aus Effizienzgründen nicht zu empfehlen sei, aber keinen Fehler darstellt.
Aus der entsprechenden RFC konnte ich jetzt nicht wirklich herausarbeiten, ob CNAME auf CNAME nun RFC-konform ist oder nicht.

Kann da jemand mal einen Denkanstoß geben?
 
RFC 2181 ist nur Erklärung für Undeutlichkeiten, im RFC 1034 ist es aber ziemlich deutlich dass es erlaubt ist, wenn auch über Umwege.
Im letzten Abschnitt von Paragraph 3.6:

Of course, by the robustness
principle, domain software should not fail when presented with CNAME chains or loops; CNAME chains should be followed and CNAME loops signalled as an error.

Beachte aber das "should not fail"; ein Resolver _darf_ also einen Fehler auswerfen oder es inkorrekt interpretieren. Es ist somit nicht nur aus Performance- sondern auch aus Kompatibilitätsgründen eventuell nicht die beste Idee aber erlaubt.
 
Ich denke, in der englishe Wikipedia ist es auch recht gut geschrieben:
CNAME records that point to other CNAME records should be avoided due to their lack of efficiency, but are not an error.
Da man allerdings nicht sagen kann, wie sich die unterschiedlichen Resolver verhalten, wenn sie auf eine Verkettung von CNAME-Records treffen, würde ich sagen: In der Praxis sollte ein CNAME immer auf einen A/AAAA-Record zeigen - dann ist sichergestellt, daß es auch zuverlässig funktioniert.
 
Code:
>host www.microsoft.com
www.microsoft.com is an alias for toggle.www.ms.akadns.net.
toggle.www.ms.akadns.net is an alias for g.www.ms.akadns.net.
g.www.ms.akadns.net is an alias for lb1.www.ms.akadns.net.
lb1.www.ms.akadns.net has address 64.4.11.42
Bei Google war es früher genauso, die liefern jetzt aber sofort A-Records.
 
Besten Dank für die Infos und Verweise :)

Code:
>host www.microsoft.com
www.microsoft.com is an alias for toggle.www.ms.akadns.net.
toggle.www.ms.akadns.net is an alias for g.www.ms.akadns.net.
g.www.ms.akadns.net is an alias for lb1.www.ms.akadns.net.
lb1.www.ms.akadns.net has address 64.4.11.42
Bei Google war es früher genauso, die liefern jetzt aber sofort A-Records.
Ich verstehe grad nicht wirklich, welchen Sinn bzw. Nutzen eine derartige Alias-Verkettung haben soll...allein schon die Auflösung bis zur IP dürfte doch einiges an zusätzlicher Performance schlucken...:confused:
 
Ein häufiger Grund ist Geolocation, das heißt es werden je nach Ort des Fragenden (genauer gesagt je nach IP seines rekursiven Nameservers) unterschiedliche Antworten gegeben.

Bei dem o.g. Extrembeispiel kommt noch dazu, daß Microsoft diese Daten an einen externen CDN-Spezialisien (Akamai) ausgelagert hat und der über seine eigene Nameserver-Infrastruktur entscheiden will, aus welchem Rechenzentrum er die Anfrage beantwortet.

Dem Namen nach vermute ich, daß g.www.ms.akadns.net der geolokalisierte DNS ist (wie bei Google l.google.com).
Code:
host maps.google.com
maps.google.com is an alias for maps.l.google.com.
maps.l.google.com has address 173.194.70.139
maps.l.google.com has address 173.194.70.100
maps.l.google.com has address 173.194.70.102
maps.l.google.com has address 173.194.70.113
maps.l.google.com has address 173.194.70.138
maps.l.google.com has address 173.194.70.101
maps.l.google.com has IPv6 address 2a00:1450:4001:c02::71
Ein ähnliches Negativbeispiel ist übrigens Apple...
Code:
> host www.apple.com
www.apple.com is an alias for www.isg-apple.com.akadns.net.
www.isg-apple.com.akadns.net is an alias for www.apple.com.edgekey.net.
www.apple.com.edgekey.net is an alias for e3191.dscc.akamaiedge.net.
e3191.dscc.akamaiedge.net has address 23.63.125.15
e3191.dscc.akamaiedge.net has IPv6 address 2a02:26f0:10:3:9600::c77
e3191.dscc.akamaiedge.net has IPv6 address 2a02:26f0:10:3:a400::c77
e3191.dscc.akamaiedge.net has IPv6 address 2a02:26f0:10:3:8100::c77
...oder im deutschen Sprachraum Elster:
Code:
> host download.elster.de
download.elster.de is an alias for download.elster.de.edgekey.net.
download.elster.de.edgekey.net is an alias for e2092.d.akamaiedge.net.
e2092.d.akamaiedge.net has address 2.18.40.172
 
Ein häufiger Grund ist Geolocation, das heißt es werden je nach Ort des Fragenden (genauer gesagt je nach IP seines rekursiven Nameservers) unterschiedliche Antworten gegeben.

Bei dem o.g. Extrembeispiel kommt noch dazu, daß Microsoft diese Daten an einen externen CDN-Spezialisien (Akamai) ausgelagert hat und der über seine eigene Nameserver-Infrastruktur entscheiden will, aus welchem Rechenzentrum er die Anfrage beantwortet.
Hmm...Verstehe ich das jetzt richtig, daß das letztendlich eine Form von Lastverteilung ist?
 
Back
Top