深入理解全局编录服务器GC
概述:
在Win2003AD域环境中,除了FSMO操作主机角色外,全局编录服务器(GC)也是有着特殊含义的域控制器。通过GC,可以提高在活动目录中搜索对象的速度,可以加快用户登录验证等。
简单的说,GC是森林中所有对象的只读调整缓冲存储器( Read Only Cache),目录只用于搜索。GC服务器存储本域中所有对象的所有属性,同时会存储林中其它域中所有对象的部分属性。一般来说,属性是否存储在GC中, 取决于该属性在搜索中使用的频率,由系统自动进行决定。但AD架构管理员也可以定义对象的哪些属性保存的GC中,同时决定该属性是否可以进行索引。
本文拟就与GC相关的内容一一阐述,希望能起抛砖引玉作用,与有兴趣的朋友一起更好的了解和熟悉全局编录服务器。
GC出现的原因
GC的作用
查看当前环境中GC服务器
提升DC为全局编录服务器
验证全局编录服务器的提升
验证全局编录服务器是否工作正常
删除全局编录服务器
使用AdsiEdit工具查看全局编录服务器中的数据
在Win2003AD域环境中,除了FSMO操作主机角色外,全局编录服务器(GC)也是有着特殊含义的域控制器。通过GC,可以提高在活动目录中搜索对象的速度,可以加快用户登录验证等。
简单的说,GC是森林中所有对象的只读调整缓冲存储器( Read Only Cache),目录只用于搜索。GC服务器存储本域中所有对象的所有属性,同时会存储林中其它域中所有对象的部分属性。一般来说,属性是否存储在GC中, 取决于该属性在搜索中使用的频率,由系统自动进行决定。但AD架构管理员也可以定义对象的哪些属性保存的GC中,同时决定该属性是否可以进行索引。
本文拟就与GC相关的内容一一阐述,希望能起抛砖引玉作用,与有兴趣的朋友一起更好的了解和熟悉全局编录服务器。
GC出现的原因
GC的作用
查看当前环境中GC服务器
提升DC为全局编录服务器
验证全局编录服务器的提升
验证全局编录服务器是否工作正常
删除全局编录服务器
使用AdsiEdit工具查看全局编录服务器中的数据
一:GC出现的原因
在Win2003活动目录中有两种目录服务,分别是DNS以及LDAP,两个目录服务互为补充。DNS的目的比较简单,用于简单快速的定位域控制器,但定 位到具体的域控制器后,对活动目录信息的更细致访问,如活动目录中关于用户,计算机,打印机等对象信息搜索,DNS就无能为力。此时就需要通过LDAP服 务来访问。
如果用户知道某个对象处于哪个域,也知道对象的标识名,那么用LDAP搜索对象就非常容易。但如果用户只知道某个对象的某个属性,根本不知道对象所处的 域,也不知道该对象的标识名,那么使用LDAP来搜索对象是一件非常困难的事,AD不得不对当前环境中每一个域的每个对象都搜索一遍。为了解决这个问题, 活动目录提供了全局编录服务器(GC,到Global Catalog)。GC中包含了当前林中每个域中所有对象的副本,如果在一次LDAP搜索中,涉及到搜索中多个域的名称上下文时,AD会选择搜索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:验证林中其他域对象的参考
当域控制器的某个对象的属性包含有另一个域某个对象的参考时,将由全局编录服务器来完成验证。
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"。
1:通过“Active Directory 站点和服务”查看
步骤:
点击“开始-设置-控制面板-管理工具-Active Directory站点和服务”:
选中具体的“NTDS Setting"。
选中"NTDS Setting",右键选择“属性”
在弹出的“NTDS Setting 属性”对话框中,有“全局编录”复选框,如果选中,表示是一台全局编录服务器, 如果没有选中,则表示当前的服务器不是全局编录服务器。
2:利用复制监视器Replmon查看
复制监视器Replication Monitor(ReplMon)是针对Windows Server的故障查找工具,不但是定位活动目录
复制故障强有利的工具,同时也可以使用该工具查看和检查操作主机角色状态。
详细Replmon工具使用方法本文不做过多说明,这里只列出如何使用Replmon工具GC角色。
步骤:选中当前DC,右键单击,选择“Show Global Catalog Servers in Enterprise”
复制监视器Replication Monitor(ReplMon)是针对Windows Server的故障查找工具,不但是定位活动目录
复制故障强有利的工具,同时也可以使用该工具查看和检查操作主机角色状态。
详细Replmon工具使用方法本文不做过多说明,这里只列出如何使用Replmon工具GC角色。
步骤:选中当前DC,右键单击,选择“Show Global Catalog Servers in Enterprise”
在弹出窗口中,清楚列出当前林中所有的全局编录服务器
3:通过命令行方式查看全局编录服务器
在Supprot Tools和Resource Tools工具中,有多个命令行工具可以查看全局编录服务器,这里只列出两个最常见的命令行工具
使用dsquery命令查看当前域中的GC
dsquery server -domain superlan.com -isgc
在Supprot Tools和Resource Tools工具中,有多个命令行工具可以查看全局编录服务器,这里只列出两个最常见的命令行工具
使用dsquery命令查看当前域中的GC
dsquery server -domain superlan.com -isgc
使用nltest命令查看当前域中的GC
nltest /dsgetdc:superlan.com
四:提升DC为全局编录服务器
将一台域控制器提升为全局编录服务器操作很简单,方法见通过“Active Directory 站点和服务”管理单元查看全局编录服务器,
将“全局编录”复选框选中即可。
注意:设置完成后,并不代表当前的全局编录服务器已经提升完成,因为全局编录服务器中包含有多个域的所有对象,需要时间来进行全局编录数据库同步。
将一台域控制器提升为全局编录服务器操作很简单,方法见通过“Active Directory 站点和服务”管理单元查看全局编录服务器,
将“全局编录”复选框选中即可。
注意:设置完成后,并不代表当前的全局编录服务器已经提升完成,因为全局编录服务器中包含有多个域的所有对象,需要时间来进行全局编录数据库同步。
五:验证全局编录服务器的提升
通过提升DC为全局编录服务器操作,需要时间同步全局编录服务器,同步完成后,全局编录服务器才开始真正运行。
下面介绍如何查看全局编录服务器是否已经开始工作。
1:使用LDP工具查看当前DC的IsGlobalCatalogReady属性
LDP(LDAP浏览器工具)是一个轻量目录访问协议 (LDAP) 客户端实用工具,可以用来查询和浏览 LDAP目录服务,详细用法本文不做具体介绍,
可以搜索相关的说明文档或后期的Blog文章介绍。这里只给出简单的使用说明
步骤:
与LDAP目录绑定
“运行”,输入“LDP”,打开LDP窗口后,选择“Connection|Bind",打开Bind对话框,输入身份凭证。
单击”OK“按钮,LDP连接到”Superlan.Com"域控制器,显示检测结果,从下图可以看出“IsGlobalCatalogReady"属性为True
2:查看DNS管理工具查看GC记录是否已更新到DNS中。
从下图可以看出当前哪个域控制器是GC,且使用的端口是多少,默认的GC使用端口是3268。
六:验证全局编录服务器是否工作正常
全局编录服务器正确提升后,可以通过查看注册表信息和端口状态来查看
全局编录服务器是否工作正常。
1:查看注册表信息(HKLM\System\CurrentControlSet\Services\NTDS\Parameters)
健值:Global Catalog Promotion Complete,值为1,表示GC工作正常
2:全局服务编录器默认使用3268/3269端口,通过查看端口是否处于监听状态可以判断GC是否工作正常
使用netstat -an命令查看当前正在运行的端口,可以看到3268/3269端口已经处于正常监听状态
使用netstat -an命令查看当前正在运行的端口,可以看到3268/3269端口已经处于正常监听状态
七:删除全局编录服务器
删除全局编录服务器方法请参见”四:提升全局编录服务器“,将”全局编录“复选框取消即可,此处略过。
删除全局编录服务器方法请参见”四:提升全局编录服务器“,将”全局编录“复选框取消即可,此处略过。
八:使用AdsiEdit工具查看全局编录服务器中的数据
因篇辐较长,拟定以独立的文章介绍,见后续文章!
因篇辐较长,拟定以独立的文章介绍,见后续文章!