Mamy dwa serwery DNS wymienione w naszym rekordzie NS. Ostatniej nocy jeden z naszych serwerów DNS przestał działać. Zgodnie z oczekiwaniami niektóre serwery DNS nie rozwiązały naszych nazw hostów. Zakładałem, że będzie to tymczasowe i zacznie działać po wygaśnięciu TTL naszych rekordów NS (1 godzina).
Ponad godzinę później wciąż otrzymywałem limity czasu DNS z komputerów stacjonarnych korzystających z serwerów Earthlink, Verizon i OpenDNS. Testowałem, aby sprawdzić, czy inny serwer DNS odpowiada:
dig @ns2.example.com www.example.com +short
To zadziałało.
Moje pytania:
- Czy ktoś ma odpowiedź na pytanie, dlaczego inne serwery DNS nie uderzały w nasz inny serwer DNS nawet po wygaśnięciu TTL?
- Czy serwery DNS wolą główny serwer DNS domeny (z
SOA
rejestru)? - Czy istnieje jakiś algorytm służący do wybierania serwera nazw z dostępnych rekordów NS? Zakładam, że jest to specyficzne dla implementacji, ale być może istnieją tu pewne standardy.
domain-name-system
bind
isp
Belmin Fernandez
źródło
źródło
Odpowiedzi:
To niefortunne podrażnienie. Wiele serwerów DNS ma zwiększyć niezawodność, ale w praktyce często ma to efekt odwrotny.
Problem polega na tym, że klient czeka tak długo tylko na odpowiedź, a serwer czeka tyle samo czasu. Załóżmy, że masz dwa serwery DNS, A i B. Powiedz, że A działa, a B zawiódł. To się stało:
Klient łączy się z serwerem nazw Z i prosi go o informacje. Z wybiera B i wysyła zapytanie.
Klient przekroczył limit czasu, ponieważ serwer nazw Z nie odpowiedział.
Klient próbuje serwer nazw Y. Y wybiera B i wysyła zapytanie.
Serwer nazw Z kończy limit czasu i próbuje A. Otrzymuje prawidłową odpowiedź, ale klient już nie czeka.
Klient przekroczył limit czasu, ponieważ serwer nazw Y nie odpowiedział.
Klient poddaje się, ponieważ oba serwery nazw nie odpowiadają.
Serwer nazw Y limit czasu i próbuje A. Otrzymuje prawidłową odpowiedź, ale klient już nie czeka.
I nie ma dobrego rozwiązania. Im dłużej czekasz, aby zobaczyć, czy serwer nazw odpowiada, tym dłużej musisz czekać, ponieważ serwer nazw, na który czekasz, czeka dłużej. Prawdopodobnie problem polegał na tym, że Y i Z nie poddawali się B wystarczająco szybko.
Zasadniczo, jeśli któryś z serwerów nazw nie działa, niektórzy klienci, po prostu pechowi, przekroczą limit czasu, ponieważ próbowali tylko tych złych.
Z drugiej strony, jeśli masz dwa serwery nazw, a jeden zawiedzie, około 75% serwerów nazw otrzyma odpowiedź, zamiast 0%.
źródło
Z
) klienta nie buforuje, który serwer nazw, którego ostatnio używał, działał?