Windows

如何讓 Windows Server DNS 使用主機文件來解析特定主機名

  • August 29, 2019

$$ NOTE: The solution of this question is perfect, by something stray away from what the title indicates. $$ 我面臨一個小問題Windows Server 2003 DNS service。在我的公司,我正在執行 Microsoft DNS 伺服器(172.16.0.12)對我公司的 Intranet 進行名稱解析(域名以dev.nls. 結尾,解析為 IP 172.16… ,它還配置為 DNS 轉發器以轉發其他域名(例如 *.google.com , *.sf.net) 到Internet real DNS servers. 該內部 DNS 伺服器從不傾向於為來自外部世界的使用者提供服務。

而且,我們正在公司防火牆內執行一個郵件伺服器(為真正的Internet 域提供傳入郵件@nlscan.com),可以通過以下任何一種方式訪問它:

  1. 通過172.16.0.10從 Intranet 連接到。
  2. 通過從 Internet連接到mail.nlscan.com(解析到)。202.101.116.9

注意172.16.0.10202.101.116.9不是同一台物理機。一個是防火牆機器,它做埠的202埠轉發25110內網地址172.16.0.10

現在我的問題是:如果公司區域網路內的使用者想要解析mail.nlscan.com,它會解析為202.101.116.9. 這是正確和可行的,但不是很好,因為郵件流量進入防火牆機器,然後反彈到172.16.0.10. 我希望我們internal DNS server可以截取名稱mail.nlscan.com並將其解析為 172.16.0.10 。所以,我希望我可以在“hosts”文件中寫一個條目172.16.0.12來做到這一點。但是,如何Microsoft DNS server辨識這個“hosts”文件呢?

也許你建議,為什麼不讓內網使用者172.16.0.10訪問我的郵件伺服器呢?我不得不說這很不方便,假設使用者(員工)在他的筆記型電腦上工作,白天在辦公室,晚上在家裡。當他在家時,他不能使用172.16.0.10.

nlscan.com在我們內部創建區域DNS server是不可行的,因為nlscan.com域的名稱伺服器在我們的 ISP 上,它負責解析 nlscan.com 下的其他主機名和子域。

$$ EDIT $$ 正如WesleyDavid建議的那樣,我遵循簡單地創建一個名為的區域mailserver.nlscan.com並在該區域中放置一個無名 A 記錄的解決方案。時間證明這很好用。

這篇文章的後半部分是錯誤的。我的印像是,根據我在網上讀到的一些東西(如果它在網上,那一定是真的!),Windows DNS 伺服器服務創建記憶體的部分任務是將其主機文件載入到記憶體及其本地區域數據。我四處搜尋,找不到確鑿的證據。我在自己的Server 2008 R2機器上測試了這個理論,發現hosts文件沒有被用來建構DNS Server的記憶體。

但是,我相信我有一個比 Massimo 更優雅的解決方案。無需為整個 nlscan.com 區域創建權威區域,只需創建一個名為 mailserver.nlscan.com 的區域並在該區域中放置一條無名 A 記錄。無名 A 記錄將與區域本身俱有相同的名稱,您可以為其提供所需的 IP 地址。nlscan.com 下的所有其他域以及 nlscan.com 本身都將由公共 DNS 解析。

我剛剛在我自己的 Server 2008 R2 DNS 伺服器上對此進行了測試,並且能夠讓我朋友的網站 (nessus.nl) 通過公共 DNS 伺服器解析,但特定的子域 (blog.nessus.nl) 解析為 Apple.com IP 地址. 試試看它是否適合你。

較舊的錯誤文章開始:

如果我的理解是正確的(編輯:事實並非如此),當 DNS 記憶體內置在 Server 2003 機器中時,它會從 hosts 文件中提取條目以及它的區域數據。放置172.16.0.10 mailserver.nlscan.com在您的 Server 2003 機器的主機文件中應該可以解決問題。更改主機文件後重新啟動 DNS 服務。

在任何 Windows 機器(特別是您的 Server 2003 DNS 機器)上使用 ipconfig /displaydns 來查看您的主機文件條目。還要記住,否定響應會記憶體在您的客戶端中,因此請始終在您正在試驗的客戶端上執行 ipconfig /flushdns。否則,當您想知道為什麼您的客戶端無法解析您剛剛輸入到區域/主機文件中的名稱時,您最終會濫用自己對抗各種硬對象。=)

你試過這個但失敗了嗎?

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