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

Динамическое обновление резолверов, перечисленных в /etc/resolv.conf

Я арендую несколько серверов Linux, а хостинговая компания предоставляет набор из восьми преобразователей DNS.

Скорость отклика варьируется от резолвера к резолверу, и я периодически изменяю /etc/resolv.conf чтобы получить максимальную производительность.

В двух случаях я обнаружил, что один из моих общедоступных веб-сайтов загружается слишком долго, и это отчасти было связано с этим в зависимости от серверных веб-служб, которым требовалось около 15 секунд для преобразования домена в IP.

Чтобы всегда указывать наиболее отзывчивые резолверы, я хотел бы автоматизировать процесс изменения /etc/resolv.conf.

Я могу написать сценарий, если нужно, однако это неизбежно будет содержать неясную ошибку, и я хочу минимизировать риск того, что автоматизированный процесс создаст беспорядок /etc/resolv.conf. Любое ранее существовавшее решение, которое было протестировано в течение длительного времени и показало стабильность, будет более надежным, чем мое собственное решение.

Мне интересно знать, занимался ли кто-нибудь этим типом проблемы раньше и есть ли какие-либо стабильные сценарии / процессы / методы для решения этой проблемы.

В системах на основе Debian есть пакет resolvconf (вики), который предназначен для обновления файла resolv.conf.

Вы можете добавлять или удалять записи. Вы можете настроить сценарии, которые будут вызываться при каждом обновлении. Это позволяет вам уведомлять другие службы о том, что было сделано обновление.

Вы пробовали установить собственное локальное кеширование с именем? Установите BIND локально (только кэширование), а затем позвольте ему запрашивать DNS так, как это было задумано (динамический поиск делегирования на основе делегирования). Просто измените файл resolv.conf на 127.0.0.1 и покончите с этим. Возможно, добавьте туда IP-адрес одного из ваших хостов в качестве резервного, но в основном полагайтесь на свой собственный преобразователь.

Это потребует установки дополнительного сервера, но вы можете использовать централизованную систему управления конфигурацией, такую ​​как cfengine или puppet, чтобы отправить новый файл resolv.conf на ваш сервер (ы) Brett