Networking

多宿主伺服器的 Active Directory 設計建議

  • May 15, 2015

客戶要求我為具有以下要求的場景設計一個有效的 Active Directory 設計(簡化,實際上它們更糟糕):

  • 客戶端系統有一個子網。
  • 伺服器系統有一個子網。
  • 兩個網路沒有連接。
  • 每台伺服器應該有兩張網卡,一張在伺服器的網路上,另一張在客戶端的網路上。
  • 客戶端和伺服器之間的流量應該只在客戶端的網路上流動。
  • 伺服器之間的流量應該只在伺服器的網路上流動。
  • 這也應該適用於域控制器。

不用說,這與 Active Directory 使用 DNS 定位域控制器的方式不太相符。任何可能的方法都會導致以下情況之一:

  • DC 在域 DNS 中註冊其“客戶端”IP 地址;客戶端將使用該地址與他們交談,但伺服器和 AD 複製流量也會這樣做。
  • DC 在域 DNS 中註冊其“伺服器端”IP 地址;伺服器將使用該地址與它們通信,複製流量將在該網路上流動,但客戶端將無法訪問它們。
  • DC 將在域 DNS 中註冊兩個IP 地址;任何人都可以猜測任何系統會做什麼來接觸他們。

當然,這些要求完全是瘋狂的,不可能同時滿足所有要求,除非使用瘋狂的解決方案,例如在兩個網路上拆分 DNS 服務並手動填充其 SRV 記錄(啊)或讓伺服器定位使用 DNS 的 DC 和客戶端使用 WINS(雙參數)定位 DC。

我想出的解決方案是在“伺服器”網路上有兩個 DC,在“客戶端”網路上有兩個 DC,定義兩個 AD 站點並僅通過 DC 複製流量跨越兩個網路之間的邊界。這仍然需要一些 DNS 修改,因為每個伺服器仍然有兩個網卡(除了兩個伺服器端 DC 和純後端伺服器),但它至少有一些工作機會。

除了盡快逃離之外,還有什麼建議嗎?

最後我選擇了兩個站點的解決方案:

  • 兩個 DC 用於“伺服器”網路,兩個 DC 用於“客戶端”網路。
  • 兩個 AD 站點,一個用於“伺服器”網路,一個用於“客戶端”網路。
  • “伺服器”網路中的 DC 將只有一個 NIC 位於那個上(客戶端根本不會與它們交談),所以這很容易。
  • “客戶端”區域中的 DC 將有兩個,但只會在 DNS 中註冊它們的客戶端。
  • 伺服器將與他們的 DC 通信,客戶端將與他們的 DC 通信。

當然,這意味著啟用兩個網路之間的複制流量;“客戶端”網路中的 DC仍將有一個位於“伺服器”網路上的 NIC,但由於它不會在 DNS 中註冊,因此該網路中的 DC 將使用其客戶端 IP 地址與它們聯繫;這樣網卡實際上就完全沒用了,需要打開一些防火牆埠。唯一的其他選擇是修改 DC 的hosts文件,但我們希望可以避免這種情況。

好吧,我認為這是可以滿足盡可能多(瘋狂)要求的最好方法。

感謝所有建議:-)

讓我首先說我同意其他許多人的觀點——要麼說服客戶,要麼逃跑。

但是,鑑於您列出的要求(有許多未列出),我至少可以想到(並經過部分測試)實現這一目標的基礎。

有幾個具體方面需要考慮。

  1. Active Directory 域服務複製
  2. 客戶端/成員伺服器的 DC Locator 程序
  3. 非 AD DS 服務的名稱解析和流量

一和二有很多共同點——一般來說,我們是在微軟的心血來潮,必須在微軟的 AD DS 流程範圍內工作。

第三,我們還有一點工作空間。我們可以選擇用於訪問服務(文件、數據庫實例等)的標籤。

這是我的建議:

建構您的域控制器 (DC)

  • 可能至少有兩個。
  • 每個 DC 將有兩個 NIC,每個 IP 網路/AD DS 站點中都有一個 - 現在稱它們為 clt 和 srv。
  • 現在在 srv 網路中的每個 DC 中只配置一個 NIC。

正確配置 AD 站點和服務

  • srv 站點和子網
  • clt 站點和子網
  • 從站點 -> 站點間傳輸 -> 右鍵點擊“IP”,取消選中“橋接所有站點連結”
  • 如果 DEFAULTIPSITELINK 存在(或者如果您將其重命名)則刪除它,以便沒有配置站點連結。請注意,這對我來說是未知的——KCC 可能會將錯誤轉儲到目錄服務事件日誌中,說明兩個站點(srv 和 clt)沒有以不同的時間間隔連接。但是,兩個 DC 之間的複制仍將繼續,因為它們可以使用同一站點中的 IP 相互聯繫。

在 AD DS 集成 DNS 中配置其他區域

  • 如果您的 AD DS 域是acme.local ,請創建一個名為**clt.acme.local並啟用了動態更新的第二個主 AD 集成區域。

在 DC 上配置第二個 NIC

  • 這些 NIC 將是 clt 網路/站點中的 NIC。
  • 設置他們的IP
  • 這是魔術部分-適配器屬性-> IPv4屬性->高級-> DNS選項卡->將此連接的DNS後綴設置為clt.acme.local- >檢查註冊此連接…->檢查使用此連接的DNS 後綴… -> 一直通過。
  • ipconfig /registerdns
  • 這將在 clt.acme.local 區域中註冊 clt NIC IP——為我們提供一種方法來控制以後使用哪個 IP/網路。

配置成員伺服器網卡

  • clt 站點中的成員伺服器 NIC 必須像上面一樣相應地設置其 DNS 後綴和復選框。
  • 這些設置可以與靜態和 DHCP 一起使用,沒關係。

配置 DNS$$ stub $$站點中的解析器行為

  • DC’s -> 配置 DC srv NIC 使用它自己和其他 DC srv NIC IP。將 DC clt NIC DNS 留空(儘管需要靜態 IP)。(預設情況下,DC DNS 伺服器仍將偵聽所有 IP)。
  • 成員伺服器 -> 配置成員伺服器 srv NIC 以使用 DC srv 站點 IP。將成員伺服器 clt NIC DNS 留空(可以使用靜態 IP)。
  • 客戶端/工作站 -> 配置 DNS(通過 DHCP 或靜態)以使用 DC 的 clt NIC IP。

適當地配置映射/資源

  • 當伺服器相互交談時,請務必使用 .acme.local -> 將解析為 srv 網路 IP。
  • 當客戶端與伺服器通信時,請務必使用 .clt.acme.local -> 將解析為 clt 網路 IP。

我在說什麼?

  • AD DS 複製仍會發生,因為 DC 可以相互解析並相互連接。acme.local 和 _msdcs.acme.local 區域將只包含 DC srv NIC IP 的 AD DS 複製只會在 srv 網路上發生。
  • 成員伺服器和工作站的 DC 定位器程序將起作用——儘管在站點未知時各種 AD DS 程序的各個部分可能存在延遲,但如果返回多個 DC IP——它們將被嘗試、失敗並繼續直到一個工作。對 DFS-N 的影響也尚未完全評估——但仍會起作用。
  • 如果您使用上述 .acme.local 和 .clt.acme.local 標籤,非 AD DS 服務將正常執行。

我沒有完全測試過這個,因為它相當可笑。 然而,這個(哇,冗長的)答案的重點是開始評估它是否可能——而不是是否應該這樣做。

@評論

@Massimo 1/2 不要混淆 acme.local 區域中的多個 AD DS 站點,因此 acme.local 區域中這些站點中的 DC 填充的 SRV 記錄與 clt.acme.local 區域中需要 SRV 記錄。客戶端的主 DNS 後綴(以及它們加入的 Windows 域)仍將是 acme.local。客戶端/工作站只有一個 NIC,主 DNS 後綴可能來自 DHCP,設置為 acme.local。

clt.acme.local 區域不需要 SRV 記錄,因為它不會在 DC 定位器過程中使用。它僅由客戶端/工作站使用 clt 網路中的成員伺服器 IP 連接到成員伺服器的非 AD DS 服務。AD DS 相關程序(DC 定位器)不會使用 clt.acme.local 區域,而是使用 acme.local 區域中的 AD DS 站點(和子網)。

@最多 3

clt 和 srv AD DS 站點都會有 SRV 記錄——只是它們將存在於 acme.local 區域中——參見上面的註釋。clt.acme.local 區域不需要 DC 相關的 SRV 記錄。

客戶將能夠找到 DC 罰款。客戶端 DNS 伺服器指向 DC 的 clt IP。

當客戶端上的 DC 定位器程序啟動時

  • 如果客戶端知道它的站點,DNS 問題將是_ldap._tcp。$$ site $$._sites.dc._msdcs.acme.local SRV。這將返回已註冊 SRV 記錄的站點特定 DC。
  • 如果客戶端不知道其站點,則 DNS 問題將是 _ldap._tcp.dc._msdcs.acme.local SRV。這將返回所有 DC。客戶端將嘗試綁定到 DC 的 LDAP,直到找到一個響應。當客戶端找到一個時,它會執行站點查找以確定客戶端的站點,並將該站點記憶體在系統資料庫中,以便將來的 DC 定位器實例更快地發生。

@最多 4

嗯,不錯的收穫。在我看來,有兩種方法可以解決這個問題。

  1. 較小的影響(與下面的 2 相比)是在客戶端/工作站上的 hosts 文件中為 dc1.acme.local 和 dc2.acme.local 創建一個指向 DC 的 clt NIC IP 的條目。

或者

  1. 在每個 DC 上的 netlogon.dns 文件中手動創建必要的 SRV 記錄。這可能會對伺服器網路產生一些影響。如果已配置,成員伺服器有時可以與 clt 網路上的 DC 通信。

總而言之,沒有一個是漂亮的,但這不一定是最終目標。也許客戶只是在測試你的技術能力。將它放在他們的會議桌上並告訴他們*“在這裡,這將起作用,但我向您收取 4 倍我正常費率來配置和支持它。你可以將它降低到我正常費率的 1.5 倍 - 0.5 倍 PITA 費用,通過這樣做$$ correct solution $$。”*

如前所述,我的建議是說服其他人或執行。但這肯定是一個有趣的小練習。:)

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