[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Злой resolvconf



> Если Вашу мысль развить, то надо на всех компьютерах ставить кэширующий
> DNS-сервер...

Не столько кеширующий, сколько перенаправляющий запросы на другие DNS
сервера.  И это очень правильная мысль, вообще говоря.

Есть тут "небольшая" проблема. Обычное приложение зачитывает (не оно
само, а libc) /etc/resolv.conf один раз на старте. При
поднятии и падении какого-нибудь сетевого интерфейса DNS сервера могут
появится/измениться/пропасть. Но при этом уже работающие приложения
будут пользоваться старыми DNS серверами из старого /etc/resolv.conf,
что в большинстве случаев неправильно. Особенно это касается тех,
кто получает интернет посредством PPP или чего-то подобного.

"Удобные" дистрибутивы Линукс, такие как Debian, эту проблему от
пользователя старательно прячут, реализуя скрипты рестарта _некоторых_
приложений, таких как MTA, например, при поднятии _некоторых_ сетевых
интерфейсов, например PPP.
Смотри, например, /etc/ppp/ip-up.d/fetchmail и
/etc/ppp/ip-up.d/exim4.

На мой взгляд решение совершенно тупое, громоздское и некрасивое.  Как
список сетевых интерфейсов, так и список приложений,
влияющих_на/чувствительных_к смене сетевого окружения вообще говоря
сильно переменный. Разработчики Debian берут на себя
лишнюю работу - спрятать проблему от пользователя.

Более простое и правильное на мой взгляд решение - прописать навечно
в /etc/resolv.conf
    nameserver 127.0.0.1
и повесить легкий-прелегкий "перенаправляющий" DNS сервер на localhost.
При этом рестартовать нужно будет единственное приложение - локальный DNS.

В качестве такого "перенаправляющего" DNS-а я использую pdnsd.  Правда,
я не уверен, что его можно отучить кешировать, мне то это не надо. Да
оно и вредно.  Возможно, есть и лучшие (более легкие и маленькие)
альтернативы. Буду рад об этом узнать.

Сказанное выше годится по крайней мере для рабочих станций, где время
на "перенаправление" запроса (сотые доли секунды, я полагаю) совершенно
некритично.

-- 
Best regards, Aleksey Cheusov.


Reply to: