Boris Morozov писал(а):Тогда в Forwarding List ему мы пишем адреса внешних DNS, в resolv.cfg - внутренний DNS, а на интерфейсе смотрящем в инет либо подымаем NAT, либо в дополнительных настройках DNS сервера говорим ему, чтобы он пользовался только внешним интерфейсом (но это или в 6.5 или в 6.0 с какой-то версии). А прописка в Forwarding list адреса DNS Proxy конечно проблему решит, но это я считаю извращением, зачем нужен двойной DNS кеш в локальной сети.
Ваш вариант рассчитан (как я понимаю) на работу DNS-сервера на
том же сервере, что и прокси. Но так бывает далеко не всегда и прежде всего тогда, когда нужен т.н. "split-DNS", т.е.
одни и те же имена должны разрешаться в
разные адреса внутри и снаружи. Кроме того, не всегда удобно (да и не всегда хочется) поднимать НАТ, т.к. при этом сразу падает информативность логов и контролируемость периметра. Ну и наконец, внутри могут использоваться приватные адреса...
Можно использовать DNS-proxy как сервер, прописывая аналоги записей типа "А" в файле hosts, однако сей вариант зело ущербен, т.к. не поддерживаются остальные типы DNS-записей (прежде всего NS и MX, а также CNAME в достаточном количестве). Кроме того, не всегда корректно работает обратное разрешение адреса в имя.
Поэтому, самый корректный вариант "split-DNS" - сделать два DNS-сервера, внутренний и внешний (один из них может быть на иной платформе, например Linux или в ином дереве - в случае NW-платформы), а DNS-proxy использовать для
контролируемого форвардинга запросов изнутри наружу (особенно, когда внутри приватные адреса, но есть сервера - например Lotus Notes, как SMTP-сервер - для которых
обязательно наличие возможности прямого контакта (и прямого разрешения имени) удалённого сервера).
Можно сделать вариант Крейга, но при этом будут вышеупомянутые ограничения на одну из зон (ту, которая будет разрешаться через файл hosts).
К сожалению, Нетваревский ДНС (в отличие от BIND-а) не позволяет поднять две зоны с одним именем, но с разными адресными пространствами на одном сервере - прежде всего из-за наличия всего одного объекта "DNS locator" в дереве. Если было бы можно создавать несколько таких объектов (пусть даже в разных контейнерах - тем лучше) - можно было бы к ним привязывать разные зоны-контейнеры.