深入理解全局編錄伺服器GC

来源:互联网 发布:指尖网络 编辑:程序博客网 时间:2024/04/29 19:08

在Win2003AD域環境中,除了FSMO操作主機角色外,全局編錄伺服器(GC)也是有著特殊含義的網域控制器。通過GC,可以提高在活動目錄中搜索物件的速度,可以加快用戶登錄驗證等。
   簡單的說,GC是森林中所有物件的唯讀調整緩衝記憶體( Read Only Cache),目錄只用於搜索。GC伺服器存儲本域中所有物件的所有屬性,同時會存儲林中其他域中所有物件的部分屬性。一般來說,屬性是否存儲在GC中,取決於該屬性在搜索中使用的頻率,由系統自動進行決定。但AD架構管理員也可以定義物件的哪些屬性保存的GC中,同時決定該屬性是否可以進行索引。

一:GC出現的原因   

在Win2003活動目錄中有兩種目錄服務,分別是DNS以及LDAP,兩個目錄服務互為補充。DNS的目的比較簡單,用於簡單快速的定位網域控制器,但定位到具體的網域控制器後,對活動目錄資訊的更細緻訪問,如活動目錄中關於用戶,電腦,印表機等物件資訊搜索,DNS就無能為力。此時就需要通過LDAP服務來訪問。   如果用戶知道某個物件處於哪個域,也知道物件的標識名,那麼用LDAP搜索物件就非常容易。但如果用戶只知道某個物件的某個屬性,根本不知道物件所處的域,也不知道該物件的標識名,那麼使用LDAP來搜索物件是一件非常困難的事,AD不得不對當前環境中每一個域的每個物件都搜索一遍。為了解決這個問題,活動目錄提供了全局編錄伺服器(GC,到Global Catalog)。GC中包含了當前林中每個域中所有物件的副本,如果在一次LDAP搜索中,涉及到搜索中多個域的名稱上下文時,AD會選擇搜索GC伺服器,從而實現加快搜索速度,減少網路通信量的目的。

二:GC的作用

    1. 存儲物件資訊副本,提高搜索性能
      全局編錄伺服器中除了保存本域中所有物件的所有屬性外,還保存林中其他域所有物件的部分屬性,這樣就允許用戶通過全局編錄資訊搜索林中所有域中物件的資訊,而不用考慮資料存儲的位置。通過GC執行林中搜索時可獲得最大的速度並產生最小的網路通信量。
    2. 存儲通用組成員身份資訊,幫助用戶構建訪問權杖
      全局組成員身份存儲在每個域中,但通用組成員身份只存儲在全局編錄伺服器中。
      我們知道,用戶在登陸過程中需要由登錄的DC構建一個安全的訪問權杖,而要構建成功一個安全的訪問權杖由三方面資訊組成:用戶SID,組SID,權力。其中用戶SID和用戶權力可以由登錄DC獲得,但對於獲取組SID資訊時,需要確定該用戶屬不屬於通用組,而通用組資訊只保存在GC中。所以當GC故障,負責構建安全訪問權杖的DC就無法聯繫GC來確認該用戶組的SID,也就無法構建一個安全的訪問權杖。
      注:在Win2003中,可以通過通用組緩存功能解決GC不線上無法登錄情況,具體操作本文略過。
   3. 提供用戶UPN名稱登錄身份驗證。
      當執行身份驗證的網域控制器沒有用戶UPN帳號資訊時,將由GC解析用戶主機名稱(UPN)進行身份驗證,以完成登錄過程
   4.  驗證林中其他域物件的參考
      當網域控制器的某個物件的屬性包含有另一個域某個物件的參考時,將由全局編錄伺服器來完成驗證。

三:查看當前環境中GC伺服器

    1.  通過“Active Directory 站點和服務”查看       
     點擊“開始-設置-控制面板-管理工具-Active Directory站點和服務”: 選中"NTDS Setting",右鍵選擇“屬性”, 在彈出的“NTDS Setting 屬性”對話方塊中,有“全局編錄”核取方塊,如果選中,表示是一台全局編錄伺服器, 如果沒有選中,則表示當前的伺服器不是全局編錄伺服器。

   2.  利用複製監視器Replmon查看
          複製監視器Replication Monitor(ReplMon)是針對Windows Server的故障查找工具,不但是定位活動目錄複製故障強有利的工具,同時也可以使用該工具查看和檢查操作主機角色狀態。 步驟:選中當前DC,右鍵單擊,選擇“Show Global Catalog Servers in Enterprise”

 

  3.  通過命令行方式查看全局編錄伺服器
           在Supprot Tools和Resource Tools工具中,有多個命令行工具可以查看全局編錄伺服器,這裏只列出兩個最常見的命令行工具  
          使用dsquery命令查看當前域中的GC: dsquery server -domain dgstella.com -isgc   
          使用nltest命令查看當前域中的GC: nltest /dsgetdc:dgstella.com

 


四:提升DC為全局編錄伺服器

        將一台網域控制器提升為全局編錄伺服器操作很簡單,方法見通過“Active Directory 站點和服務”管理單元查看全局編錄伺服器,將“全局編錄”核取方塊選中即可。
        注意:設置完成後,並不代表當前的全局編錄伺服器已經提升完成,因為全局編錄伺服器中包含有多個域的所有物件,需要時間來進行全局編錄資料庫同步。

五:驗證全局編錄伺服器的提升

        通過提升DC為全局編錄伺服器操作,需要時間同步全局編錄伺服器,同步完成後,全局編錄伺服器才開始真正運行。
        下面介紹如何查看全局編錄伺服器是否已經開始工作
  1:使用LDP工具查看當前DC的IsGlobalCatalogReady屬性
          LDP(LDAP流覽器工具)是一個輕量目錄訪問協定 (LDAP) 用戶端實用工具,可以用來查詢和流覽 LDAP目錄服務,詳細用法本文不做具體介紹,可以搜索相關的說明文檔或後期的Blog文章介紹。這裏只給出簡單的使用說明步驟:與LDAP目錄綁定“運行”,輸入“LDP”,打開LDP視窗後,選擇“Connection ", LDP連接到“dgstella.com”網網域控制器,顯示檢測結果,從下圖可以看出“IsGlobalCatalogReady”屬性為True;

2:查看DNS管理工具查看GC記錄是否已更新到DNS中。
        從下圖可以看出當前哪個網域控制器是GC,且使用的埠是多少,默認的GC使用埠是3268
         如果DNS記錄缺失,可以通過一下方法來進行修復: net stop netlogon&net start netlogon&nltest /dsregdns

 

六:驗證全局編錄伺服器是否工作正常

         全局編錄伺服器正確提升後,可以通過查看註冊表資訊和埠狀態來查看全局編錄伺服器是否工作正常。
         1:查看註冊表資訊(HKLM/System/CurrentControlSet/Services/NTDS/Parameters)健值:Global Catalog Promotion Complete,值為1,表示GC工作正常;

         2:全局服務編錄器默認使用3268/3269埠,通過查看埠是否處於監聽狀態可以判斷GC是否工作正常,使用netstat -an命令查看當前正在運行的埠,可以看到3268/3269埠已經處於正常監聽狀態;


七:使用AdsiEdit工具查看全局編錄伺服器中的資料

包中包括adsiedit.dll和adsiedit.msc兩個檔,需要手動把他們拷到指定路徑下,比如:C: /windows/adsiedit.dll 然後還需要進行註冊,如運行中執行:regsvr32 C: /windows/adsiedit.dll

原创粉丝点击