On Tue, Mar 26, 2013 at 12:25:07PM +0400, Владимир Скубриев wrote: > Есть купленный домен например example.com. > > Есть локальная сеть с внутренним DNS сервером bind обслуживающим > исключительно клиентов локальной сети и внутреннюю зону, например > example.lan. > > Многие службы вида redmine.example.com или webserver.example.com > внутри локальной сети резолвятся в публичный IP адрес внешнего > интерфейса сервера. Что соответственно заставляет пакеты ходить > через внешний интерфейс сервера. > > В случае если интернет пропадает службы по именам *.example.com > становятся не доступны. Приходится обращаться к службам по именам > *.example.lan. > > А можно ли сделать так, чтобы клиентам внутри локальной сети DNS > сервер отдавал IP адреса внутренних серверов. Какие будут минусы в > таком подходе. > > Меня терзают смутные сомнения, что это true way. > > По идее это называется dns spoofing в мирных целях.
Нет. Это называется split-horizon DNS, и совсем нормальная практика. В терминологии BIND это будут views; другие DNS-серверы могут их назвать partitions или locations. > Может правильно использовать две зоны одну внешнюю (на серверах > провайдера DNS, например godaddy, nic, naunet) другую внутреннюю ? Гм. Чтобы это сделать совсем как следует, обычно люди пользуют собственные authoritative servers, а не DNS hosting. Разумеется, можно и с DNS hosting servers, но тогда придется дублировать записи и править их в двух местах... или использовать zone transfer для обновления "истинной" зоны из серверов доставчика DNS. Так... значит, несколько вариантов: 1. Не использовать DNS hosting, а только Ваших серверов; запустить BIND, PowerDNS, djbdns или чего-либо в режим authoritative nameserver, определить locations/views для локальки и для внешнего света, задать соответствующие DNS-записи. Потом запустить BIND, Unbound, PowerDNS, MaraDNS, djbdns или чего-либо в режим recursive resolver только для локальки и указать ему Ваши authoritative сервера, так чтоб resolver попадал в дефиниции локальних views/locations. 2. Запустить BIND, PowerDNS, MaraDNS, djbdns или чего либо в режим resolving cache + authoritative nameserver. В дефиниции зон authoritative nameserver-а дублировать информацию домена example.com, но менять адреса на локальние. Основний недостаток: когда что-либо изменится в "внешней" зоны example.com, надо будет те же изменения нанести и в зонах сервера. 3. Запустить BIND, PowerDNS, MaraDNS, djbdns или чего либо в режим resolving cache + authoritative nameserver и определить authoritative nameserver как slave/secondary для внешней зоны example.com. Так он получит все изменения... только раз сейчас мне не приходит в голову точно как нанести локальние записи там. Конечно, если использовать djbdns, можно в процессе обновления зоны наносить в нее какие нужно корекции - ведь зона же machine-readable (и writable) plain text file. 4. Запустить djbdns или чего либо в режим resolving cache, но указать ему использовать Ваш authoritative server *только для нужних имен*, не для целой зоны. Не знаю, можно ли то сделать с другими resolving caches, но о djbdns точно знаю, что можно указать dnscache чтоб обращался к тому-то authoritative nameserver-у только для www.example.com и mail.example.com, а всех других имен резольвить "нормально", через root nameservers, DNS hosting и т.д. > Помогите пожалуйста. Ну... надеюсь, это поможет; или я Вас совсем опутал? :) Всего лучшего, Петр -- Peter Pentchev r...@ringlet.net r...@freebsd.org p.penc...@storpool.com PGP key: http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint 2EE7 A7A5 17FC 124C F115 C354 651E EFB0 2527 DF13 When you are not looking at it, this sentence is in Spanish.
signature.asc
Description: Digital signature