Können wir mehrere CNAMES für einen einzelnen Namen haben?

43

Ich brauche dies zum Lastenausgleich. Ich habe beispielsweise zwei Azure-Speicherkonten (z. B. aund b) und die Blob-Adressen für diese sind a.blob.core.windows.netund b.blob.core.windows.net. Beide speichern identische Daten. Jetzt muss ich einen einzelnen externen Namen (etwa example.com) angeben, der auf beide Speicherkonten verweist und im Round-Robin-Modus funktionieren soll. Dies kann erreicht werden, wenn ich wie folgt zwei CNAME-Einträge in DNS erstelle und sie im Round-Robing in einen von ihnen auflöst.

  1. example.com CNAME a.blob.core.windows.net
  2. example.com CNAME b.blob.core.windows.net

Ich kann jedoch keine zwei CNAME-Einträge für einen einzelnen Namen im Windows-DNS-Server erstellen.

Also ist es jemals möglich?

Raghuram Murthy P
quelle
Ich kann nicht überprüfen, aber ich glaube nicht, dass Sie dies mit CNAMES tun können. Versuchen Sie stattdessen A records.
Dan
1
@Dan Das Problem werden Dienste sein, die keine feste IP haben, wie ein AWS Elastic Load Balancer. Angesichts dessen core.windows.netwürde ich eine ähnliche Situation in Azure vermuten oder so.
Ceejayoz
Aber bei A-Records muss ich die IP-Adresse richtig angeben? Ich bevorzuge DNS-Namen gegenüber IP-Adressen.
Raghuram Murthy P
warum willst du das machen Der Azure-Blob-Speicher ist bereits für hohe Verfügbarkeit und Georedundanz eingerichtet.
JTKH
@JTKH das lag daran, dass der Blob ein Download-Limit von 65 MB / s hat oder so und wenn ich mehr Download-Limit haben möchte, habe ich darüber nachgedacht, mehr als einen Blob zu verwenden.
Raghuram Murthy P

Antworten:

58

Mehrere CNAME-Einträge für denselben vollqualifizierten Domänennamen verstoßen gegen die DNS-Spezifikationen. Bei einigen Versionen von BIND ist dies möglich (bei einigen nur, wenn Sie die multiple-cnames yesOption angegeben haben), und zwischen diesen wird ein Round-Robin-Lastenausgleich durchgeführt, der jedoch technisch nicht zulässig ist.

Es sollte keine Ressourceneinträge (RRs) mit demselben Namen wie ein CNAME geben und, um Nits auszuwählen, mehrere identische CNAMEs. Quoth RFC 1034, Abschnitt 3.6.2:

Wenn ein CNAME RR an einem Knoten vorhanden ist, sollten keine anderen Daten vorhanden sein. Dadurch wird sichergestellt, dass die Daten für einen kanonischen Namen und seine Aliase nicht unterschiedlich sein können. Diese Regel stellt auch sicher, dass ein zwischengespeicherter CNAME verwendet werden kann, ohne bei einem autorisierenden Server nach anderen RR-Typen zu suchen.

Die RFC-Methode "Letter-of-the-RFC" für die Verarbeitung Ihrer Aufgaben würde sich auf einen einzelnen CNAME beziehen, der auf einen Datensatz mit Lastenausgleich "A" verweist.

Evan Anderson
quelle
11

Du kannst nicht. Ein CNAME nimmt einen anderen Namen für einen anderen auf. Wenn ein Datensatz CNAMES für zwei Namen haben könnte, wäre es nicht ein anderer Name für einen von beiden, sondern ein Name für etwas völlig Neues, was einen CNAME-Eintrag unangemessen macht.

Es gibt jedoch wahrscheinlich einen guten Weg, um Ihr äußeres Problem zu lösen. Beispielsweise können Sie mehrere A-Datensätze haben.

David Schwartz
quelle
Kann ich gleichzeitig einen CName und einen A Record für die Website haben?
Amesh