Frage DNS - Mehrere A-Datensätze oder 1 A-Datensatz und viele CNAMEs?


Sagen wir, ich habe einen Webserver namens "www". www.example.com wird in die IP-Adresse dieses Computers aufgelöst. Dann möchte ich einige virtuelle Hosts und DNS-Einträge für sie machen, wie webmail.example.com.

Für 'Webmail', sollte ich einen A-Eintrag mit der IP-Adresse von www eingeben, oder soll ich einen CNAME mit www machen?

Was ist "sauberer", robuster? besser?


29
2017-08-20 09:49


Ursprung




Antworten:


Es gibt zwei alternative Sichtweisen auf diese Frage, und diese wird letztendlich für immer diskutiert werden. Ich werde meine Meinung nicht geben (weil ich selbst zerrissen bin), aber die allgemeinen Argumente sind in der Regel:

  • Sie sollten A-Datensätze für Ihre physischen Maschinen und dann CNAME-Dienste für diese Maschinen definieren. Dies macht es ziemlich klar, was ist, und wenn Sie neu nummerieren müssen, gibt es nicht viele Datensätze zu ändern - nur die Maschine Datensätze. Auf der anderen Seite erhöht es die DNS-Lookup-Last etwas, und "zusätzliche" IPs (denken Sie an SSL-Vhosts) passen nicht gut in dieses Modell.

  • Die wörtliche Bedeutung von "kanonischer Name" (CNAME) besteht darin, strenge Aliase mit demselben Namen zu definieren (think mail und smtp), und wenn Sie mehrere Dienste auf dem gleichen Rechner ausführen, sollten sie alle über A-Einträge verfügen, da sie die Last auf DNS reduzieren und einige Dienste (NS-Einträge und in geringerem Maße MX-Einträge) wirklich nicht beeindruckt sind CNAMEs, also wenn Sie diese Dienste auf andere Weise anders handhaben müssen, können wir es auch für alles tun.


26
2017-08-20 10:05



Sie können Ihren DNS-Server ernsthaft ruinieren / überlasten, indem Sie einen MX auf einen CNAME verweisen. Ich kann nicht gestört werden, warum gerade jetzt, aber ältere Mail-Server (es gibt viele davon draußen) sehen ein MX auf einen CNAME zeigen und nicht wissen, wie man damit umgehen soll und wird weiter nach oben schauen und großen Stress machen auf Ihrem DNS und am Ende kommt die E-Mail nie irgendwo hin. NICHT POINT MX auf einen CNAME. JE. - Mark Henderson♦
Ich stimme Farseeker zu, zeigen Sie MX nicht auf einen CNAME, auch wenn es funktioniert. Schaut nach Wikipedia (nach MX Record suchen) oder nach RFC 2181 (Abschnitt 10.3), wenn ihr alle Details erfahren wollt. - Benoit
+1 zu womble. Diese Antwort drückt auch meine Meinung aus. +1 zu Farseeker. MX-Datensätze sind die Ausnahme. Wie bei Beoot's Referenzen sollte Wikipedia niemals als technische Referenz verwendet werden, da es viel zu viele Fehler und Ungenauigkeiten gibt. Während fast jeder gerne RFCs zitiert, müssen wir uns daran erinnern, dass sie keine Standards sind, sondern nur ein Vorläufer für einen Vorschlag für einen Standard. - John Gardeniers
Entschuldigung für die falsche Schreibweise von Benoits Namen. Es ist Zeit, dass ich im Bett war. - John Gardeniers
Ich habe immer cnames verwendet. Mein Kollege nahm den Ansatz von mehreren a-Aufzeichnungen. Noch ein Grund, warum cname besser ist: Es macht es einfach zu entscheiden, welcher Datensatz den ptr-Datensatz bekommt. Ich habe mir von einem dritten Kollegen ein Bier verdient. - dmourati


Die Verwendung eines CNAME verdoppelt effektiv die Suchvorgänge auf dem DNS-Server. Wenn eine Anforderung einem CNAME zugeordnet wird, muss sie den A-Datensatz für den CNAME nachschlagen.

Nichtsdestoweniger gibt es einen Grund dafür, dass CNAME existiert. Es macht Ihre DNS so viel einfacher zu verwalten, und wenn Sie Zehntausende von Auflösungen pro Tag machen, ist es egal ...


12
2017-08-20 09:55





Mehrere Hinweise deuten darauf hin, dass CNAME die DNS-Belastung erhöhen. Das hat mich neugierig gemacht. Ich feuerte Drahthai an, inspizierte eine Anfrage für einen CNAME, und zumindest in unserer Umgebung wurde das Ergebnis in einem Datensatz zurückgegeben. Das bringt Knuths Aphorismus in Erinnerung: "Frühzeitige Optimierung ist die Wurzel allen Übels".

Ich mag CNAMEs, aber hauptsächlich wegen ihrer psychologischen Wirkung. Sie ermutigen Leute (wie mich zum Beispiel), Servernamen von Dienstnamen zu entkoppeln.

Unsere Umgebung enthält mehrere SSL-Zertifikate, die an opake Servernamen angehängt sind (was wir beendet haben). CNAMEs funktionieren hier viel besser. An allen Orten, an denen ich gearbeitet habe, ist die Migration von Diensten, bei denen der Server-Name fest mit dem Dienst verbunden ist, ein Problem. CNAMEs geben eine klare konzeptionelle Trennungslinie.


11
2017-10-05 16:17



Dies benötigt mehr Upvotes. CNAME-Datensätze erhöhen normalerweise nicht die Anzahl der erforderlichen Round-Trips, da die Ergebnisse zu einer einzigen Antwort zusammengefasst werden. - Nic


Meiner Meinung nach, wenn die virtuellen Hosts sind www.sotherotherdomain.com, dann würde ich sie als separate Domäne mit eigenen Satz von DNS-Datensätzen behandeln (erleichtert es später, wenn sie aufgeteilt werden müssen). Wenn es aber gerade ist Blog.example.com, dann würde ich einen CNAME verwenden.

Nur meine persönliche Vorliebe.


4
2017-08-20 09:54





Ich würde CNAME wegen der Perspektive von DNS verwenden, Webmail ist ein Alias ​​zu www.


2
2017-08-20 09:56





CNAMEs erhöhen die Belastung des DNS-Systems, nicht auf Ihrem PC oder Ihrer Internetverbindung. Ich denke, einige Leute hier haben diese Unterscheidung nicht gemacht, als sie geantwortet haben.

Verwenden Sie beispielsweise A-Datensätze für primäre Datensätze mit hohem Datenverkehr (@ und www). Verwenden Sie CNAMEs für sekundäre Datensätze, die immer der gleichen IP eines primären Datensatzes zugeordnet werden. Wenn Sie beispielsweise eine Domäne "member.site.com" haben, die immer zur gleichen IP-Adresse wie "www.site.com" aufgelöst wird, können Sie hier einen CNAME als Annehmlichkeit verwenden, aber wenn Sie einen A-Eintrag verwenden können , würde es schneller auflösen.


1
2017-07-09 02:15



Danke, ich fand die Antwort klar, aber deinen Kommentar noch einfacher zu verstehen :) - karni