Настройка времени, необходимого Linux для переключения на резервный DNS-сервер, указанный в resolv.conf

Настройка времени, необходимого Linux для переключения на резервный DNS-сервер, указанный в resolv.conf

В настоящее время я использую простую конфигурацию ванильного Linux для resolv.conf... чего-то вроде:

nameserver 123.123.123.123
nameserver 8.8.8.8

Когда 123.123.123.123 падает, DNS-запросы становятся невыносимо медленными, я предполагаю, что Linux каждый раз повторяет первый. Есть ли способ заставить Linux быть умнее в этом вопросе? Проверки работоспособности или что-то в этом роде? Или я неправильно понимаю, как это resolv.confдолжно работать?

решение1

В дополнение к замечательному ответу ewwhite, некоторые дополнения.

Вы можете добавить это в/etc/resolv.conf

options timeout:1 attempts:1 rotate

Значения по умолчанию: время:5, попытки:2.

Происходит следующее: библиотека распознавателя попытается использовать перечисленные /etc/resolv.confсверху вниз серверы имен, если опция поворота отсутствует. Если опция поворота присутствует, то она выполняет циклический выбор. Если распознаватель переходит в конец списка, а сервер не отвечает в течение X секунд (учитывая, что X — это параметр тайм-аута), то она повторит весь процесс циклического выбора снова Y-1 раз (где Y — это количество попыток).

Однако следует быть осторожнее и избегать dig и его друзей для тестирования этих опций resolv.conf. Поскольку они избегают библиотеки resolver и напрямую запрашивают серверы имен. getent hosts — лучшая команда для использования. Обратите внимание, что все, что использует glibc resolver, должно подчиняться /etc/resolv.conffile.

решение2

Это описано через man resolv.conf.

Попробуйте использовать один из вариантов тайм-аута, чтобы уменьшить значение по умолчанию с 5 секунд до, возможно, 1 секунды...

options timeout:1
nameserver 123.123.123.123
nameserver 8.8.8.8

Но на самом деле, DNS имеет так много доступных отказоустойчивостей, что можно жить без тайм-аутов низкого разрешения. Можно ли выбрать лучший публичный DNS или запустить свой собственный внутренний резолвер?

Связанный контент