■ 中國航天科技集團有限公司第一研究院 吳步祺 王林強
編者按:活動目錄(Active Directory,AD)是企業(yè)環(huán)境中較常采用的用于用戶和計算機管理的網絡基礎服務。由于域控制器(Domain Controller,DC)意外離線等多種原因活動目錄中可能存在延遲對象(Lingering Object)。本文研究了延遲對象產生的原因和相應的處理方法。
活動目錄是微軟開發(fā)的用于Windows域網絡的目錄服務。域服 務(Domain Service,DS)和其他相關服務一起組成了運行Windows企業(yè)網絡的基礎,可以用于為用戶或計算機提供身份驗證和為用戶或計算機提供資源的訪問機制。
在企業(yè)環(huán)境中一般部署有多臺域控制器。域控制器運行包括域命名(Domain Naming)、 架 構(Schema)、相 對 標 識 符(Relative Identifier,RID)、 結 構(Infrastructure) 和 PDC仿真器(PDC Emulator)等靈活單主機操作(Flexible Single Master Operation,F(xiàn)SMO)角色。
活動目錄的復制指當活動目錄中的對象變更時該變更的傳輸過程?;顒幽夸浀膹椭浦饕幸韵鹿δ埽?/p>
1.對數(shù)據存儲進行分割:域控制器只存儲其所在域的域命名上下文,應用程序目錄分區(qū)和全局目錄默認不會復制到林中的每臺域控制器;
2.自動生成高效強壯的復制拓撲:活動目錄自動配置雙向復制拓撲;
3.屬性級別的復制:變更對象屬性時,僅復制該屬性和描述該屬性的元數(shù)據;
4.內部復制和外部復制:可以分別控制站點內和站點間的復制;
5.沖突檢測和管理:具備解決復制窗口期發(fā)生的屬性變更沖突的算法。
當域控制器對活動目錄中的對象進行包括更新、刪除等變更操作時,該變更會通過復制傳輸?shù)狡渌蚩刂破魃?。對于刪除對象操作,活動目錄會以墓碑對象的形式將該刪除操作復制到其他域控制器上。
1.嚴格復制一致性參數(shù)的判定
嚴格復制一致性(Strict Replication Consistency)參數(shù)的默認選項為啟用。嚴格復制一致性參數(shù)負責對需要復制的源域控 制 器(Source Domain Controller)的內容進行判斷。如果該參數(shù)設置為啟用,當存在延遲對象時,目標域控制器(Destination Domain Controller) 的復制操作將失??;如果該參數(shù)設置為禁用,已刪除的對象將復制到目標域控制器上。該參數(shù)可以通過注冊表HLMSYSTEMCurrentControlSetServicesNTDSParameters進行設置。
2.延遲對象的產生
延遲對象產生的原因主要有如下幾點:
①域控制器長期離線
如果域控制器長期處于離線狀態(tài),當源域控制器將其作為目標域控制器進行復制將失敗。如果該域控制器離線時間超過墓碑時間(Tombstone Lifetime,TSL),將導致延遲對象的產生。,如圖1所示。
例如有2臺域控制器DC01和DC02。創(chuàng)建用戶Sam,隨后將DC02下線并刪除用戶Sam。在刪除用戶Sam后的超過墓碑時間的時間點將DC02上線。此時,由于墓碑對象相關內容已從活動目錄中徹底刪除,活動目錄中將產生延遲對象。
②時間跳躍
如果進行變更的域控制器的時間發(fā)生跳躍,當其刪除的對象完全刪除時,其他域控制器還未復制到該刪除狀態(tài),將將導致延遲對象的產生。
3.延遲對象的發(fā)現(xiàn)
圖1 域控制器離線
可以使用Windows操作系統(tǒng)的復制管理命令中的顯示復制狀態(tài)命令選項顯示當前的復制狀態(tài)(repadmin /showrepl), 如果該命令的輸出中含有嘗試失敗的信息,可繼續(xù)使用復制管理命令的發(fā)現(xiàn)延遲對象選項(repadmin /removelingeringobjects
4.延遲對象的刪除
當在目標域控制器中發(fā)現(xiàn)延遲對象時,需要對其及時進行處理。延遲對象的刪除可以使用復制管理命令的刪除延遲對象命令(repadmin /removelingeringobjects
完成延遲對象的刪除后,可以使用復制管理命令的復制選項將目錄分區(qū)直接從源域控制器復制到目標域控制器(repadmin /replicate
5.延遲對象的預防
應當及時監(jiān)控活動目錄復制的狀態(tài)。目錄復制失敗時應該在墓碑時間內對該故障及時處理。建議啟用嚴格復制一致性參數(shù)。對于可能發(fā)生的時間跳躍,應對域控制器配置外部時間源。
本文研究了延遲對象的相關內容。對于活動目錄中存在的延遲對象應使用復制管理命令及時進行處理。為防止延遲對象產生,需要對外部時間源等進行配置。