使用 Microsoft DNS 根據請求子網進行響應
在我們的企業 Windows Active Directory 環境中,我們有大約 50 多個子網分佈在一個很大的地理區域中。我們在每個站點都有一個系統,通過提供中央驅動程序儲存、中央軟體儲存、SEP 定義文件等來支持該站點。數據使用我們創建的黑客共同機制在不同機器之間複製。我們不能使用 DFS,因為該組織不會為大多數位置的 Windows 伺服器許可證提供資金。所以大多數“伺服器”實際上是 Windows 7 機器。
我們想做的是創建一個 DNS 記錄(我們稱之為 SUPPORT),其中包含每個站點伺服器的 IP 地址,並讓 DNS 伺服器根據請求所來自的子網進行響應。這部分將在預設情況下大部分工作。從 Windows Vista 開始,終端機器將使用子網優先級,這意味著它將從 IP 列表中挑選出與其在同一子網中的任何 IP。這很棒。
但是,我們有兩個問題:
- 預設情況下,Microsoft 假定為 C 類子網。我不知道這是否僅在伺服器以子網優先順序提供記錄時才會發生,或者如果客戶端在查詢記錄後優先考慮也會發生這種情況。我認為它只會發生在伺服器端,因為伺服器無法確定請求 IP 位於哪種子網中,而客戶端顯然應該知道。但我不確定。客戶端會像 DNS 伺服器一樣假設 C 類子網嗎?如果是這樣,如何在機器或 DNS 伺服器上定義非 C 類子網?
- 我們有一些物理站點在同一個站點有多個子網。但是,這些站點的所有子網之間都是千兆位的,因此每個站點只有一台伺服器。換句話說,在某些情況下,我們有一個支持多個子網的伺服器。當請求來自某個子網時,我們如何配置機器或 DNS 伺服器以響應某個 IP?
所以最後兩個問題是:
- 客戶端會像 DNS 伺服器一樣假設 C 類子網嗎?如果是這樣,如何在機器或 DNS 伺服器上定義非 C 類子網?
- 當請求來自某個子網時,我們如何配置 DNS 伺服器以響應某個 IP?
提前致謝!
您的要求超出了您在 Windows 中實現的 DNS 重新排序/子網優先級所能獲得的。客戶端無法僅通過 DNS 資訊推斷出與它們“最近”的主機。
儘管如此,您還是應該認真考慮使用 Dfs。對 Dfs 共享的訪問是站點感知的,您可以根據需要定義您的站點(包括可變位遮罩和將多個子網分組到一個站點)。請注意,Dfs 並不意味著您的所有 Dfs 共享實際上都必須指向 Windows 伺服器。目標可以是提供 SMB 共享的所有內容,包括 Windows Professional 和 Samba 安裝或 NAS 設備。Windows Server 要求僅適用於擁有 DFS 命名空間/根共享的伺服器 - 您不一定(至少在技術上不是)需要在每個站點都有一個。
此外,當您使用 Windows 7 時,您可能會考慮使用BranchCache來支持複製的“共同攻擊機制”。您描述的場景聽起來很像 BranchCache 的創建目的。但是,如果您有混合環境與執行 Windows Vista 和早期版本的 Windows 的主機,這可能不是一個選項。
如果您決定通過 DNS 解決此問題,您可能會考慮使用支持DNS 視圖(BIND 支持)的 DNS 伺服器,並且只返回“最近的”伺服器作為特定客戶端的響應。但是,如果您使用中間解析器,這將比必要的工作量大得多並且不可靠,因此在大多數情況下應該認真支持 Dfs 方法。