考虑到我在谷歌上搜索与该问题相关的任何术语时运气完全不佳,这甚至可能是不可能的,但是:
是否存在一种合理标准的方法来在机器上设置主机名,并将该主机名“推送”到基于 BIND 的 DNS 服务器,而不是相反?
背景:
在这个特定的环境中,DHCP 被禁止,所以我需要想出一种快速部署系统的替代方法。我几乎只是用 Puppet 和 Web UI 来自动填充主机名,但从客户端推送会更容易实现自动化(因为那样我只需要触摸安装程序中的一个对话框)。
所有有问题的客户端系统都是基于Linux的。
答案1
我不知道是否有一套标准的方法,但假设 BIND 服务器配置为允许动态更新,您可以在启动时(或在 cron 作业上)运行 shell 脚本来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 信息作为脚本的一部分放入变量中,使脚本更加通用和可用。