В настоящее время я являюсь администратором некоторых машин RHEL Linux в смешанной сети. Наши DNS-серверы - это контроллеры Windows AD. Таким образом, их иногда нужно останавливать для обслуживания. (например: установка исправлений). Это означает, что в какой-то момент основной контроллер DNS для моих Linux-машин станет недоступен.
В мире Windows с этим справляются довольно хорошо. Когда DNS-запросы к основному серверу терпят неудачу, клиенты Windows перестают его использовать на 15 минут. Так что, если не считать первоначальной икоты, все они действовали довольно гладко. Но Linux продолжает попытки того же (отказавшего) основного сервера. По умолчанию он будет ждать не менее 5 секунд перед попыткой подключения к вторичному серверу. Это приводит к тому, что ВСЕ занимает много времени, и даже приложения отключаются по таймауту при большом количестве запросов DNS.
Итак, я хочу сделать свой сервер более надежным. Мой текущий план - А) изменить файл resolv.conf так, чтобы он ждал ответа только полсекунды и не повторял попытку. и Б) возможно сделать некоторые стратегические записи в / etc / hosts, чтобы основные серверы по-прежнему были доступны быстро.
С учетом всего сказанного, я бы хотел найти лучшее решение. В качестве альтернативы я хотел бы услышать, что другие люди делают со своими установками. Или просто теоретический "Ваша идея хорошая / плохая, вот почему."
- Кристофер Карел
Может быть, запустил nscd
и добавление
options rotate
к /etc/resolv.conf
уже делает свое дело за вас.
Вы можете посмотреть на использование dnsmasq вместо того, чтобы полагаться исключительно на библиотеку преобразователя - dnsmasq запрашивает вышестоящие серверы параллельно, а не последовательно, поэтому выпадение одного из них не должно вызывать столько проблем.
Более простое решение - перенаправить трафик на определенное время (окно обслуживания).
Если у вас есть запасная машина, вы можете временно присвоить ей IP-адрес вашего основного сервера. В противном случае вы могли бы развернуть перенаправление в маршрутизаторе. Если для пакета указан ваш основной сервер, вы можете перенаправить его на дополнительный сервер.
Более сложным, но более надежным решением будет установка пары серверов имен (подчиненных AD) и использование anycast. http://en.wikipedia.org/wiki/Anycast#Domain_Name_System