To jest kanoniczne pytanie dotyczące propagacji DNS
Jak długo trwa rozpowszechnianie różnych typów rekordów?
Czy niektóre rozmnażają się szybciej niż inne?
Dlaczego propagacja rekordów DNS zajmuje trochę czasu i jak działa?
domain-name-system
Społeczność
źródło
źródło
Odpowiedzi:
„Propagacja DNS” sama w sobie nie jest prawdziwym zjawiskiem. Jest to raczej efekt działania funkcji buforowania określonej w protokole DNS. Mówienie, że zmiany „propagują” między serwerami DNS, jest wygodnym fałszem, który łatwiej jest wyjaśnić użytkownikom nietechnicznym niż opisywanie wszystkich szczegółów protokołu DNS. Jednak tak naprawdę nie działa protokół.
Rekurencyjne serwery DNS wykonują zapytania w imieniu klientów. Rekurencyjne serwery DNS, zwykle obsługiwane przez dostawców usług internetowych lub działy IT, są używane przez komputery klienckie do rozpoznawania nazw zasobów internetowych. Rekurencyjne serwery DNS buforują wyniki zapytań, które wykonują w celu poprawy wydajności. Na zapytania dotyczące już buforowanych informacji można odpowiedzieć bez dodatkowych zapytań. Czas buforowania wyniku w sekundach powinien być oparty na konfigurowalnej wartości zwanej Time To Live (TTL). Ta wartość jest określana przez autorytatywny serwer DNS dla rekordu, którego dotyczy zapytanie.
Nie ma jednej odpowiedzi na wszystkie zadawane pytania, ponieważ DNS jest protokołem rozproszonym. Zachowanie DNS zależy od konfiguracji autorytatywnego serwera DNS dla danego rekordu, konfiguracji rekurencyjnych serwerów DNS wykonujących zapytania w imieniu komputerów klienckich oraz wbudowanej funkcji buforowania DNS w systemach operacyjnych komputerów klienckich.
Dobrą praktyką jest określenie wartości TTL wystarczająco krótkiej, aby uwzględnić codzienne zmiany w rekordach DNS neecssary, ale wystarczająco długiej, aby stworzyć „wygraną” w buforowaniu (tj. Nie tak krótkim, aby zbyt szybko się zestarzała pamięć podręczna, aby zapewnić jakąkolwiek poprawę wydajności). Stosowanie zrównoważonej strategii z wartościami TTL zapewnia „wygraną” dla wszystkich. Zmniejsza zarówno obciążenie, jak i wykorzystanie pasma dla autorytatywnych serwerów DNS dla danej domeny, serwerów głównych i serwerów TLD. Zmniejsza to wykorzystanie przepustowości w górę dla operatora rekurencyjnego serwera DNS. Powoduje to szybsze odpowiedzi na zapytania dla komputerów klienckich.
Ponieważ TTL rekordu DNS jest ustawiony, mniejsze obciążenie i wykorzystanie przepustowości na autorytatywnych serwerach DNS wzrośnie, ponieważ rekurencyjne serwery DNS nie będą w stanie buforować wyniku przez długi czas. Ponieważ TTL rekordu jest wyższe, zmiany w rekordach nie będą szybko „działać”, ponieważ komputery klienckie będą nadal otrzymywać wyniki buforowane przechowywane na swoich rekurencyjnych serwerach DNS. Ustawienie optymalnego czasu wygaśnięcia sprowadza się do zachowania równowagi między wykorzystaniem a zdolnością do szybkiej zmiany zapisów i zobaczenia tych zmian odzwierciedlonych na klientach.
Warto zauważyć, że niektórzy dostawcy usług internetowych nadużywają i ignorują wartości TTL określone przez autorytatywne serwery DNS (zastępując własne zastąpienie administracyjne, co stanowi naruszenie RFC). Z technicznego punktu widzenia nie można nic z tym zrobić. Jeśli operatorzy niewłaściwych serwerów DNS mogą zlokalizować skargi do swoich systemów, administratorzy mogą zaowocować wdrożeniem najlepszych praktyk (prawdopodobnie co oznacza zdrowy rozsądek dla każdego inżyniera sieci znającego DNS). Ten szczególny rodzaj nadużycia nie stanowi problemu technicznego.
Jeśli wszyscy „przestrzegają zasad”, zmiany w rekordach DNS mogą „zadziałać” bardzo szybko. W przypadku zmiany adresu IP przypisanego do rekordu „A”, na przykład, nastąpi wykładnicze wycofanie wartości TTL, prowadzące do czasu zmiany. TTL może rozpocząć się na przykład w ciągu 1 dnia i zostać skrócony do 12 godzin w okresie 24 godzin, a następnie do 6 godzin w okresie 12 godzin, 3 godzin w ciągu 6 godzin itp., Aż do odpowiednio krótkiego okresu. Po wycofaniu TTL rekord można zmienić i przywrócić TTL do pożądanej wartości w codziennych operacjach. (Nie jest konieczne stosowanie wykładniczego wycofywania, jednak ta strategia minimalizuje czas, w którym rekord będzie miał niskie TTL i zmniejsza obciążenie autorytatywnego serwera DNS).
Po utworzeniu rekordu DNS dzienniki zmian powinny być monitorowane pod kątem prób uzyskania dostępu w wyniku starego rekordu DNS. W przykładzie zmiany rekordu „A” w odniesieniu do nowego adresu IP serwer powinien pozostać obecny przy starym adresie IP, aby obsługiwać próby dostępu wynikające z komputerów klienckich nadal korzystających ze starego rekordu „A”. Gdy próby dostępu oparte na starym rekordzie osiągną akceptowalnie niski poziom, stary adres IP może zostać wycofany. Jeśli żądania związane ze starym rekordem nie zmniejszają się szybko, możliwe jest, że (jak opisano powyżej) rekurencyjny serwer DNS ignoruje autorytatywny czas wygaśnięcia. Znanie źródłowego adresu IP próby dostępu nie zapewnia jednak bezpośrednich informacji na temat rekurencyjnego serwera DNS odpowiedzialnego za dostarczenie starego rekordu.
Osobiście widziałem, jak zmiany „zaczynają obowiązywać” natychmiast, za kilka godzin, a w niektórych przypadkach z konkretnym uszkodzonym mózgiem ISP, po kilku dniach. Wykonanie wycofania TTL i pamiętanie o tym, jak ten proces działa, zwiększy twoje zmiany dla sukcesu, ale nigdy nie możesz być pewien, co jakiś dobry idiota może zrobić z ich rekurencyjnymi serwerami DNS.
źródło
1.1.1.1
lub8.8.8.8
lub9.9.9.9
lub80.80.80.80
. Ważne jest, aby zrozumieć, że są one anycastowane: odpowiedź może ulec zmianie w zależności od źródłowego adresu IP, ponieważ trafi potencjalnie zupełnie inną instancję fizyczną ORAZ pamięć podręczna, którą mają, może być globalna dla wszystkich instancji, lub nie.