Но поскольку сеточка тестовая, то секретность ейной внутренней структуры мне пофигу, а вот выигрыш от открытости есть: какие бы DNS-сервера не были прописаны у юзеров, каким бы методом они не подключались - по личному VPN, по site-to-site VPN, да хоть напрямую - записи будут им доступны. Поскольку вечные приколы VPN с сетевыми настройками задрали изрядно, универсальности хочется.
Что до домен-контроллеров, то открывать их во всеобщий доступ и мне не хотелось, по двум соображениям:
- Чтобы не подставлять их под DoS или ещё какую пакость,
- Чтобы не отключать на них рекурсию. Я хочу, чтобы они предоставляли внешнему миру информацию лишь о моём домене, а не о любом в мире. Можно, конечно, отключить, но тогда для машин во внутренней сети надо дополнительно что-то городить - лишнее усложнение.
Процесс простой:
- На файерволле разрешить входящий DNS-трафик только от их IP-адресов (и исходящий на них же - для уведомлений). Разрешить по обоим протоколам - и TCP, и UDP.
- В настройках DNS-сервера разрешить этим адресам zone transfer, и их же внести в список, кому посылать уведомления об изменениях в зоне).
- Указать несколько их серверов как Name Servers для конкретного домена. Этот список не имеет отношения к списку IP-адресов, вытягивающих записи из наших DC, хотя пересечения есть.
- Указать те же сервера как ответственные за наш домен на родительском домене (или у DNS-регистратора).
- Зарегистрироваться у BuddyNS, указать домен и внешний IP-адрес нашего DC, откуда те попытаются вытащить записи этого домена.
Пара примечаний:
- Эта контора только публикуют slave zones во внешний мир - форвардером они не работают. Если нет желания давать DC запрашивать DNS-сервера по всему миру, можно в качестве форвардеров указать адреса Гугла или OpenDNS. Понятно, не забыть про файерволл.
- Понятно также, что с доменами типа .local делать нечего. Не надо такие заводить изначально.