Учитывая полное отсутствие удачи при поиске в Google терминов, связанных с этим вопросом, это может быть даже невозможно, но:
Существует ли достаточно стандартный способ задать имя хоста на машине и «передать» это имя хоста на DNS-сервер на базе BIND, а не наоборот?
Фон:
DHCP запрещен в этой конкретной среде, поэтому мне нужно придумать альтернативный способ быстрого развертывания систем. Я близок к тому, чтобы просто состряпать что-то с Puppet и веб-интерфейсом для автоматизации заполнения имен хостов, но push-уведомление от клиента было бы проще автоматизировать (поскольку тогда мне пришлось бы коснуться только одного диалога в установщике).
Все рассматриваемые клиентские системы основаны на Linux.
решение1
Я не знаю, существует ли какой-то стандартный способ, но если сервер BIND настроен на разрешение динамических обновлений, вы можете запустить скрипт оболочки при запуске (или в задании cron) для nsupdate
обновления записи.
#!/bin/bash
ECHO server <mydnsserver> > /tmp/dnsupdate
ECHO "zone <mydomain>" >> /tmp/dnsupdate
ECHO "update delete my.fqdn.com A" >> /tmp/dnsupdate
ECHO "update add my.fqdn.com 60 A myipaddress" >> /tmp/dnsupdate
ECHO "send" >> /tmp/dnsupdate
ECHO "zone <ipnetwork-inaddr.arpa.>" >> /tmp/dnsupdate
ECHO "update delete <myip.in-addr.arpa> PTR <my.fqdn.com>" >> /tmp/dnsupdate
ECHO "update add <myip.inaddr.arpa. 60 PTR <my.fqdn.com>" >> /tmp/dnsupdate
ECHO "send" >> /tmp/dnsupdate
nsupdate -v /tmp/dnsupdate
Если вам нужны защищенные обновления, вы можете создать пару ключей и указать ключ nsupdate -k <keyfile> -v /tmp/dnsupdate
. Вы также можете сделать скрипт более универсальным и удобным, вытащив информацию об имени хоста и IP как часть скрипта в переменные.