DHCPなしでDNSサーバーにホスト名をプッシュする

DHCPなしでDNSサーバーにホスト名をプッシュする

この質問に関連する用語を Google で検索してもまったく運がなかったことを考えると、これは不可能かもしれませんが、

マシンにホスト名を設定し、そのホスト名を BIND ベースの DNS サーバーに「プッシュ」する(その逆ではなく)標準的な方法はありますか?

背景:

この特定の環境では DHCP が禁止されているため、システムを迅速に展開する別の方法を考え出す必要があります。ホスト名の入力を自動化するために、Puppet と Web UI を使って何かをハッキングするところまで来ていますが、クライアントからのプッシュの方が自動化が簡単でしょう (そうすれば、インストーラーの 1 つのダイアログに触れるだけで済むため)。

問題となっているクライアント システムはすべて 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 情報を変数に取り込むことで、スクリプトをより汎用的で使いやすくすることもできます。

関連情報