首先,Active Directory 是集中式儲存庫 (central repository),其中儲存企業中的所有物件及其各自的屬性。
它是一個分層 (hierarchical) 多主 (Multi-master) 模型的資料庫。
無論域控制器 (DC) 聯網與否,都可以在企業中任意給定的 DC 上處理對資料庫的更改。
這當中,[多主] 意味著可靈活地在企業中的任何 DC 上進行資料的更改。
但它也可能造成衝突,Windows 處理更新衝突的一種方法是最後寫入有效(last writer wins)。
儘管此方法在某些情況下可以接受,但有時也不能解決太過困難的衝突。
所以,最好是防止衝突的發生,而不是在事後試圖解決衝突。
為了防止資料更新中出現衝突,Active Directory 以 [單主] 方式對某些物件執行更新。
同時,Active Directory 擴充套件了早期版本 Windows 中的單主模型,拆分出多個角色,並可將任一角色傳輸到任何 DC,
在單主模型中,整個目錄中只有某臺特定的 DC 可以處理特定物件的更新。
也正因為這些 Active Directory 角色未繫結到單個 DC,因此它稱為 FSMO(靈活的單主機操作) 角色。
目前 Windows 中有五個 FSMO 角色:
-
架構主機 (Schema master)
-->Forest-wide,每個林 1 臺,由位於林根域的 DC 承擔。
·綜述:
擁有 Schema master 角色的 DC 是唯一可以處理目錄架構更新的 DC。
架構更新完成後,它將從架構主機複製到目錄中的所有其他 DC。
·啟用條件:
目錄服務啟動成功,且入站方向的 [架構 NC] 已經被角色所有者複製成功時,此角色啟用。
·連線條件:
林中的 DC 和成員僅在更新架構時才與 FSMO 角色聯絡。
·當機影響:
若 Schema master 不可用,則不可對活動目錄架構進行變更,但日常操作均不涉及架構變更,不會立即引發故障。
·命名上下文 (Naming context, NC):
LDAP 路徑:LDAP://cn=schema,cn=configuration,dc= -
域命名主機 (Domain naming master)
-->Forest-wide,每個林 1 臺,由位於林根域的 DC 承擔。
·綜述:
擁有 Domain naming master 角色的 DC 是唯一可以處理林中域關係更新的 DC。
如,在林中建新域或子域時,由 Domain naming master 確保林內域名空間的一致性(域名唯一性、完整性)。
·啟用條件:
目錄服務啟動,且入站方向的 [配置 NC] 已被角色所有者成功複製時,此角色啟用。
·連線條件:
林中的成員僅在更新交叉引用時才與 FSMO 角色持有者聯絡。
林中的 DC 會在林中新增/刪除域時聯絡,以及在 DC 上新增了應用程式目錄分割槽的新例項。
-->例如,已為預設 DNS 應用程式目錄分割槽登記 DNS 伺服器。
·當機影響:
若 Domain naming master 不可用,則無法增加新域/子域,但日常操作均不涉及域名更改,不會立即引發故障。
·命名上下文:
[Partitions\Configuration]
LDAP 路徑:LDAP://CN=Partitions,CN=Configuration,DC= -
RID 主機 (RID master)
-->Domain-wide,每個域 1 臺。
·綜述:
RID 全稱為 Relative ID,即:相對 ID。
域中每個安全主體的 SID 都是唯一的,RID master 負責處理來特定域內所有 DC 的 [RID 池] 的請求。
*也負責處理安全主體物件的域間移動 (從其域中刪除一個物件並將其放入另一個域) 的處理。
域中的每臺 DC 都被分配了一個 RID 池,允許它為自己建立的安全主體分配 RID。
當為某臺 DC 分配的 [RID 池] 低於閾值時,該 DC 會向域內的 RID master 發出額外 RID 請求。
域 RID master 從域內未分配的 RID 池中檢索 RID 來響應請求,並將它們分配給請求 DC 的池中。
每個域只有一個 RID master,換句話說,林中可以有多個域,每個域都有一臺 RID master。
·啟用條件:
目錄服務啟動,且入站方向的 [域 NC] 已被角色所有者成功複製時,此角色啟用。
·連線條件:
當 DC 檢索新的 RID 池時,它們會與 FSMO 角色持有者聯絡,新的 RID 池透過 AD 複製 (AD replication) 傳遞給請求 DC。
·當機影響:
若 RID Master 不可用,同時,某臺 DC 的 RID 池用完,則該 DC 無法建立新的安全標識物件。
換句話說,如果 DC 仍有可用的 RID 池,則可以繼續建立物件。 -
PDC 模擬器 (PDC emulator)
-->Domain-wide,每個域 1 臺。
綜述:
對於依賴時間同步的 Kerberos 認證協議來說,域內通用且準確的時間是必須的。
PDC emulator 是確保域內所有 Windows 系統使用相同時間的關鍵元件。
位於林根的 PDC emulator 對企業具有權威性,應配置為從外部源收集時間。
所有 PDC 在選擇其入站時間合作伙伴時都遵循域的層次結構。
同時,PDC emulator 保留以下功能:
4-1 域中其他 DC 所做的密碼更改將先複製到 PDC emulator,然後再複製到其他 DC。
-->也包括 AD 資料庫和基於檔案系統提供的 SYSVOL 共享資料夾。
4-2 使用者在某臺 DC 上發生身份驗證失敗時,錯誤會轉發到 PDC emulator,由其向使用者報告驗證失敗的訊息。
4-3 在 PDC emulator 上處理帳戶鎖定。
4-4 PDC emulator 執行基於 Windows NT 4.0 伺服器的 PDC 或更早版本的 PDC 為基於 Windows NT 4.0 或更早版本客戶端執行的所有功能。
啟用條件:
當 PDC emulator 發現 [域 NC] 頭的 [fSMORoleOwner] 屬性指向自身時,將始終處於活動狀態,沒有入站複製要求。
連線條件:
DC 會在有新密碼或本地密碼驗證失敗時會聯絡 PDC emulator。
當機影響:
儘管大多數認證和資源訪問操作繼續工作,
但依賴於 PDC Emulator 的特定功能(如密碼更改、時間同步、賬戶鎖定)將無法進行同步,很快將發生認證問題。 -
基礎結構主機 (Infrastructure master)
-->Domain-wide,每個域 1 臺。
綜述:
當一個域中的物件引用另一個域中的另一個物件時,通常使用 [GUID]、[SID(用於安全主體引用)] 和 [DN]。
Infrastructure master 負責 [跨域] 物件引用的更新和協調(更新跨域物件的 SID 和 DN)。
-->將這些引用與全域性編錄伺服器 (GC) 中的資料進行比較,並在發現不一致時修改非 GC 域控制器中的跨域引用。
-->然後透過 AD 複製機制將這些修改傳播到其他域控制器。
GC 儲存了整個林中每個物件的部分屬性 (全域性編錄屬性) 的副本,以允許 GC 快速響應跨域查詢。
如果 Infrastructure master 位於 GC ,則 Infrastructure master 會認為擁有了所有的物件進而停止工作。
-->GC 擁有林內所有物件的部分資訊,對 GC 來說,它不需要透過跨域引用來獲取林內其他域的物件資訊。
-->如果域內所有 DC 都是 GC,則所有 DC 都擁有最新資料,誰擔任 Infrastructure master 角色並不重要。
啟用條件:
目錄服務啟動,且入站方向的 [域 NC] 已被角色所有者成功複製時,此角色啟用。
連線條件:
沒有連線要求,它是一種林內部清理功能。
當機影響:
除非環境是多域結構且域控制器不是全域性編錄(GC)伺服器,否則大多數日常操作不依賴於跨域物件引用更新,也就無影響。
參考文獻
Active Directory FSMO roles in Windows