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


Ich brauche das zum Lastenausgleich. Zum Beispiel habe ich zwei azurblauen Speicherkonten (sagen wir a und b) und die BLOB-Adressen für diese sind a.blob.core.windows.net und b.blob.core.windows.net. Beide speichern identische Daten. Jetzt muss ich einen einzelnen externen Namen angeben (sagen wir mal example.com) die auf beide Speicherkonten verweist und im Round Robin funktionieren sollte. Dies kann erreicht werden, wenn ich zwei CNAME-Einträge in DNS wie folgt erstelle und es zu einem von ihnen in Round Robin löst.

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

Aber ich kann nicht zwei CNAME-Datensätze für einen einzelnen Namen in Windows DNS-Server erstellen.

Ist es jemals möglich?


34
2018-02-07 22:07


Ursprung


Ich kann das nicht überprüfen, aber ich denke nicht, dass du das mit CNAMES machen kannst. Probieren Sie stattdessen A-Datensätze aus. - Dan
@Dan Das Problem werden Dienste sein, die keine feste IP haben, wie ein AWS Elastic Load Balancer. Angenommen core.windows.net Ich vermute eine ähnliche Situation in Azure oder so. - ceejayoz
Aber bei A-Records muss ich die IP-Adresse richtig angeben? Ich bevorzuge DNS-Namen zu IP-Adressen. - Raghuram Murthy P
Warum willst du das machen? Azure Blob Storage ist bereits für hohe Verfügbarkeit und Geo-Redundanz eingerichtet. - JTKH
@JTKH das war, weil Blob ein Download-Limit von 65MB / sec oder so hat und wenn ich mehr Download-Limit möchte, dachte ich daran, mehr als einen Blob zu verwenden. - Raghuram Murthy P


Antworten:


Mehrere CNAME-Einträge für denselben vollqualifizierten Domänennamen verstoßen gegen die Spezifikationen für DNS. Einige Versionen von BIND würden Ihnen erlauben, dies zu tun (einige nur, wenn Sie den multiple-cnames yes Option) und würde das Last-Load-Balancing zwischen diesen beiden Punkten durchführen, aber es ist technisch nicht legal.

Es sollen keine Resource Records (RRs) mit dem gleichen Namen wie ein CNAME sein, und um Nissen auszuwählen, würde dies mehrere identische CNAMEs beinhalten. 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 verfügbar sind   Sei anders. Diese Regel stellt außerdem sicher, dass ein zwischengespeicherter CNAME verwendet werden kann   ohne mit einem autorisierenden Server nach anderen RR-Typen zu suchen.

Die RFC-Methode, mit der Sie arbeiten, würde mit einem einzelnen CNAME sein, der sich auf einen "A" -Auftrag mit Lastenausgleich bezieht.


48
2018-02-07 22:17





Du kannst nicht. Ein CNAME lässt einen anderen Namen für einen anderen aufzeichnen. Wenn ein Datensatz CNAMES für zwei Namen haben könnte, wäre das kein anderer Name für beide, sondern ein Name für etwas völlig Neues, was einen CNAME-Eintrag unpassend macht.

Es ist wahrscheinlich ein guter Weg, um Ihr äußeres Problem zu lösen. Zum Beispiel können Sie mehrere A-Datensätze haben.


10
2018-02-07 22:17