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

Re: как правильно настроить dns для зоны example.com



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	roam@ringlet.net roam@FreeBSD.org p.penchev@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.

Attachment: signature.asc
Description: Digital signature


Reply to: