Как трудно требования Windows? Вы могли выполнить VM Linux для выполнения направляющих?
Производительность, мудрая, они должны в худшем случае быть сопоставимыми. Я был бы готов держать пари, что Вы будете видеть VM Linux выполненные направляющие быстрее, чем хост Windows мог.
Общий (и ориентированный на Windows):
Установите DNS-сервер, поддерживающий динамический DNS.
Настройте соответствующую зону DNS на сервере
Настройте DNS-сервер для обеспечения безопасности и незащищенные обновления DNS для зоны
Настройте DNS-клиенты с DNS-суффиксом, соответствующим зоне DNS
Настройте DNS-клиенты для использования DNS-сервера для разрешения имен
Настройте DNS-клиентов для регистрации в DNS
На самом деле Bind может выполнять динамические обновления DNS через стандартные сообщения RFC 2136. Использование инструмента nsupdate и правильной конфигурации (не очень сложно, но и не совсем тривиально).
Ваши варианты аутентификации этих сообщений обновления: 1) разрешение только определенным IP-адресам для отправки сообщений обновления 2a) симметричное шифрование TSIG 2b) криптография с открытым ключом на основе SIG (0) или комбинация 1 и 2 *. Среди других мест можно найти инструкции здесь
При реализации этого лично я обнаружил, что самая большая проблема была с предоставлением named достаточных прав записи в / var / named. Он должен иметь возможность создавать файлы в каталоге, а также иметь права на запись в файлы для динамических зон.
Ключи Sig (0) генерируются с помощью утилиты dnssec-keygen с типом имени HOST и типом ключа KEY. Например (может быть неточным) (RSAMD5 охватывает почти все пакеты связывания):
dnssec-keygen -a RSAMD5 -b 1024 -n HOST -f Key host.domain.tld
Полученный файл .key будет иметь вид добавленный в ваш файл зоны, .private будет указан в командной строке с помощью nsupdate.
Поскольку все ваши серверы являются частными, я предполагаю, что вы не хотите публиковать IP-адреса в Интернете. . Это на самом деле все упрощает.
Я знаю, что для моих небольших сетей я добился успеха с dnsmasq , совершенно простым сервером DNS и DHCP. Это должно позволить клиентам добавлять себя к DNS-серверу, когда они получают аренду DHCP.
Дополнительная литература: https://superuser.com/questions/312515/dnsmasq-without-altering-etc-hosts-file -вручную
Как IP-адреса назначаются вашим виртуальным машинам? Предполагая, что DHCP, вы можете настроить его для динамического обновления BIND. Вот документация Ubuntu по настройке dhcpd.conf.
http://manpages.ubuntu.com/manpages/lucid/man5/dhcpd.conf.5.html#contenttoc14
На стороне BIND named.conf будет укажите локальную зону для динамического обновления. Вы должны использовать ключи, как указано пользователем 115014.
Я установил привязку с динамическими обновлениями через nsupdate (как описано в CarbonLifeForm) и объединил это с простым Perl-скриптом, который вызывается через зашифрованный HTTPS-запрос REST, проверяет комбинацию поддомена / пароля и затем вызывает nsupdate с IP-адресом запроса.
Пример Update-Call от любого клиента (который автоматически установит соответствующий поддомен на общедоступный IP-адрес этого клиента)
Просто зайдите в любой браузер (в этом примере https был доступен через порт 12345):
https://ddns.YOURDOMAIN.net:12345/update-my-ip.pl?subdomain=***&password=***
или через командную строку (например, для обновлений каждые 15 минут с помощью cronjob):
www-browser -dump 'https://ddns.YOURDOMAIN.net:12345/update-my-ip.pl?subdomain=***&password=***'
Вот perl-script update-my-ip.pl:[12111 fastender