Назад | Перейти на главную страницу

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

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

nameserver 123.123.123.123
nameserver 8.8.8.8

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

В дополнение к потрясающему ответу ewwhite, небольшое дополнение.

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

options timeout:1 attempts:1 rotate

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

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

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

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

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

options timeout:1
nameserver 123.123.123.123
nameserver 8.8.8.8

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