Nasza domena DNS ma 5 poziomów CNAME z przyczyn historycznych. Niektóre rzeczy zostały zlecone na zewnątrz w celu zapewnienia wysokiej dostępności itp., Ale nie o to tutaj chodzi. Moje pytanie dotyczy nadmiaru 5 CNAME dla usługi rozpoznawania nazw DNS? Nie byłem w stanie znaleźć żadnej znanej witryny z ponad 2-3 poziomowymi zagnieżdżonymi CNAME wskazującymi na różne domeny DNS.
Nasz chmiel CNAME wygląda następująco: (używam xyz jako przykładu)
www.xyz.com -> xyz.akadns.net -> xyz.worldwide.akadns.net -> xyz.cedexis.net -> xyz.msedge.net -> host1.msedge.net (końcowy rekord A \ AAAA)
Widzę, że wielu klientów skarży się na problemy z rozwiązaniem DNS na naszej stronie, gdy inne witryny działają dla nich dobrze, chociaż kiedy używam http://check-host.net/check-dns?host=www.xyz.com do testowania naszego DNS rozkład.
Wydaje się, że zawsze działa dobrze na całym świecie. Doszedłem do wniosku, że głównie jest tak, że lokalny dostawca ISP psuje się, gdy jeden z powyższych przeskoków nie jest w stanie rozwiązać. nslookup nie działa na tych komputerach klienckich tylko dla naszej witryny i to zbyt sporadycznie.
Czy ten rodzaj wielopoziomowej CNAME jest ogólnie złym projektem?
źródło
Odpowiedzi:
Łańcuchy CNAME do CNAME nie są zabronione, ale jak już wiesz, nie jest to bardzo solidne rozwiązanie.
Każda dodatkowa CNAME zwiększa głębokość rekurencji dla resolvera i ta głębokość nie zawsze jest nieograniczona. Ryzykujesz także tworzeniem pętli lub uruchamianiem algorytmu wykrywania pętli.
Aby zorientować się, ile i jakie zapytania powinien wykonać serwer nazw użytkowników, uruchom śledzenie DNS:
lub w systemie Windows
źródło
HBrujin ma rację, ale tak naprawdę głębokość rekurencji jest znacznie gorsza niż cokolwiek,
dig +trace
co pokaże. Głębokość rekurencji jest czymś, co często jest szydzone i nadmiernie trywializowane, ale ci ludzie zapominają, że nie tylko rozwiązujesz ~ 5CNAME
rekordów. Wynika to z faktu, że ustalenie celuCNAME
rekordu powoduje potrzebę wyszukania każdego serwera nazw na ścieżce, co często jest o wiele więcej, niż widać na pierwszy rzut oka.Czy
CNAME
cel mieszka w innej domenie? Konieczne będzie ponowne przechodzenie do jego serwerów nazw, co wymaga nie tylkoNS
wyszukiwania rekordów, ale takżeA(AAA)
wyszukiwania tam, gdzie nie ma kleju. Czy serwery nazw tych serwerów mieszkają w innej domenie najwyższego poziomu? Jeśli te domeny TLD nie współużytkują serwerów nazw, istnieje prawdopodobieństwo, że rekordy kleju nie zostaną uwzględnione, a ty będziesz musiał ponownie przeglądać serwery nazw innych TLD. I tak dalej.Każdy
CNAME
rekord dodany do łańcucha może wykładniczo zwiększyć wymaganą liczbę wyszukiwań w zależności od liczby serwerów nazw, które należy powtórzyć. Te łańcuchy wyszukiwania rekordówCNAME
+NS
+A(AAA)
mogą z kolei być niesamowicie zawiłe, osiągając głębokie ponad 150 poziomów na pustej pamięci podręcznej. W tym przypadku limity głębokości rekurencji mogą stać się wyjątkowo nieprzyjemne, co powoduje tymczasowe niepowodzenia wyszukiwania domeny na pustej pamięci podręcznej i z powodów, które często nie są od razu widoczne.Krótko mówiąc, możesz to zrobić, ale postępuj ostrożnie i poważnie podchodź do tej natury. Nie masz kontroli nad tym, jak często rekursywne serwery DNS w Internecie są restartowane lub usuwane.
źródło
Wielopoziomowe
CNAME
są często przydatne w praktyce. Każdy poziom przekierowania zapewnia poziom kontroli w potencjalnie odrębnej strefie administracyjnej lub zupełnie innej organizacji. Chociaż nie jest to prawie każda technicznie konieczna, może obejść problemy organizacyjne .Jak zauważyli inni, może to powodować trudności, ale można temu zaradzić:
monitoruj wszystkie serwery DNS. Może ktoś źle działa. Monitoruj serwery zewnętrzne, a także własne. Może być konieczne zgłoszenie problemu do Akamai lub innych dostawców.
TTL
Wartości s powinny być ustawione na tyle wysoko, aby umożliwić buforowanie, ale na tyle niskie, aby można było odpowiednio szybko przenieść ruch do aplikacjiźródło