Dlaczego w przypadku małych witryn niezbędny jest geograficznie nadmiarowy DNS?

31

To jest pytanie kanoniczne dotyczące nadmiarowości geograficznej DNS.

Powszechnie wiadomo, że geograficznie nadmiarowe serwery DNS zlokalizowane w oddzielnych fizycznych lokalizacjach są wysoce pożądane przy świadczeniu odpornych usług internetowych. Jest to szczegółowo opisane w dokumencie BCP 16 , ale niektóre z najczęściej wymienianych powodów obejmują:

  • Ochrona przed katastrofami w centrach danych. Trzęsienia ziemi się zdarzają. Pożary mają miejsce w szafach i niszczą pobliskie serwery i sprzęt sieciowy. Wiele serwerów DNS nic ci nie da, jeśli problemy fizyczne w centrum danych powalą oba serwery DNS na raz, nawet jeśli nie są w tym samym rzędzie.

  • Ochrona przed problemami równorzędnymi. Wiele serwerów DNS nie zapobiegnie problemom, jeśli współużytkowany partner sieci nadrzędnej zrobi sobie drzemkę. Niezależnie od tego, czy problem związany z przesyłaniem danych całkowicie zabiera Cię do trybu offline, czy po prostu izoluje wszystkie serwery DNS od części bazy użytkowników, końcowy rezultat jest taki, że ludzie nie mogą uzyskać dostępu do Twojej domeny, nawet jeśli same usługi znajdują się w zupełnie innym centrum danych.

To wszystko dobrze i dobrze, ale czy nadmiarowe serwery DNS są naprawdę konieczne, jeśli korzystam z wszystkich moich usług z tego samego adresu IP? Nie rozumiem, w jaki sposób posiadanie drugiego serwera DNS przyniosłoby mi jakąkolwiek korzyść, gdyby i tak nikt nie był w stanie uzyskać dostępu do niczego.

Rozumiem, że jest to uważane za najlepszą praktykę, ale to naprawdę wydaje się bezcelowe!

Andrew B.
źródło

Odpowiedzi:

33

Uwaga: Treść sporna, w obu odpowiedziach należy odnieść się do komentarzy. Znaleziono błędy i to pytanie wymaga przeglądu.

Na razie usuwam akceptację z tej odpowiedzi, dopóki stan tego kanonicznego pytania i odpowiedzi nie zostanie odpowiednio rozwiązany. (usunięcie tej odpowiedzi spowoduje także usunięcie załączonych komentarzy, co nie jest drogą do przejścia na IMO. prawdopodobnie po obszernej edycji zmieni ją w odpowiedź społeczności wiki).


Mógłbym zacytować tutaj RFC i używać terminów technicznych, ale jest to koncepcja, która jest pomijana przez wiele osób na obu końcach spektrum wiedzy i postaram się odpowiedzieć na to szerszej publiczności.

Rozumiem, że jest to uważane za najlepszą praktykę, ale to naprawdę wydaje się bezcelowe!

To może wydawać się bezcelowe ... ale tak naprawdę nie jest!

Serwery rekurencyjne są bardzo dobre w zapamiętywaniu, kiedy zdalne serwery nie odpowiadają na zapytanie, szczególnie gdy ponawiają próbę i nadal nie widzą odpowiedzi. Wielu wdraża buforowanie negatywne tych błędów komunikacji i tymczasowo umieszcza niereagujące serwery nazw w polu kar na czas nie dłuższy niż pięć minut. Ostatecznie okres „kary” wygasa i wznowią komunikację. Jeśli złe zapytanie nie powiedzie się ponownie, wracają do pudełka, w przeciwnym razie wracają do normy jak zwykle.

Oto gdzie napotykamy problem z pojedynczym serwerem nazw:

  • Okres kary z natury rzeczy zawsze będzie dłuższy lub równy czasowi trwania problemu z siecią. W prawie wszystkich przypadkach będzie on większy, maksymalnie do dodatkowych pięciu minut.
  • Jeśli pojedynczy serwer DNS przejdzie w pole karne, zapytanie związane z awarią będzie całkowicie martwe przez cały czas trwania.
  • Krótkie przerwy w routingu zdarzają się w Internecie częściej niż większość ludzi zdaje sobie z tego sprawę. Retransmisje TCP / IP i podobne zabezpieczenia aplikacji dobrze ukrywają to przed użytkownikiem, ale jest to w pewnym stopniu nieuniknione. Internet dobrze radzi sobie z omijaniem tych szkód w przeważającej części ze względu na zabezpieczenia wbudowane w różne standardy, które obsługują stos sieci ... ale także te wbudowane w DNS, a posiadanie geograficznie nadmiarowych serwerów DNS jest część tego.

Krótko mówiąc, jeśli korzystasz z jednego serwera DNS (obejmuje to wielokrotne używanie tego samego adresu IP w różnych NSrekordach), tak się stanie. Stanie się to również o wiele bardziej, niż zdajesz sobie sprawę, ale problem będzie tak sporadyczny, że szanse na niepowodzenie 1) zostaną zgłoszone, 2) odtworzone i 3) związane z tym konkretnym problemem są bardzo zbliżone do zero. W zasadzie były zerowe, jeśli przyszedłeś do tego pytania i nie wiedziałeś, jak ten proces działa, ale na szczęście nie powinno tak być teraz!

Czy to powinno ci przeszkadzać? To naprawdę nie jest moje miejsce do powiedzenia. Niektórym nie będzie w ogóle obchodził ten pięciominutowy problem z przerwami i nie jestem tu, aby cię o tym przekonać. Co ja jestem tutaj, aby przekonać się, że jesteś w rzeczywistości coś poświęcić tylko przez uruchomienie jednego serwera DNS, a wszystkich scenariuszach.

Andrew B.
źródło
1
Niektóre systemy są również beznadziejnie zależne od sprawdzania dns, które nie zawodzą. To powszechny punkt awarii, który nie ma redundancji, która powoduje wiele problemów.
artifex,
18
Poczta buforowana jest klasycznym przykładem tego, jak możesz strzelać sobie w nogi z DNS w dół w tym samym czasie, co reszta infrastruktury. Dzięki redundantnemu DNS, gdy twoja witryna nie działa, poczta po prostu kolejkuje na serwerach nadawców i jest dostarczana po odzyskaniu. W przypadku pojedynczego systemu DNS poczta przychodząca wysyłana podczas nieobecności jest często trwale odrzucana przez serwery nadawców z nieistniejącą domeną lub podobnymi błędami. Poczta wychodząca wysyłana z systemów peryferyjnych (wciąż działających) może również zawieść, ponieważ domena nadawcy obecnie nie jest rozpoznawana.
MadHatter obsługuje Monikę
5
Ponadto nazwa domeny to zwykle nie tylko sieć - to także adres e-mail. Jeśli korzystasz z usługodawcy poczty e-mail dla swojej domeny, mogą one nie działać, nawet jeśli Twój serwer WWW działa, a jeśli masz nadmiarowy DNS, nadal będziesz mógł otrzymywać wiadomości e-mail.
Jenny D mówi Przywróć Monikę
5m to tylko okres ponownej próby pojedynczego serwera? Czy to nie pomnoży się przez wiele serwerów w łańcuchu, a klient będzie buforował również złe zapytania?
Nils,
@Nils Czy potrafisz to przeredagować? Mam problem z ustaleniem, czy masz na myśli wiele serwerów w klastrze rekurencyjnym, czy wiele autorytatywnych serwerów. 5-minutowy negatywny odstęp buforowania przypada na serwer, więc musisz otrzymywać wiele żądań, aby uzyskać pojedynczy rekord ujemny w pamięci podręcznej dla całego klastra rekurencyjnego - co powoduje, że awarie są jeszcze bardziej sporadyczne.
Andrew B
-1

OP pyta:

To wszystko dobrze i dobrze, ale czy nadmiarowe serwery DNS są naprawdę konieczne, jeśli korzystam z wszystkich moich usług z tego samego adresu IP? Nie rozumiem, w jaki sposób posiadanie drugiego serwera DNS przyniosłoby mi jakąkolwiek korzyść, gdyby i tak nikt nie był w stanie uzyskać dostępu do niczego.

Świetne pytanie!

Najlepszą odpowiedź zapewnia profesor Daniel J. Bernstein, dr Berkeley , który jest nie tylko światowej sławy badaczem, naukowcem i kryptologiem, ale napisał również bardzo popularny i dobrze przyjęty pakiet DNS znany jako DJBDNS ( ostatnio wydany w 2001 r. 02-11 , nadal popularne do dziś).

http://cr.yp.to/djbdns/third-party.html (2003-01-11)

Koszty i zalety usługi DNS innej firmy

Zwróć uwagę na tę krótką i zwięzłą część:

Błędne argumenty dla usługi DNS innej firmy

Druga taktyka polega na twierdzeniu, że powszechni klienci DNS zrobią coś szczególnie złego, gdy nie będą mogli uzyskać dostępu do wszystkich serwerów DNS. Problem z tym argumentem polega na tym, że twierdzenie jest fałszywe. Każdy taki klient jest wyraźnie wadliwy i nie będzie w stanie przetrwać na rynku: zastanów się, co się stanie, jeśli routery klienta ulegną krótkotrwałej awarii lub sieć klienta zostanie tymczasowo zalana.

W związku z tym pierwotna odpowiedź na to pytanie nie może być bardziej błędna.

Tak, co jakiś czas zdarzają się krótkie tymczasowe przerwy w sieci trwające kilka sekund. Nie, brak rozwiązania nazwy podczas takiej awarii nie będzie buforowany przez żadną liczbę minut (w przeciwnym razie nawet najlepsza konfiguracja wysoce dostępnych autorytatywnych serwerów nazw na świecie nie pomoże).

Każde oprogramowanie, które swobodnie implementuje konserwatywne wytyczne do 5 minut od RFC 1998-03 do buforowania awarii, jest po prostu zepsute przez projekt, a posiadanie dodatkowego serwera nadmiarowego geograficznie nie zrobi szkody.

W rzeczywistości, jak na Jak długo limit czasu DNS jest buforowany? , w BIND SERVFAILwarunek tradycyjnie NIE był buforowany przed 2014 r., a od 2015 r. jest buforowany domyślnie tylko przez 1 sekundę , czyli mniej niż to, co zajęłoby przeciętnemu użytkownikowi osiągnięcie limitu czasu resolvera i ponowne naciśnięcie tego przycisku Odśwież .

(I nawet zanim przejdziemy do powyższego punktu, czy próba rozwiązania powinna być buforowana, potrzeba więcej niż kilku odrzuconych pakietów, nawet zanim pierwszy SERVFAIL wystąpi w pierwszej kolejności.)

Co więcej, programiści BIND wdrożyli nawet pułap dla tej funkcji, wynoszący tylko 30s, co nawet jako pułap (np. Maksymalna wartość, jaką funkcja kiedykolwiek zaakceptuje), jest już 10 razy niższe niż sugestia 5min (300s) z RFC, zapewniając, że nawet najbardziej dobrzy administratorzy (użytkownicy gałek ocznych) nie będą mogli strzelać swoim użytkownikom w stopę.


Ponadto istnieje wiele powodów, dla których możesz nie chcieć uruchamiać usługi DNS innej firmy - przeczytaj całość djbdns/third-party.htmldla wszystkich szczegółów , a wynajęcie małego dodatkowego serwera tylko do samodzielnego administrowania DNS nie jest uzasadnione, gdy nie jest konieczne istnieje inne niż BCP 16 takie przedsięwzięcie.

W moim osobistym „anegdotycznym” doświadczeniu z posiadaniem i zakładaniem nazw domen od co najmniej 2002 roku, mogę z całą pewnością i uczciwie powiedzieć, że w sumie faktycznie miałem znaczny czas przestoju w moich różnych domenach z powodu profesjonalnego zarządzania zewnętrzne serwery moich rejestratorów i dostawców hostingu , które jeden dostawca na raz i przez lata wszystkie miały swoje incydenty, były niedostępne, niepotrzebnie sprowadzały moje domeny, w tym samym czasie, kiedy mój własny adres IP (gdzie HTTP i SMTP dla danej domeny były hostowane) był w pełni osiągalny w przeciwnym razie. Należy pamiętać, że te awarie miały miejsce z wieloma niezależnymi, szanowanymi i profesjonalnie zarządzanymi dostawcami i nie są bynajmniej odosobnionymi incydentami i zdarzają się co roku, a jako usługa strony trzeciej,są całkowicie poza twoją kontrolą ; tak się składa, że ​​niewiele osób mówi o tym długoterminowo.


W skrócie:

DNS geograficznie nadmiarowy wcale NIE jest konieczny w przypadku małych witryn.

Jeśli używasz wszystkich swoich usług z tego samego adresu IP , dodanie drugiego DNS najprawdopodobniej spowoduje dodatkowy punkt awarii i będzie niekorzystne dla ciągłej dostępności Twojej domeny. W „mądrości” od zawsze mając to zrobić w każdej możliwej sytuacji jest bardzo popularny mit, rzeczywiście; ROZLICZONY.

Oczywiście rada byłaby zupełnie inna, gdyby niektóre usługi domeny, takie jak Internet (HTTP / HTTPS), poczta (SMTP / IMAP) lub głos / tekst (SIP / XMPP), były już obsługiwane przez strony trzecie dostawcy, w którym to przypadku wyeliminowanie własnego adresu IP jako pojedynczego punktu awarii byłoby rzeczywiście bardzo rozsądnym podejściem, a nadmiarowość geograficzna byłaby rzeczywiście bardzo przydatna.

Podobnie, jeśli masz szczególnie popularną witrynę z milionami odwiedzających i świadomie potrzebujesz dodatkowej elastyczności i ochrony nadmiarowego geograficznie DNS zgodnie z BCP 16, to… Prawdopodobnie nie używasz jednego serwera / witryny dla sieci / poczty / głos / tekst już teraz, więc to pytanie i odpowiedź oczywiście nie mają zastosowania. Powodzenia!

cnst
źródło
Chociaż z radością zapraszam uznanych specjalistów do przeglądu obu odpowiedzi, czerpię z tego werbunku więcej niż tylko odrobinę klimatu. Dlatego akceptuję wszelkie opinie wyrażane przez strony, których opiniom ufam o wiele bardziej niż twoje lub moje, postanawiam zrezygnować z dalszego uczestnictwa w tym wątku komentarza.
Andrew B,
Nie jestem pewien, co powinien powiedzieć Twój komentarz. Odpowiedziałeś na swoje pytanie argumentem, który jest po prostu nieważny, zgodnie z punktem zilustrowanym w mojej odpowiedzi, cytowanym bezpośrednio z DJB. Twoja odpowiedź jest nieprawidłowa; dlatego wyrządzacie szkodę społeczności, podtrzymując mit. Jeśli chcesz cofnąć odpowiedź i zaakceptować moją, chętnie przyjmuję konstruktywną krytykę / modyfikację.
cnst
2
Dobre oprogramowanie rozpozna odpowiedź SERVFAIL (wygenerowaną przez serwer rekurencyjny, jeśli żaden z autorytatywnych serwerów nie będzie dostępny) i odpowiednio go obsłuży, tj. Ustawiając w kolejce pocztę SMTP. Niestety nie wszystkie programy są dobre. Jest pewien profesor, którego dogmatyczne podejście do wdrażania protokołów powoduje znaczne problemy z interoperacyjnością ...
Alnitak
2
Obecny stan branży i to, co dzieje się na wolności, jest o wiele bardziej istotne niż cokolwiek z 2003 r., A co dopiero z 2001 r. Właśnie dlatego odpowiednie opinie stron trzecich były bardziej wartościowe niż ocenianie sprawy przez datowany artykuł redakcyjny, choć taki, który mógłby mieć potencjalnie przetrwał próbę czasu. Alnitak wskazał, że moja pamięć o tym, jak BIND obsługiwał tę sprawę, była błędna, a moje wzmocnienie tej pamięci za pomocą verbage z RFC 2308 było rzeczywiście błędne. Wycofanie nastąpi w tym tygodniu, kiedy znajdę czas.
Andrew B,
2
Uwaga dodatkowa: polegałem na tym, że nie angażowałem cię w celu uznania błędu faktycznego z mojej strony, ale wygląda na to, że wróciliśmy na terytorium pogranicza wojowniczej. Przepraszam za rozpowszechnianie dezinformacji i przyznałem się do błędu, ale nie chcę Cię więcej angażować. (ja też nie będę, jak się wydaje, tutaj mieć taką historię)
Andrew B,