Domain-Name-System

Windows DNS 伺服器:託管區域,但轉發未知條目

  • September 30, 2020

我們公司有一個腦裂 DNS 場景,我們有相同的條目指向不同的 IP。

Example1:
Internal DNS: email.company.net (A) 172.20.1.1
External DNS: email.company.net (A) 22.191.72.18

因此,電子郵件只是我們必須“拆分”的少數條目之一。我們的公共 DNS 區域中確實有很多其他 DNS 條目,它們也需要在內部區域中保持不變。讓我們看另一個例子:

Example2:
Internal DNS: video.company.net (A) -not present-
External DNS: video.company.net (A) 22.191.72.49

因此,當我想從公司內部訪問videoportal.company.net時,DNS 伺服器報告它沒有找到該查詢的 DNS 條目。為了使其正常工作,我還必須在內部 DNS 區域上重新創建所有外部 DNS 條目,並隨著時間的推移維護所有這些記錄。這會導致大量重複工作。我想做的是:

創建一個包含一些條目的區域,並為其分配一個策略:“解決您可以在其中找到的內容,但將您找不到的任何內容轉發給您的解析器/根提示”

有沒有這樣的事情可以用政策來完成?甚至如何呼叫這樣的功能?

我知道我可以創建一個帶有 email.company.net 的區域和一個空的 A 記錄。這會在外部轉發任何 somethingelse.company.net 記錄。我問的原因要復雜得多,我想問一個盡可能簡短的問題。所以只是假設這個解決方案現在不適用於這裡。如果您能專注於上述問題,我將不勝感激。

編輯:所以最後,內部 DNS 伺服器應該做這樣的事情:

  • DNS 伺服器從客戶端獲取 email.company.net 的請求
  • DNS 伺服器在他的內部區域 company.net 中進行查找
  • DNS 伺服器返回 IP 172.20.1.1 給客戶端
  • DNS 伺服器從客戶端獲取 video.company.net 的請求
  • DNS 伺服器在他的內部區域 company.net 中進行查找
  • DNS 伺服器找不到 video.company.net 的條目
  • 然後 DNS 伺服器通過他的根提示進行遞歸查找
  • DNS伺服器最終得到答案並將IP 22.191.72.49返回給客戶端

不幸的是,你想要的是不可能的;當您在內部 DNS 伺服器中創建一個區域並將其定義為主要區域時,該伺服器將假定對該區域具有權威性,因此將以“此記錄不存在”來回答任何它不知道的記錄請求.

唯一的解決方法是您已經知道的解​​決方法:您可以僅為您實際要屏蔽的記錄定義子區域,然後在其中創建空記錄;空記錄映射到區域的全名,因此最終效果是相同的,但是這樣的區域不會掩蓋主區域中的所有其他名稱,這將使用標準遞歸來解決。

在您的範例中,您應該創建一個名為的區域email.company.net,然後在其中創建一個指向 172.20.1.1 的空 A 記錄;內部查詢email.company.net將通過 172.20.1.1 得到答复,但這不會影響對 的查詢video.company.net,這將通過查詢公共 DNS 繼續得到解決。

順便說一句,這個技巧不僅適用於 A 記錄,而且適用於任何可以為空的記錄(例如 SRV)。

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