在 Windows DNS 上註冊 linux 主機名
如何在 Windows 伺服器 DNS 中註冊 DHCP linux 客戶端的主機名?
我有一個小型企業混合網路:
DCHP Windows 工作站(主機名範例
win1
:)
- 約10台機器
- 機器在域上,沒有特殊配置。
DHCP Linux (Debian stretch) 工作站(主機名範例
lin1
:)
- 約20台機器
sssd
使用連接到域realm join
- 可以在任何機器上使用 AD 憑據
/etc/nsswitch.conf
包含hosts: files dns
我認為意味著 linux 客戶端可以從 DNS 導入主機名以靜態 IP 執行 Windows Server 的 DHCP/DNS 伺服器
從任何機器我可以
ping win1
,但不能ping lin1
告訴我們:
- 所有機器都使用 DNS 正常(可以 ping
win1
)- windows主機名自動註冊
- linux主機名不會自動註冊
被拒絕的解決方案:
hosts
:我們沒有靜態 IP,因此我不會手動維護hosts
文件的主副本並在發布新的 DHCP 租約時分發它。A
向DNS添加記錄:同樣,我不想在發布新的 DHCP 租約時手動更新記錄。avahi
: windows 客戶端看不到 linux 客戶端。我沒有嘗試過的事情:
likewise
: 我寧願不要sssd
像這樣從頭開始放棄和重新配置所有 20 台機器。但是,如果lw-register-dns
可以解決問題並且不會與 衝突sssd
,那麼這可能是一個解決方案。仍然覺得客戶端需要創建一個 cron-job 來修改 DNS 很奇怪,我最好限制 DNS 寫訪問。winbind
,似乎也sssd
完全取代了。我嘗試了連結的建議,但在重新啟動客戶端的網路服務後沒有發現任何差異。nmbd
. 已經使用的工作站smbclient
,他們真的需要成為成熟的 samba 伺服器嗎?net ads dns register -P
. 我需要訪問 DNS 以啟用不安全的更新。
所以最終的答案根本不在 linux-client 端,而是在 DHCP 配置上。
在“Windows Server 2016 Standard”上,我必須執行以下操作才能使其正常工作。
打開“DHCP”桌面應用程序
選擇 DNS 選項卡
展開代表您的域的節點
右鍵點擊“IPv4”
從上下文菜單中選擇“屬性”
勾選“根據以下設置啟用 DNS 動態更新:”
選擇“始終動態更新 DNS 記錄”
勾選“動態更新不請求更新的 DHCP 客戶端的 DNS 記錄”
結果不是立竿見影的。重新啟動機器並沒有強制更新。我在周五進行了更改,到週三所有 Linux 客戶端似乎都列在了 DNS 中。
我可以通過查看同一台伺服器上的“DNS 管理器”來確認添加內容。
/etc/nsswitch.conf
包含hosts: files dns
我認為意味著 linux 客戶端可以從 DNS 導入主機名你所做的假設是不正確的。該行指示系統將如何嘗試查找您輸入的主機名或域名。例如,在 ping 域名時,或在瀏覽器中輸入 url 時。
files
指的/etc/hosts
是您可以手動指定域到 ip 綁定的地方。dns
指的是您的系統正在使用的 DNS 伺服器。因此,使用您的配置,如果您要輸入ping google.com
系統將首先在 (/etc/hosts) 中查找 google.com 和關聯的 ipfiles
,然後如果在/etc/hosts
.當 Windows 機器加入域時,它們成為受信任的資源。如果該服務安裝在域上並由 AD 管理,則在加入域時會為他們創建 DNS 記錄。要允許非 Windows 機器在 DNS 中註冊其主機名,必須將區域配置為允許更新。非 Windows 機器還需要在
/etc/hostname
文件中配置正確的域,以便它與您的 AD 環境的域名匹配。