Linux

將主機名推送到沒有 DHCP 的 DNS 伺服器

  • December 18, 2013

考慮到完全沒有運氣,我已經在Google上搜尋過與這個問題相關的任何術語,這甚至可能是不可能的,但是:

是否有一種合理的標準方法可以在機器上設置主機名,並將該主機名“推送”到基於 BIND 的 DNS 伺服器,而不是相反?

背景:

DHCP 在這個特定環境中被禁止,所以我需要想出另一種方法來快速部署系統。我幾乎只是將 Puppet 和 Web UI 組合在一起以自動填充主機名,但是來自客戶端的推送會更容易實現自動化(從那時起我只需要在安裝程序中觸摸一個對話框)。

所有有問題的客戶端系統都是基於 Linux 的。

我不知道是否有一套標準方法,但假設 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 資訊作為腳本的一部分拉入變數中來使腳本更加通用和可用。

引用自:https://serverfault.com/questions/562323