DNS - Mehrere A-Einträge oder 1 A-Eintrag und viele CNAMEs?

29

Nehmen wir an, 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 erstellen, wie zum Beispiel webmail.example.com.

Soll ich für "Webmail" einen A-Eintrag mit der IP-Adresse des WWW eingeben oder einen CNAME für WWW ausführen?

Was ist sauberer, robuster? besser?

Rory
quelle

Antworten:

26

Es gibt zwei alternative Ansichten zu dieser Frage, und diese wird letztendlich für immer diskutiert. Ich werde nicht meine Meinung sagen (weil ich mich selbst zerrissen habe), aber die allgemeinen Argumente für jeden Weg sind in der Regel:

  • Sie sollten A-Datensätze für Ihre physischen Maschinen definieren und dann CNAME-Dienste auf diesen Maschinen. Dies macht ziemlich deutlich, was was ist, und für den Fall, dass Sie neu nummerieren müssen, müssen nicht viele Datensätze geändert werden - nur die Maschinendatensätze. Auf der anderen Seite wird die DNS-Suchlast dadurch etwas erhöht, und "zusätzliche" IP-Adressen (z. B. SSL-Hosts) passen nicht gut in dieses Modell.

  • Die wörtliche Bedeutung von "Kanonischer Name" (CNAME) besteht darin, strenge Aliase desselben Namens zu definieren (think mailand smtp). Wenn auf demselben Computer mehrere Dienste ausgeführt werden, sollten alle A-Einträge vorhanden sein, da dies die DNS- und DNS-Belastung verringert Einige Dienste (NS-Datensätze und in geringerem Maße MX-Datensätze) sind vom Umgang mit CNAMEs nicht wirklich beeindruckt. Wenn Sie diese Dienste also ohnehin anders behandeln müssen, können wir dies auch für alles tun.

womble
quelle
12
Sie können Ihren DNS-Server ernsthaft ruinieren / überlasten, indem Sie einen MX auf einen CNAME verweisen. Es macht mir nichts aus zu erklären, warum dies so ist, aber ältere Mail-Server (es gibt viele) werden einen MX sehen, der auf einen CNAME verweist und nicht wissen, wie sie damit umgehen sollen auf Ihrem DNS und am Ende wird die E-Mail nie irgendwo. Zeigen Sie MX nicht auf einen CNAME. JE.
Mark Henderson
3
Ich stimme Farseeker zu, zeige MX nicht auf einen CNAME, auch wenn es möglicherweise funktioniert. Werfen Sie einen Blick auf Wikipedia (Suche nach MX Record) oder RFC 2181 (Abschnitt 10.3), wenn Sie alle Einzelheiten erfahren möchten.
Benoit
+1 zu womble. Diese Antwort drückt auch meine Ansicht aus. +1 an Farseeker. MX-Datensätze sind die Ausnahme. In Bezug auf Beoots 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 es sich nicht um Standards handelt, sondern lediglich um einen Vorläufer eines Vorschlags für einen Standard.
John Gardeniers
Entschuldigen Sie die falsche Schreibweise von Benoits Namen. Es ist Zeit, dass ich im Bett bin.
John Gardeniers
Ich habe immer cnames verwendet. Mein Kollege ging von mehreren Datensätzen aus. Ein weiterer Grund, warum cname besser ist: Es erleichtert die Entscheidung, welcher Datensatz den ptr-Datensatz erhält. Ich verdiente mir ein Bier von einem dritten Kollegen.
Dmourati
12

Durch die Verwendung eines CNAME werden die Suchvorgänge auf dem DNS-Server effektiv verdoppelt. Wenn eine Anforderung einem CNAME zugeordnet ist, muss der A-Datensatz für den CNAME nachgeschlagen werden.

Das heißt, es gibt einen Grund, warum CNAME existiert. Es macht die Verwaltung Ihres DNS so viel einfacher, und es spielt keine Rolle, wenn Sie nicht täglich Zehntausende von Auflösungen vornehmen ...

Mark Henderson
quelle
12

Mehrere hier aufgeführte Relies legen nahe, dass CNAMEs die DNS-Last erhöhen. Das hat mich neugierig gemacht. Ich habe wireshark angezündet, eine Anfrage nach einem CNAME geprüft und zumindest in unserer Umgebung wurde das Ergebnis in einem Datensatz zurückgegeben. Was an Knuths Aphorismus erinnert: "Vorzeitige Optimierung ist die Wurzel allen Übels".

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

In unserer Umgebung sind mehrere SSL-Zertifikate an undurchsichtige Servernamen angehängt (was wir aufgegeben haben). CNAMEs funktionieren hier viel besser. An jedem Ort, an dem ich mit der Migration von Diensten gearbeitet habe, bei denen der Servername eng mit dem Dienst verknüpft ist, treten Kopfschmerzen auf. CNAMEs bieten eine klare konzeptionelle Trennlinie.

Joe Fortier
quelle
Das braucht mehr Gegenstimmen. CNAME-Einträge erhöhen in der Regel nicht die Anzahl der erforderlichen Roundtrips, da die Ergebnisse in einer einzelnen Antwort zusammengefasst werden.
Nic
4

Wenn die virtuellen Hosts meiner Meinung nach "www.someotherdomain.com" sind, würde ich sie als separate Domain mit eigenen DNS-Einträgen behandeln (erleichtert es später, wenn sie aufgeteilt werden müssen). Wenn jedoch nur sein Blog .example.com, dann würde ich einen CNAME verwenden.

Nur meine persönliche Präferenz.

Sam
quelle
2

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

Martin P. Hellwig
quelle
2

CNAMEs erhöhen die Belastung des DNS-Systems, nicht Ihres PCs oder Ihrer Internetverbindung. Ich denke, einige Leute hier haben diese Unterscheidung nicht getroffen, als sie geantwortet haben.

Verwenden Sie A-Datensätze beispielsweise für primäre Datensätze mit hohem Datenaufkommen (@ und www). Verwenden Sie CNAMEs für sekundäre Datensätze, die immer der gleichen IP eines primären Datensatzes zugeordnet sind. Wenn Sie beispielsweise eine Domain "member.site.com" haben, die immer dieselbe IP-Adresse wie "www.site.com" hat, können Sie hier aus Bequemlichkeitsgründen einen CNAME verwenden, wenn Sie jedoch einen A-Datensatz verwenden können würde es schneller auflösen.

TheDigitalOrchard
quelle
Vielen Dank, ich fand die Antwort klar, aber Ihr Kommentar noch einfacher zu verstehen :)
Karni