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