为了保持所有域控制器上的目录数据一致和最新,Active Directory 会定期复制目录更改。复制根据标准网络协议进行,并使用更改跟踪信息防止发生不必要的复制,以及使用链接值复制以提高效率。
本章中复制指的是活动目录数据库复制,同一个站点内和不同站点之间域控制器之间的数据库复制。同一个站点,域控制器处于一个告诉网络环境中,复制效率较高。当域控制器处于不同的站点之间,由于网络速度限制,复制效率、时间需要域管理员仔细规划才能达到最佳效果。
一、复制概述:
复制仅发生在多域控制器环境中,如果域中只有一台域控制器,将不会产生复制。复制分为站点内复制和站点间复制。站点内复制通过KCC(Knowledge Consistency Checker)自动创建最佳的复制拓扑,站点间通过ISTG(站点间拓扑发生器)创建站点间的复制链接。
1.1.复制方式:
a.单主复制:
Windows NT环境中域控制器被分为两类:PDC和BDC。PDC指的是主域控制器,BDC指的是备份域控制器。每个域中只能有一个PDC,BDC可以有多个,BDC中的活动目录数据库从PDC复制,只有PDC才可以创建、修改、删除域中的用户帐号、计算机帐号、打印机等对象数据,BDC活动目录数据库是只读数据库。这种复制模型称之为单主复制。
b.多主复制:
从Windows Server 2000开始,活动目录使用多主复制架构,即每个域控制器都可以自住地修改域对象,域中不再有主域控制器和备份域控制器的区别(实质上还是有区别),任何一个域控制器都可以修改Active Directory的内容。为了维护活动目录的权威性,所有域控制器上的活动目录数据库内容应该都相同。
AD DS域服务采用多主机复制方式,多主机复制在对等域控制器之间复制活动目录数据库,每个域控制对活动目录数据库具备完全控制的权限。采用多主复制的域控制器使用KCC自动创建域控制器之间的复制链接(最大约点数不超过3台域控制器),每个域控制器会根据站点的带宽,自动地计算出最佳复制拓扑。管理员也可以特定用户环境以手动方式配置复制拓扑。
多主复制架构模式下,林内任何域控制器都可处理和更新复制,所以只要一台或多台服务器仍维持运作,管理员和应用程序便可以更新数据并如往常一样持续工作,但是要注意FSMO角色的位置。
域控制器采用多主复制优点是高效,缺点是产生大量的网络流量。AD DS域服务自动创建复制拓扑,当任何域控制器信息变更时,会通过域控制器的复制伙伴,然后复制伙伴初始化。初始化成功后,数据库之间开始复制,知道所有的域控制器同步。
在Active Directory数据库中,少部分数据采用单主复制方式完成复制。当删除对象时,首先由一台域控制器(包含FSMO角色)负责接收和处理请求,处理完成后将数据同步到其他域控制器。
1.2.复制协议:
域控制器之间复制数据时,将采用以下协议。
-
IP协议——站点内或者站点间都可以使用该协议复制数据,数据复制时将使用加密和身份验证机制。
-
SMTP协议——该协议只能在站点间使用。
1.3.复制伙伴:
复制伙伴分为直接复制伙伴和间接复制伙伴。
a.直接复制伙伴
源域控制器(发生数据更新的域控制器)不会将更新数据复制给同一个站点内的所有域控制器,而是复制给该域控制器的直接复制伙伴。直接复制伙伴由KCC自动创建,源域控制器和直接复制伙伴之间的复制效率最高,同时决定哪一台域控制器是该域控制器的直接复制伙伴。复制时,首先复制给直接复制伙伴,再由直接复制伙伴把更新复制到其他域控制器。
b.间接复制伙伴
间接复制伙伴,通过域控制器转发而更新数据的域控制器,不是从源域控制器直接复制数据。
1.4.目录分区同步:
域控制器中划分为多个不同的分区,每个分区完成不同的功能。
-
架构目录分区:架构目录分区存储所有对象和属性的定义,以及建立和控制的规则。整个林内所有域共享一份相同的架构目录分区,该分区会被复制到林中所有域内的所有域控制器。
-
配置目录分区:配置目录分区存储整个活动目录结构的信息。包括域、站点、域控制器。整个林内所有域共享一份相同的配置分区,该分区会被复制到林中所有域内的所有域控制器。
-
域目录分区:每一个域各有一个域目录分区,存储在该域有关的对象,例如用户、组、计算机、组织单位等。每个域各自拥有一份域目录分区,值能被复制到该域内的所有域控制器,并不会被复制到其他域的域控制器。
-
应用程序目录分区:一般来说,应用程序目录分区由应用程序创建,其内存储着与该应用程序有关的数据。应用程序目录分区会被复制到林中的特定域控制器,而不是所有的域控制器。
1.5.复制机制:
站点复制采用如下机制完成复制的更新。
-
通知更新复制
-
紧急复制
-
定时检查复制
a.通知更新复制
域控制器A建立一个用户帐号,新建帐号属于初始更新。在更新完成以后,域控制器A服务器在15秒之后发出更新通知。此更新通知并非同时通知所有域内的域控制器,通过复制拓扑通知第一个域控制器B,域控制器B接受到复制信息后,将新的帐号复制到域控制器B数据库中,仅复制发生改变的数据,属于增量更新,此复制过程属于"拉"复制。3秒钟后,再通知域控制器C。以此类推,将更新的数据复制到其他域控制器。
b.紧急复制
紧急复制以一种"推"的机制强制立即更新域控制器上的Active Directory数据,紧急复制运作模式会立刻传递变更通知给所有的复制伙伴,而不会等到暂停时间结束。紧急复制应用于以下场合:停用账户、RID序列号变更、域控制器机器账户变更等。域策略支持紧急复制模式,例如在域级别指定了一个账户锁定策略,或者指定了一个密码策略,立即连接并发布复制到所有域控制器。此复制过程属于"推"复制,目标域控制器接受Active Directory数据变更和新的策略。
c.定时检查复制
定时检查复制,以计划方式在指定时间执行复制。默认(站点内每个小时、站点间每3个小时)每个小时检查1次复制状态,包括更新通知复制和紧急复制,检测通知更新和紧急复制后的数据是否同步、丢失数据或者复制没有完成等状态,如果出现上述状况,将通知初始域控制器,以"拉"方式复制没有更新的数据,复制将立即执行。。
1.6.复制拓扑:
活动目录复制拓扑为环形,通过KCC自动创建拓扑。KCC进程在每个域控制器上运行,帮助域控制器建立到其他域控制器的复制链接对象。如果域控制器和域控制器之间没有创建链接对象,域控制器之间将不能复制。链接对象创建成功后,在复制伙伴前面有一个标识为"<自动生成>"。
a.自动拓扑:
域控制器之间的拓扑结构建议有KCC自动完成。
b.父子域复制拓扑
如果是父子域的复制拓扑,复制可以正常运行,仅是复制的数据不同,从父域接受架构分区和配置分区的数据,子域内接受子域域分区的数据,父域内的域控制器接受父域内的域控制器的数据。
c.GC复制拓扑
1.7.站点内复制
同一个站点内的域控制器一般都是通过高速网络连接在一起,复制时不以压缩方式传输数据。
a.复制链接
站点内复制指的是同一个站点中的域控制器。当域中的域控制器数量发生变化,例如增加或减少域控制器,每台域控制器上的KCC进程就会重新计算复制拓扑。KCC能够自动计算出域控制器进行复制时所使用的复制链接,当域控制器数量较少时,KCC倾向于在域中使用环形拓扑进行数据库复制。当域控制器的活动目录数据库内容发生变化时,这个更改不会自动生成的拓扑是双环拓扑,每个域控制器都有两个复制伙伴,Active Directory的复制沿着顺时针和逆时针两个方向同时进行。
b.复制方式
域控制器复制数据库时,一般会使用"带通知的拉复制"实现复制。
当在某个域控制器上执行数据更新后,站内复制在15秒后自动开始,然后将更新通知发送给最近的复制伙伴。如果源域控制器有多个复制伙伴,在默认情况下将以3秒为间隔向每个伙伴相继发出通知。当接收到更新通知后,伙伴域控制器将向源域控制器发送目录更新情况。源域控制器以复制操作响应该请求。3秒钟的通知间隔可避免来自复制伙伴的更新请求同时达到而使源域控制器应接不暇。
对于站点内的某些目录更新,并不使用15秒钟的等待时间,复制会立即产生。这种立即复制称为紧急复制,应用于重要的目录更新,包括账户锁定的指派以及账户锁定策略、域密码策略或域控制账户上密码的更改。
c.复制限制
在域控制器较多的环境下,标准的环形拓扑不太适合。域控制器有个严格的限制,从源域控制器到目标域控制器之间的间隔不能超过三个域控制器。例如,如果DC1活动目录数据库发生了变化,那么DC1可以复制给DC2,DC2可以接着复制给DC3,但DC3就不能再复制给DC4!因为从DC1可以复制给DC2,DC2可以接着复制给DC3,但是DC3就不能再复制给DC4!因为从DC1到DC4中间间隔的域控制器已经超过了2个。这种限制,是为了避免在大型网络中进行复制时环形拓扑导致的延迟问题。例如,如果大型网络中有100台域控制器,域控制器复制的平均间隔为5分钟,那么从第一个域控制器复制到最后一个域控制器可能需要大约500分钟!这种延迟不能被接受。因此在大型网络中KCC会使用网状拓扑,网状拓扑不像环形拓扑那样有规律,每个域控制器可能会有多个复制伙伴。因此,域控制器的复制拓扑最后由KCC来规划,当然也可以自己指定域控制器的复制伙伴。
1.8.不同站点间复制
不同站点之间的复制链接,和站点内的复制链接不同。每个站点内有一台被称之为"站点间拓扑生成器"的域控制器,负责创建站点之间的复制拓扑,并从站点内的域控制器选择一台域控制器作为复制(源/目标)域控制器,也称为桥头堡服务器.站点数据复制时,由站点内的桥头堡服务器负责将更新数据复制到目标站点内的桥头堡服务器,站点内的桥头堡服务器接受到更新数据后,再使用站点内数据复制方式将数据复制到站点内的域控制器。
欢迎关注微信公众号:小温研习社