Mehrere CNAMEs haben

11

Wir haben unsere DNS-Domain mit 5-Level-CNAMEs aus historischen Gründen. Einige der Dinge wurden wegen hoher Verfügbarkeit usw. ausgelagert, aber das ist hier nicht der Punkt. Meine Frage ist, ob 5 CNAME ein Overkill für den DNS-Resolver sind. Ich konnte keine berühmte Website mit mehr als 2-3 verschachtelten CNAMEs finden, die auf verschiedene DNS-Domänen verweisen.

Unsere CNAME-Hops sehen wie folgt aus: (Ich verwende xyz nur als Beispiel)

www.xyz.com -> xyz.akadns.net -> xyz.worldwide.akadns.net -> xyz.cedexis.net -> xyz.msedge.net -> host1.msedge.net (endgültiger A \ AAAA-Datensatz)

Ich sehe viele Kunden, die sich über Probleme mit der DNS-Auflösung auf unserer Website beschweren, wenn andere Websites für sie einwandfrei funktionieren, obwohl ich http://check-host.net/check-dns?host=www.xyz.com zum Testen unseres DNS verwende Auflösung.

Es scheint weltweit immer gut zu funktionieren. Mein Fazit ist, dass der DNS-Resolver des lokalen ISP-Anbieters meistens versagt, wenn einer der oben genannten Hops nicht aufgelöst werden kann. nslookup schlägt auf diesen Client-Computern nur für unsere Website fehl und das auch sporadisch.

Ist diese Art von mehrstufigem CNAME im Allgemeinen ein schlechtes Design?

Vishal Naidu
quelle
1
Ich habe vor einigen Jahren für Akamai gearbeitet, und einer unserer Kunden berichtete, dass ein bestimmter Router ein Problem mit 5 Verschachtelungsebenen hatte. Ich denke, die Router-Firmware wurde schließlich behoben.
Barmar

Antworten:

15

Ist diese Art von mehrstufigem CNAME im Allgemeinen ein schlechtes Design?

CNAME-zu-CNAME-Ketten sind nicht verboten, aber wie Sie bereits erfahren haben, ist dies keine sehr robuste Lösung.

Jeder zusätzliche CNAME erhöht die Rekursionstiefe für den Resolver, und diese Tiefe ist nicht immer unbegrenzt. Außerdem laufen Sie Gefahr, Schleifen zu erstellen oder den Schleifenerkennungsalgorithmus auszulösen.

Führen Sie einen DNS-Trace aus, um einen Eindruck davon zu erhalten, wie viele und welche Abfragen ein Nameserver Ihres Benutzers ausführen muss:

dig +trace www.example.com 

oder unter Windows

nslookup -debug www.example.com
HBruijn
quelle
10

HBrujin ist richtig, aber in Wahrheit ist die Rekursionstiefe viel schlimmer als alles, dig +tracewas Sie zeigen werden. Die Rekursionstiefe wird oft verhöhnt und überbewertet, aber diese Leute vergessen, dass Sie nicht nur ~ 5 CNAMEDatensätze auflösen . Dies liegt daran, dass beim Auflösen des Ziels eines CNAMEDatensatzes jeder Nameserver im Pfad nachgeschlagen werden muss. Dies ist häufig viel mehr, als auf den ersten Blick ersichtlich ist.

Lebt das CNAMEZiel in einer anderen Domäne? Sie müssen in die Nameserver zurückgreifen, was nicht nur NSAufzeichnungssuchen erfordert, sondern auch Suchen, bei denen kein A(AAA)Klebstoff vorhanden ist. Leben die Nameserver für diese Nameserver in einer anderen Top-Level-Domain? Wenn diese TLDs keine Nameserver gemeinsam nutzen, werden die Kleberdatensätze wahrscheinlich nicht enthalten sein, und Sie müssen auch die Nameserver der anderen TLDs durchsuchen. Und so weiter.

Jeder CNAMEder Kette hinzugefügte Datensatz kann die Anzahl der erforderlichen Suchvorgänge exponentiell erhöhen, abhängig von der Anzahl der Nameserver, die durchlaufen werden müssen. Diese Ketten von CNAME+ NS+ A(AAA)Datensatz-Lookups können wiederum wahnsinnig verworren sein und weit über 150 Ebenen in einem leeren Cache erreichen. Hier können Rekursionstiefenbeschränkungen extrem unangenehm werden, was zu vorübergehenden Fehlern beim Nachschlagen Ihrer Domain in einem leeren Cache führt und dies aus Gründen, die häufig nicht sofort ersichtlich sind.

Kurz gesagt, Sie können dies tun, aber seien Sie vorsichtig und nehmen Sie Feedback dieser Art ernst. Sie haben keine Kontrolle darüber, wie häufig rekursive DNS-Server im Internet neu gestartet oder gelöscht werden.

Andrew B.
quelle
Meine Client-Software befindet sich auf einer Reihe von Computern, die Remote-HTTP-Aufrufe ausführen. Ist es dann fair, alle CNAMEs vom Client erneut zu versuchen, um die Rekursionstiefe \ Belastung des Resolvers zu verringern? Klingt das nach einem guten Ansatz oder fehlt mir etwas? Ich weiß, dass sich die CNAMEs nicht geografisch ändern werden.
Vishal Naidu
Kein guter Ansatz. Normalerweise wird der Fehler von dem Server, der die Daten nicht nachschlagen konnte, vorübergehend zwischengespeichert. Die Abfrage ist möglicherweise in Zukunft erneut erfolgreich (z. B. in 5 Minuten), es ist jedoch unwahrscheinlich, dass sie bei einem sofortigen erneuten Versuch erfolgreich ist. Wenn Sie den Namen Ihres DNS-Eintrags angeben, kann ich Ihnen mitteilen, ob dies wirklich ein Problem mit der Rekursionstiefe oder etwas weniger offensichtliches ist. Ich würde es hassen, wenn wir das falsche Kaninchenloch hinuntergehen würden.
Andrew B
0

Mehrebenen CNAMEsind in der Praxis oft praktisch. Jede Umleitungsebene bietet eine Kontrollebene in einer möglicherweise unterschiedlichen Verwaltungszone oder einer völlig anderen Organisation. Dies ist zwar kaum technisch notwendig, kann jedoch organisatorische Probleme umgehen.

Wie andere Leute bemerkt haben, kann dies zu Schwierigkeiten führen, aber diese können angegangen werden:

  • Überwachen Sie alle DNS-Server. Vielleicht funktioniert einer nicht richtig. Überwachen Sie sowohl externe als auch Ihre eigenen Server. Möglicherweise müssen Sie ein Problem Akamai oder anderen Anbietern melden.

  • TTLs sollte hoch genug eingestellt sein, um das Caching zu ermöglichen, aber niedrig genug, damit Sie den Datenverkehr schnell genug für Ihre Anwendung verschieben können

Küken
quelle
2
Ich bin nicht sicher, ob ich die Überwachungsempfehlung verstehe. Die Rekursionstiefengrenzen variieren nicht nur von Produkt zu Produkt, wie schlagen Sie vor, sie zu überwachen? Sie können die Grundursache für die rekursive Infra einer anderen Person nicht leicht identifizieren.
Andrew B