Учитывая полное отсутствие удачи, я искал в Google любые термины, связанные с этим вопросом, это может быть даже невозможно, но:
Есть ли достаточно стандартный способ установить имя хоста на машине и передать это имя хоста на DNS-сервер на основе BIND, а не наоборот?
Задний план:
DHCP запрещен в этой конкретной среде, поэтому мне нужно придумать альтернативный способ быстрого развертывания систем. Я близок к тому, чтобы просто взломать что-то вместе с Puppet и веб-интерфейсом для автоматизации заполнения имен хостов, но было бы проще автоматизировать нажатие со стороны клиента (с тех пор все, что мне нужно было коснуться, - это один диалог в установщике).
Все рассматриваемые клиентские системы основаны на Linux.
Я не знаю, есть ли установленный стандартный способ, но, если сервер 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-адрес как часть сценария в переменные.