AD域控制器虚拟化完整篇



一、关于AD DC虚拟化的问题



1、时间同步问题


因为Kerberos身份验证依赖于可靠的时间,所以域中时间同步是非常重要的,如果进行DC虚拟化,时间会与hyper-v主机同步,这样就产生系列问题,所以建议禁用时间同步服务,确保有一个正确的时间同步配置。


2、虚拟机快照回滚


虚拟机快照回滚会产生两个问题:

1)USN(Update Sequence Number)

AD利用USN来提供对目录更改的精确复制,每个DC维护一个64位的数字,在DC上对AD对象作任何更改,USN都会增加。如当DC2从DC1上发起复制的时候,会比较USN的大小。如DC1上某个对象的USN比自己的大,说明有变化,将进行复制变化。如果DC虚拟机利用快照回滚到了之前一个状态上,USN值可能会变得比较小,其他DC会认为这个创建动作已经被复制过了而拒绝复制,导致DC之间的AD数据库不一致和复制失败。

2)RID池

DC为了给新用户或其他对象分配SID,且保证唯一。域中的DC会向RID主机申请一个池,即SID的范围,供新来的对象分配。比如池范围为101-600,使用了一段时间,意味着一部分用户已经从此池中得到了SID号,也同步到了其他的DC了。如果这时侯快照回滚,则可以引起对池中的ID重复分配。


二、Windows Server 2012中的改进


Windows Server 2012中引入了一个新的标志符VM-Generation ID,这样虚拟DC会得到一个VM-Generation ID的内置标识符,但是需要Hypervisor支持。VM-GenerationID的值作为计算机对象的一部分保存在AD中,同时也保存在虚拟机配置文件中。

  • 在AD中,VM-GenerationID的值保存在该Domain Controller计算机对象(computer object)的msDS-GenerationID属性(attribute)里面。

  • 在虚拟机配置文件中,VM-GenerationID的值保存在虚拟机配置文件(.vmx)中,由配置vm.genid来表示。所有Windows Server 2012服务器,无论是否DC,都会在起vmx中有这个配置值。

此情景下,如果虚拟DC使用快照回滚,如:回滚前ID为1000,回滚后ID为500了。此时,AD中的VM-Generation ID与虚拟机配置文件中VM-Generation ID便不相同,则另一个被称为InvocationID的唯一标识符会被重置,反过来会阻止USN被重用,清空RID Pool。在清空后发起一次AD数据库的同步,将一个AD数据库的权威版本从其他DC复制回来。


三、进行AD域控制器虚拟化



1、虚拟化DC的先决条件:


1)必须是Domain Admins组成员

2)至少有一台Hyper-v主机运行2012或更高版本

3)在Hyper-v主机上具有Local Administrators权限

4)一台托管了PDC模拟器FSMO角色的DC,且运行Windows Server 2012或更高版本(可以使用netdom query fsmo查看域中哪台DC托管此角色)此服务器能主要用于身份验证和安全审计,不是克隆的一部分噢。

5)与PDC模拟器在同一个域的虚拟DC,用于克隆,且运行Windows Server 2012或更高版本。

6)要克隆的DC上不能运行DHCP、AD CS、ADLDS角色(这三个角色不支持克隆)

7)要克隆的DC上弹出虚拟软盘驱动器,因为当试图导入新的VM时保持连接会出问题。


2、加入安全组


Step 1:在托管PDC模拟器DC上,打开"AD 用户和计算机",展开,找到Users文件夹下的Cloneable Domain Controllers安全组。

此组是用来控制哪些DC可以被克隆的。

Step 2:在"成员"选项卡中加入要克隆的DC计算机,本例中加入了Server02。


3、创建DcCloneConfig.xml文件


Step 1:检查应用程序是否支持克隆。在PowerShell中输入:

Get-ADDCCloningExcludedApplicationList GenerateXML

Step 2:为新克隆的DC配置所需参数:

此命令会创建和保存克隆所需的DcCloneConfig.xml文件。


4、导出克隆的DC



5、在hyper-v主机上导入


在Hyper-v管理器中右击,选择"导入虚拟机",然后根据向导很容易就导入啦。


如有疑问,需要交流请加刘老师微信号:

wKiom1c53GCSRCZWAAGePRoin8E535.jpg