Dostosowywanie czasu, przez jaki Linux przechodzi w tryb failover do zapasowego serwera DNS wymienionego w resolv.conf

15

Obecnie używam zwykłej waniliowej konfiguracji linux do resolv.conf... czegoś takiego jak:

nameserver 123.123.123.123
nameserver 8.8.8.8

Kiedy 123.123.123.123 przestaje działać, zapytania DNS stają się niemożliwe powoli, zakładam, że Linux za każdym razem ponawia pierwszą. Czy istnieje sposób, aby linux był mądrzejszy w tym zakresie? Kontrole stanu zdrowia czy coś takiego? Czy też źle rozumiem, jak resolv.confpowinno działać?

Adam Terrey
źródło

Odpowiedzi:

18

Oprócz niesamowitej odpowiedzi ewwhite, uzupełnienie.

Możesz to dodać /etc/resolv.conf

options timeout:1 attempts:1 rotate

Domyślne wartości to czas: 5 prób: 2

Dzieje się tak, że biblioteka tłumacząca spróbuje użyć serwerów nazw wymienionych /etc/resolv.confod góry do dołu, jeśli nie ma opcji obracania. Jeśli rotacja jest obecna, wówczas dokonuje wyboru okrągłego robota. Jeśli resolver znajdzie się na dole listy, a serwer nie zareaguje w ciągu X sekund (biorąc pod uwagę, że X jest parametrem limitu czasu), to powtórzy cały proces wyboru robota okrągłego ponownie dla Y-1 razy (gdzie Y jest wartość prób).

Jednak należy zachować ostrożność, aby uniknąć kopania i znajomych w celu przetestowania tych opcji resolv.conf. Ponieważ unikają biblioteki tłumaczącej i bezpośrednio pytają serwery nazw. lepszym poleceniem jest getent hosts. Zauważ, że wszystko, co korzysta z glibc resolver, będzie musiało przestrzegać /etc/resolv.confpliku.

Soham Chakraborty
źródło
12

Jest to opisane za pomocą man resolv.conf.

Wypróbuj jedną z opcji limitu czasu, aby obniżyć wartość domyślną z 5 sekund do 1 sekundy ...

options timeout:1
nameserver 123.123.123.123
nameserver 8.8.8.8

Ale tak naprawdę DNS ma tak wiele dostępnych elastyczności, że można żyć bez limitów czasu niższej rozdzielczości. Czy można wybrać lepszy publiczny DNS lub uruchomić własny wewnętrzny program rozpoznawania nazw?

ewwhite
źródło