Я знаю, что это просто недостаток моего понимания, но вот проблема.
Недавно мы изменили DNS-серверы с 192.168.1.1 на .2, поэтому я перешел на все 8 моих серверов linux и изменил /etc/resolv.conf, чтобы отразить это изменение. Обратите внимание, что все они статичны, DHCP не задействован.
После внесения изменений я могу сразу проверить результаты с помощью nslookup и копать, и все это выглядит хорошо. Я сделал перезапуск /etc/init.d/networking - чтобы перезапустить сетевую подсистему - и перезапустил apache и postfix на каждом из серверов, чтобы быть уверенным.
Через несколько дней я получаю отчет о том, что наши сайты больше не отправляют электронные письма. Просматривая журналы, я обнаружил, что процесс mod_php не может разрешить записи DNS для отправки почты. После того, как я в течение 30 минут ударил меня по голове, я перезагрузил сервер, и все вернулось на круги своя.
На следующий день на другом сервере (использующем CentOS, а не нашу обычную Ubuntu) я получаю отчет о том, что электронные письма не проходят, и, конечно же, просмотр журналов указывает, что Postfix не может разрешать имена. Перезагрузился, и он почти мгновенно доставляет всю почту в очереди.
Так чего мне здесь не хватает? Какую часть этого процесса я не понял правильно?
Большинство приложений инициализируют распознаватель один раз, при запуске (с
res_init
), и никогда не делают это позже. Это не проблема для приложений с коротким сроком службы, таких как ping, но более серьезна для долго работающих демонов.Процесс Apache (который запускает mod_php) был, вероятно, в этом случае. Перезапуска Apache будет достаточно.
источник
resolv.conf указывает резолверам, где искать имена. В большинстве случаев это будет решатель libc, но могут быть и другие случаи, например vPostMaster, который использует библиотеку DNS-преобразователя Python для поиска SPF.
Таким образом, он МОГ быть, что распознаватель кэширует информацию resolv.conf для долго выполняющихся процессов, но это звучит так, как будто вы перезапустили postfix, что должно было заставить его начать использовать свежий файл resolv.conf.
Проверьте ваш /etc/nsswitch.conf, чтобы увидеть, указывает ли он что-то особенное для «хостов». Например, строка Fedora 11 по умолчанию на моем ноутбуке выглядит так:
hosts: файлы mdns4_minimal [NOTFOUND = return] днс
Так что в этом случае он использует mdns, а также / etc / hosts и DNS. В этом случае, если изменения DNS не регистрировались, я бы подумал, что причиной были именно mdns.
Шон
источник
Вероятно, происходит некоторое кеширование. У нас была похожая проблема,
sendmail
и только перезапуск службы исправил ее.Иногда проще просто перезагрузить сервер и очистить все эти кэши в любом месте системы, чем тратить все это время на определение того, какая служба слишком долго кэширует. С другой стороны, это может оказаться инвестицией, когда это произойдет снова, и вы знаете, какую службу перезапустить.
источник