具有 DHCP 和自訂 DNS 集的路由器如何處理客戶端 DNS 設定?

具有 DHCP 和自訂 DNS 集的路由器如何處理客戶端 DNS 設定?

我的網路中有一個自訂 DNS 伺服器,我希望所有用戶端都使用它(它具有廣告過濾器等,類似於 PiHole)。

我已將路由器 (LinkSys Velop) 設定為使用此 DNS 伺服器。然而,在 DNS 伺服器的管理頁面上,我只看到路由器在執行 DNS 查詢,而不是客戶端。我假設路由器(遲早)會告訴客戶端使用特定的 DNS 伺服器。儘管重新啟動客戶端(並執行各種其他網路重置操作等ipconfig /flushdns,但它們似乎並沒有直接存取 DNS 伺服器:只有路由器可以。

到目前為止,我可以讓客戶端直接存取 DNS 伺服器的唯一方法是在用戶端網路配置中手動輸入 DNS 伺服器。

所以問題:

  • 這是預期的行為嗎?
  • 路由器(或僅我的?)中的 DNS 設定是否只是讓路由器繼續「充當」DNS 伺服器並將請求重定向到設定的 IP 位址,然後將結果發回?
  • 我需要做什麼才能讓客戶端將特定 IP 位址設定為 DNS 伺服器?我必須設定自己的 DHCP 伺服器嗎?
  • 通常的(例如 CentOS 中的 ISC DHCP?)linux DHCP 伺服器是否告訴客戶端要使用哪個 DNS 伺服器,或者它們也只是轉送請求?

謝謝!

答案1

路由器,就像在設備+軟體中那樣,執行 IP 封包轉發,根本不會對 DNS 或 DHCP 執行任何操作...

不過既然您提到了一種常用作 SOHO/家庭寬頻路由器的設備。這是一個提供路由、NAT、防火牆、DNS、DHCP 和許多其他服務的設備。

無論如何,當配置了 IPv4 DHCP 並且沒有任何靜態配置的用戶端連接到網路時,它將發出 DHCP 請求,其中將包括對選項 6 資料的請求,該資料是要用於的 IP 清單網域名稱系統。 DHCP 伺服器可能會提供帶有 IP 清單的答案。一旦客戶端得到答案,它將繼續使用這些 DNS 伺服器,直到地址被釋放或更新並提供更新的資訊。

因此,如果您想強制客戶端從 DHCP 伺服器取得更新的 DNS 設置,您需要在客戶端上進行更新。儘管重新啟動或斷開連接並重新連接網路介面通常也會觸發此問題。

SOHO/家庭路由器通常無法使用庫存韌體進行設定。您通常可以使用非標準韌體獲得更多控制。或只是在網路上的其他裝置上運行服務。

答案2

DHCP 伺服器(可能在路由器上運作)為用戶端提供他們可以使用的 DNS 伺服器的 IP 位址。

你需要調整這些。

如果不能,SOHO 路由器的一個明顯可能性是,路由器本身很可能會向客戶端提供 DNS 伺服器的 IP 位址(路由器本身用於 DNS 的 IP 位址),或者路由器將始終提供自己的 IP 位址作為DNS 伺服器。然後,您可以在路由器上經常(隱式)為您的專用網路設定正向和反向 DNS,並且對於所有其他查詢,路由器會將查詢轉送到其自己的外部 DNS 伺服器。

在後一個範例中,您將看到所有用戶端查詢似乎也源自路由器 IP 位址

答案3

我沒有解決該問題的方法,但看起來 Linksys Velop (WHW03CFv2) 路由器中存在一個錯誤,它不會將您在管理 UI 中配置的自訂 DNS 伺服器傳送到用戶端。

我可以在 Wireshark 中看到這一點,無論您在 UI 中配置什麼,DHCP 選項 6(DNS 伺服器)都會設定為路由器的 IP。

WINS伺服器的設定將透過DHCP Option 44成功傳輸到客戶端。

相關內容