Czy możemy mieć wiele CNAMES dla jednej nazwy?

43

Potrzebuję tego do równoważenia obciążenia. Na przykład mam dwa konta magazynu Lazur (powiedzmy ai b) i adresy obiektów blob dla nich to a.blob.core.windows.neti b.blob.core.windows.net. Oba przechowują identyczne dane. Teraz muszę podać jedną nazwę zewnętrzną (powiedzmy example.com), która wskazuje oba konta magazynu i powinna działać w trybie round robin. Można to osiągnąć, jeśli utworzę dwa wpisy CNAME w DNS w następujący sposób i rozwiąże jeden z nich w trybie okradania.

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

Ale nie mogę utworzyć dwóch rekordów CNAME dla jednej nazwy na serwerze DNS systemu Windows.

Czy to w ogóle możliwe?

Raghuram Murthy P.
źródło
Nie mogę sprawdzić, ale nie sądzę, że możesz to zrobić za pomocą CNAMES. Zamiast tego wypróbuj rekordy A.
Dan.
1
@Dan Problemem będą usługi, które nie mają stałego adresu IP, takie jak moduł równoważenia obciążenia elastycznego AWS. Biorąc pod uwagę core.windows.net, że podejrzewam podobną sytuację na platformie Azure lub coś w tym rodzaju.
ceejayoz
Ale z rekordami A muszę podać adres IP, prawda? Wolę nazwy DNS od adresów IP.
Raghuram Murthy P
dlaczego chcesz to zrobić? Magazyn lazurowych obiektów blob jest już skonfigurowany pod kątem wysokiej dostępności i nadmiarowości geograficznej.
JTKH
@JTKH to dlatego, że blob ma limit pobierania około 65 MB / s, a jeśli chcę więcej limitu pobierania, pomyślałem o użyciu więcej niż jednego obiektu blob.
Raghuram Murthy P

Odpowiedzi:

58

Wiele rekordów CNAME dla tej samej w pełni kwalifikowanej nazwy domeny stanowi naruszenie specyfikacji DNS. Niektóre wersje BIND pozwoliłyby ci to zrobić (niektóre tylko pod warunkiem, że podałeś tę multiple-cnames yesopcję) i obejmowałyby równoważenie obciążenia między tymi czasami, ale nie jest to technicznie legalne.

Nie powinny istnieć rekordy zasobów (RR) o tej samej nazwie co CNAME i, aby wybrać gnidy, które zawierałyby wiele identycznych CNAME. Quoth RFC 1034, sekcja 3.6.2:

Jeśli CNAME RR jest obecny w węźle, żadne inne dane nie powinny być obecne; zapewnia to, że dane dla nazwy kanonicznej i jej aliasów nie mogą się różnić. Ta reguła zapewnia również, że można używać buforowanej CNAME bez sprawdzania na autorytatywnym serwerze dla innych typów RR.

Metodą RFC do obsługi tego, co robisz, byłaby pojedyncza CNAME odnosząca się do rekordu „A” z równoważeniem obciążenia.

Evan Anderson
źródło
Aby uzyskać więcej informacji, zobacz docstore.mik.ua/orelly/networking_2ndEd/dns/ ...
śr.
11

Nie możesz. Nazwa CNAME powoduje, że jeden rekord rejestruje inną nazwę dla innej. Gdyby rekord mógł zawierać CNAMES dla dwóch nazw, nie byłby to inny dla żadnego z nich, ale nazwa dla czegoś zupełnie nowego, co spowodowałoby, że wpis CNAME byłby nieodpowiedni.

Jest jednak prawdopodobnie dobry sposób na rozwiązanie twojego zewnętrznego problemu. Na przykład możesz mieć wiele rekordów A.

David Schwartz
źródło
czy mogę jednocześnie mieć jedną CName i jeden rekord A dla strony internetowej?
amesh