如何整合多個路由器和多個 DHCP 伺服器的本機 DNS?

如何整合多個路由器和多個 DHCP 伺服器的本機 DNS?

我有一個私人網絡,其中有多個 OpenWrt 路由器連接一些本地子網。我在幾個路由器上使用 NAT,以便透過不同的供應商存取網際網路。

我運行本機 DNS 遞歸快取解析器(未綁定),為所有本機子網路上的所有用戶端提供服務。

每個路由器為其本機子網路處理 DHCP 並指派主機名稱。但所有子網路都在 my-example.com 下。 (因此路由器 1 的客戶端可能是「client1.router1.my-example.com」)

我想讓所有路由器將其 DHCP 用戶端報告給提供 DNS 的主路由器,以便任何本地子網路上的任何用戶端都可以透過名稱存取任何其他用戶端。 (路由已經可以工作;我可以透過 IP 位址從任何地方到達任何地方。)

似乎我需要在我的主 DNS 機器上設定類似私人動態 DNS 的東西,但我沒有找到合適的軟體包。

如何讓我的所有本機 DHCP 用戶端名稱(來自不同路由器下的所有子網路)可供本機網路中的所有其他用戶端使用?

答案1

您可以保持 DNS 不變,但配置中央 Unbound 伺服器以根據後綴將請求轉送到正確的名稱伺服器。這可以使用forward-zonestub-zone區塊來完成。 (兩者在操作上非常相似,但在您的情況下stub-zone更正確,因為您將其直接指向權威伺服器,而forward-zone期望指向另一個遞歸解析器。)例如:

stub-zone:
    name: "router1.my-example.com."
    stub-addr: <IPv4 address of router1>
    stub-addr: <IPv6 address of router1>
    stub-first: yes

(在公共 DNS 中,您通常會設定子網域代表團使用NS記錄 – 這會告訴解析器例如<foo>.router1.my-example.com由不同的伺服器處理。

或者它可以設定動態 DNS,以便路由器直接在中央伺服器上註冊記錄,但這可能需要切換到完全不同的軟體。在中央伺服器端,您可能需要用 BIND9 或其他可以託管區域並支援 RFC 2136「DNS 更新」協定的東西替換 Unbound,並且在路由器上,您需要一個知道如何提交的 DHCP 伺服器此類更新。

我不確定 OpenWRT 是否有其他選項,但我懷疑路由器目前正在運行 Dnsmasq,它可以執行動態主機名,因為它們都在同一個進程中 - 同一個程式處理 DNS 和 DHCP。但它不知道如何在其他地方提交 DNS 更新。您需要使用 Dnsmasq使其以正確的參數--dhcp-script運行。 nsupdate(ISC DHCP 伺服器支援 DDNS,通常與 BIND 配對,但不再維護。)

相關內容