有關 DNS 路由的一般問題

有關 DNS 路由的一般問題

問題。我有一個 Windows AD 網域,有一個部分對我來說是個謎:Windows 網域/DNS 伺服器如何找到 Windows 網域以外的網域?

在簡單的家庭網路中,DNS請求路由很容易理解:

Generic Example: Client machine -> (defined DNS or from DHCP) -> 
                ->Router / Gateway -> (usually ISP DNS) -> DNS root servers -> Internet
Specific Example: 192.168.1.101 -> 192.168.1.1 -> 8.8.8.8 -> DNS root servers -> Internet

相比之下,我目前看到的 AD 網路路徑是這樣的:

Client Machine -> Windows Domain / DNS -> ??????? -> DNS root servers -> Internet

如果我檢查網域伺服器上的網路設置,DNS 將設置為備用 DNS 伺服器(輔助網域伺服器)、本身和環回,僅此而已。

我的互聯網可以正常工作,因此 Windows 網域伺服器足夠智能,可以從上游伺服器獲取 DNS 信息,但這是在哪里以及如何定義的?

答案1

DC 查詢外部名稱伺服器的幾種方式:

  1. 根提示
  2. 全球貨運代理
  3. 明確定義的存根區域、授權或有條件的轉送區域
  4. DC 網路介面上的設定 - 您已檢查過。

我會猜#1 或#2。您的問題僅包括檢查網路設定 - 您檢查過 DC 上的 DNS 管理器嗎?

如果以上所有內容均為空白,則表示發生了意外情況,您也許應該使用wireshark 追蹤傳出的 DNS 查詢。

答案2

DNS 由兩個完全不同的部分組成。一部分負責發布數據,另一部分負責接受來自客戶端的 DNS 請求並嘗試透過收集數據來回答這些請求。執行發布資料角色的 DNS 伺服器通常被稱為「權威」伺服器,儘管這在技術上並不是一個真正正確的名稱。就我個人而言,我更喜歡「DNS 內容伺服器」這個名稱,但該術語的使用並不廣泛。接受並應答來自客戶端的請求的伺服器通常稱為“解析”伺服器。

這實際上與 HTTP 伺服器和 HTTP 代理的工作方式非常相似:HTTP 伺服器發布數據,HTTP 代理接受來自客戶端(瀏覽器)的請求,並聯絡伺服器以收集客戶端請求的資料。 Web 瀏覽器和 DNS 用戶端之間的差異在於 DNS 用戶端本身無法聯繫內容 DNS 伺服器。 DNS 用戶端不得不使用 DNS 解析伺服器,而 Web 瀏覽器無需 HTTP 代理即可完全運作。

由於 DNS 資訊以分層和分散式方式存儲,因此要回答單一查詢,您需要來自多個 DNS 內容伺服器(可能位於世界各地)的資訊。當 DNS 用戶端想要知道「www.serverfault.com」的位址時,它只需將該請求傳送到 DNS 解析伺服器即可。然後,該 DNS 解析伺服器必須執行聯繫世界各地 DNS 伺服器的實際工作。

首先,解析 DNS 伺服器將整個查詢傳送到根伺服器(它是內容 DNS 伺服器)。根伺服器沒有完整的答案,但它了解哪些 DNS 內容伺服器擁有有關「.com」網域中的名稱的更多資訊。因此,DNS 解析器現在將整個查詢傳送到「.com」內容 DNS 伺服器之一。該伺服器也沒有完整的答案,但它確實知道哪些 DNS 內容伺服器擁有有關網域中名稱的更多資訊servervault.com。解析 DNS 伺服器將持續詢問世界各地的內容 DNS 伺服器,直到為用戶端提供完整的答案。當然,解析 DNS 伺服器會一路快取資訊:如果它從快取中知道「.com」內容 DNS 伺服器的位置,則它不會為「.com」網域中的每個查詢聯絡根內容 DNS 伺服器。

「轉發器」只是一個解析 DNS 伺服器,它將用戶端查詢傳送到另一個(預先配置的)解析 DNS 伺服器,而不是嘗試透過聯絡世界各地的內容 DNS 伺服器來自行回答它們。家庭路由器通常包含一個 DNS 解析伺服器,該伺服器被設定為使用 ISP 的 DNS 解析伺服器作為轉送器。

當兩個不同的角色(內容服務和解析)同時出現在一台 DNS 伺服器中時,可能會造成混亂。 Active Directory 或多或少會發生這種情況。在 Active Directory 中,DNS 用於發布有關在何處可以找到某些服務的資訊。例如,當網域中的用戶端ad.example.com想要聯絡其網域的 Kerberos 密碼變更伺服器時,它會發出對名為 的 SRV 記錄的 DNS 請求_kpasswd._tcp.ad.example.com。與任何其他 DNS 請求一樣,此 DNS 請求將傳送至用戶端中設定的解析 DNS 伺服器。然後,解析 DNS 伺服器開始嘗試回答請求。

這就是可能會讓人有點困惑的地方。 DNS 解析伺服器可能知道它是特定 Active Directory 網域的一部分,這表示它可以識別對該網域中的名稱的傳入查詢。如果解析器收到此類查詢,它不會聯絡外部 DNS 伺服器,但可以直接使用 Active Directory 資料庫中的資訊進行回應。如果傳入查詢不是針對網域中的名稱,則解析器會嘗試透過聯絡內容 DNS 伺服器來自行回答問題,或(如果已設定為使用轉發器)僅將查詢傳送至另一個 DNS 解析伺服器。這很可能是您的場景中發生的情況。

更令人困惑的是動態更新。在任何重要領域,服務都不是靜態的。網域控制器可能會被新增或刪除等。這意味著 DNS 中的資訊需要更新以反映這一點。動態更新是一種協議,使客戶端能夠修改 DNS 中發布的信息。用戶端會向其解析 DNS 伺服器發送查詢,以找出可以將新資訊傳送到哪個內容 DNS 伺服器。在 Active Directory 整合 DNS 基礎架構的情況下,解析 DNS 伺服器很可能有權存取資料庫本身:在這種情況下,解析 DNS 伺服器告訴用戶端它可以自行更新資訊。

相關內容