Active Directory灾难恢复之
                                         网络拓扑重建
2008512 中午1428分,中国四川省汶川县发生了比<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1976728当时河北省唐山市地震还要强烈的里氏8.0级地震!随后的几分钟,中国境内北京、甘肃、青海、宁夏、山西、陕西、河南、湖北、上海、广州、重庆、云南、山东、湖南、等超过20个省市以及中国比邻的越南等邻国均发生里氏4级以上余震,局部地区震级处5级以上,由于地震影响,通信一度中断,中央地震局在测知震情后,迅速通报中央,国家主席×××、×××总理×××等领导人得知灾情后,立即成立5.12震灾应急指挥部,×××总理亲自担任总指挥,中共中央副主席×××、中央×××副总理×××担任副指挥,并在第一时间做出重要批示!“不惜一切代价,要在第一时间内抢救灾民,早到一分钟,就多救出一条人命!”随即各省市自治区、直辖市立即开展震灾抢险工作,各企事业单位、中国红十字基金会、演艺界等立即号召捐款救灾,在灾情发生一周内,负责收纳震灾捐款的各级银行及红十字基金会收到了仅中国境内的慈善捐款达160多亿元人民币,其中不乏个别人士的慷慨捐赠,被誉为慈善之父的国际巨星成龙大哥,更是以个人名义捐赠了1000万元人民币!中国移动、联通、小灵通随即开通了手机捐赠平台,全国人民拿起手机就能进行慈善救助,据抗震救灾指挥部统计,各项捐款大多均已到位,这将对抗灾救险提供有力保证!
截止2008522 日19点,也就是震情发生后的第10天,疑难者已达51151人,四川地区余震仍旧不断,救灾人员冒着生命危险毅然奔赴与抗震救灾一线!至此,我们向我们的一线救灾英雄,致以最崇高的敬意!你们是祖国人民的骄傲!
为尽快展开灾后重建工作,各部门加大了力度,邻近四川的各省市救灾与灾后重建同时展开,各企事业单位也随即进入灾后重建的队列中,然而,各企业及部门在重建通讯网路的过程中,问题也随即而来。
案例一:
某公司基本网络拓扑如下,内网有三台域控制器,一台为主域控制器,其余两台为子域控制器,由于公司规模较小,DNS服务器与主域控制器安装在同一台PC上,受震灾影响,担任主域控制器的PC被完全物理损毁,内网负责管理的服务器就剩两台子域控制器,现在公司要求最快速度还原出网络拓扑,从而进一步重建其它服务,接到求助后,第一时间规划出还原方案。
根据之前受伤的该公司管理员描述后,我们用Microsoft ISA2004实验室的Microsoft Virtual PC 2007虚拟机,以及其中的3套Virtual PC:Florence、Firenze和Berlin来模拟出此次灾难恢复的实验环境,Florence担任物理损毁的主域控制器,它的角色曾是操作主机、DNS服务器以及全局编录服务器,其次用Firenze和Berlin来承担域中两台幸免于难的子域控制器。
首先架构公司震前的网络环境,新建itet.com域,域中部署主域控制器Florence和两台子域控制器Firenze和Berlin,(具体部署办法这里不在陈述,我的博客中有博文介绍,欢迎阅读),环境构建好后,我们关闭Florence,并让其不在出场,下面开始我们AD灾难恢复之旅。
开始实验前我们先勾画出实验完成后所要求的目的
                1  重建好DNS服务器
                2  转移操作主机角色
                3  重建全局编录服务器
                4  AD中清除报废的主域控制器对象
                5  最后,重建的主域控制器于子域控制器间拥有正确的复制拓扑而且能正常复制链接
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

·实施计划:
     (一)角色规划
 .由于公司以给出明确要求:“恢复好的网络拓扑将直接并永久用于公司内网”。所以我们必须要将主域控制器角色以及操作主机角色、全局编录服务器角色交予子域控制器中的其中一台来承担,它将替代Florence的所有角色,之前小张描述过,Firenze的硬件性能略好于Berlin,并且我们用于替代Florence角色的PCServer将永久担当这一角色,所以我们决定用Firenze这台子域控制器来替代Florence,另外由于PC资源紧张并且公司规模较小,负载较轻,DNS服务器就将架设于Firenze中,Firenze最终将担任Florence的所有角色。
 
(二)环境模拟
   我们在VPC中搭建好原来的网络架构
          1.DNS服务器Florence中建立好名为ITET.com的域
      2.IP及DNS地址配置
            Florence192.168.11.101
       Firenze192.168.11.102
       Berlin192.168.11.108
    DNS:均指向DNS服务器Florence: 192.168.11.101.
     3.Florence作为主域控制器、DNS服务器、全局编录服务器、操作主机。
   4.FirenzeBerlin作为该域的两台子域控制器。
5.搭建好灾前的网络环境后,我们将Florence关机,并让其不在出场。
  6.这时我们在重新启动Firence和Berlin,重启进入系统后展开各自AD中的站点和服务项,尝试能否复制拓扑,如图,出现如下提示
 
如上图:域控制器间互相复制拓扑时,出现RPC服务器不可用的错误,至此,灾难状态模拟成功!接下来我们开始实施重建。
(三)灾难重建
1. DNS服务器重建
      1.FirenzeBerlinDNS服务器地址指向将要担任DNS服务器的Firenze192.168.11.102如图:
Firenze: DNS服务器地址指向自己:192.168.11.102
将Berlin: DNS服务器地址指向Firenze192.168.11.102,下图
2. Firenze上开始安装DNS服务,下图
挂入适合当前操作系统的OS镜像,Firenze为原版2003,因此挂入原版2003Iso,然后Win+R运行sysocmgr /i:sysoc.inf打开Windows组建安装向导,安装DNS服务。
点击确定开始安装
   提示安装完成,点击完成退出
   DNS安装完毕,接下来我们新建一个正向主要查找区域ITET.com 
3.新建正向主要查找区域
   我们Win+R运行dnsmgmt.msc打开DNS管理界面,在正向查找区域上点击右键,然后选择新建区域,进入新建区域向导
选择新建主要区域,在这里我们要注意下,如上图,在最末行我们看见了一项默认打钩的“在AD中存储区域”的选项,我们需要去掉这个钩后在点击下一步,因为待会儿重建DNS需要区域文件,我们去掉这个钩,区域文件将存贮在本地计算机,方便随后的重建操作。
我们去掉这个钩,然后继续下一步进行配置,上图
出现定义区域名称向导界面,我们输入模拟原公司域名的实验域名 ITET.com ,然后点击下一步,出现下图提示
  问打算将itet.com的区域文件怎样命名并存贮与哪里,(如果之前DNS服务器完好,我们可以选择使用此现存文件,然后挂入之前的区域文件即可),这里由于DNS和AD安装在一台PC上,而这台PC以被完全物理损毁,故选择新建区域文件,同时为方便记忆,我们选择默认的区域文件名称,确认无误后点击下一步
 
这时,向导出现了提示是否允许动态更新的界面,这是关键的一步,我们要想让AD复制拓扑正常,一定要选用允许动态更新,因为只有允许了动态更新,AD之间数据的变化才能及时传递给对方,所以我们在此项一定要选用:允许安全和非安全动态更新,然后我们点击下一步,确认无误后,完成安装。
           
                 4. DNS 区域文件中导入各域控制器的 Netlogon.dns 记录
   由于之前 DNS  文件的丢失,要重建 DNS服务器 ,必须要向 DNS 区域文件中导入各域控制器中 Netlogon.dns 中的 SRV 记录、 Cname 记录、 A 记录和NS记录,下面看怎样进行导入。
一. 首先在 DNS 服务器 Firenze 中添加一条 Berlin A 记录,并指明 Berlin IP 地址: 192.168.11.108. 如图
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
右击itet.com,选择新建主机
另一台子与控制Berlin,并指明Berlin的IP地址:192.168.11.101
输入确认无误后,点击添加主机
完成后如上图,DNSFirenze中多了一条Berlin的A记录。
二.添加各子域Netlogon中的各项记录
 在FirenzeWin+R运行cmd进入命令提示符
 然后输入:cd %windir%\system32\config 进入系统配置目录,
 然后输入:notepad netlogon.dns打开netlogon文件
 这时我们看到了这其中记载的各SRV记录、Cname记录、A记录和NS记录,如下图:
3. 然后我们Ctrl+A全选这里的记录然后Ctrl+C复制,然后关闭这个文件
4. 切换到命令提示符下,输入:net stop dns 先停止DNS服务,来方便我们更改DNS区域文件,接着输入:cd %windir%\system32\dns 进入DNS目录,然后我们输入:notepad itet.com.dns 来打开ITET域的区域文件,这时我们看到了ITET.com区域文件中的内容,如下图:
5.这时我们在最后一行Ctrl+V粘贴我们刚才复制Firenze自己的netlogon.dns文件中的所有记录
紧接着我们去Berlin,用同样的方法
命令提示符下输入:cd %windir%\system32\config
然后输入:notepad netlogon.dns打开netlogon文件
同样复制其中的所有内容,然后回到Firenzeitet.com.dns文件中
在最后一行粘贴进去我们刚才复制Berlinnetlogon.dns文件中的记录,
然后Ctrl+S保存并Alt+F4关闭。如下图:
复制Firenze自己的netlogon.dns中的记录到itet. com的区域文件中
Berlin中复制netlohon.dns中的记录到itet.com区域文件中,然后保存并关闭此文件
接着,我们在命令提示符下输入net start dns开启DNS服务。如图:
6.接下来,我们需要重启各域控制器的netlogon服务,命令提示符下输入:net stop netlogon ,服务停止后在输入:net start netlogon开启netlogon服务,依次在FirenzeBerlin中操作,如图:
Firenze中重启Netlogon服务。
   Berlin 中重启 Netlogon 服务。
接下来我们复制拓扑来进行测试 DNS 重建是否成功。如图:
展开子域控制器Firenze的站点与服务,展开Services项,选择Berlin与Firenze的复制链接,右击选择立即复制副本,如上图提示,AD以复制了链接,在来选择Firenze与Berlin的复制链接,右击选择立即复制副本,下图
提示AD已复制了链接,在去另一个子域Berlin中
展开Berlin的站点和服务,展开Services项,选择Firenze与Berlin的复制链接,右击选择立即复制副本,如上图提示,AD以复制了链接
在来选择Firenze与Berlin的复制链接,右击选择立即复制副本,下图
提示 AD 已复制了连接。
综上,检测均成功, DNS 重建工作到此完成。下面开始第二项,操作主机角色转移
二.操作主机角色转移
切换到Firenze中,打开命令提示符
要转移操作主机角色,需要用到Ntdsutil命令,我们在Firenze的命令提示符中键入ntdsutil,下图
在ntdsutil下键入roles
在roles下键入conn(//connections链接到一个特定DC
connections下键入connect to server Firenze.itet.com(//用本登录的用户的凭证连接到Firenze.itet.com),下图
如图,提示绑定到Firenze.itet.com
键入quit,返回上级菜单
在接下来的目录中我们输入命令来传送 5 个操作主机的角色,
5 个命令为:

Seize domain naminf master

Seize infrastructure master

Seize PDC

Seize RID master

Seize schema master
可以输入问号,查看5条命令
输入Seize domain naminf master,转移域角色

 
这时当我们点击确认是后,后出现一个错误报告,如下图
如图,提示说域角色传送错误,用索取继续,我们不必多虑,这属于恢复操作的正常现象。解决办法
在次输入Seize domain naminf master进行域角色转移,(命令提示符中敲上箭头即可出现之前的输入记录,选择要操作的命令,按回车即可)
 
问你确实想占用域角色吗?点击是,提示如下图
如上图,提示域角色转移成功,继续进行角色转移
输入:
Seize infrastructure master进行结构角色转移,下图
 
点击是确认操作
同样,也出现了传送失败的提示,不必多虑,在输入一次,下图
 
点击是,确认操作
提示传送成功,继续进行其他角色转移

输入:Seize PDC进行PDC角色转移,下图
 
点击是,确认操作
同样,在输入一次,下图
 
 
提示传送成功,继续其他角色转移

输入:Seize RID master进行RID角色转移,下图
 
 
 
 
成功,下面进行最后一个角色转移,架构角色转移
输入:
Seize schema master进行架构角色转移,下图
 
 
 
 
 
提示传送成功。
至此,操作主机各角色转移完成,输入quit退出ntdsutil操作
 
 
接着去Firenze中查看操作主机是否如我们所愿,成为了Firenze。
 

 
 
 
没问题,Firenze成为了操作主机,至此操作主机角色转移工作至此完成,接下来进行全局编录服务器重建。
(3).重建全局编录服务器
   这步就很简单了,我们在两台域控制器中任意一台都可完成,打开两台域控制器中任意一台中的站点和服务.
   在Berlin中操作,下图
 
 
 
 
 
 
如上图:在Berlin中的Firenze中右键选择属性,勾选全局编录选项,点击应用即可完成对想象为全局编录服务器的Firenze完成全局编录服务器任命。
 
勾选全局编录选项,点击确定
然后去Firenze中查看Firenze是否成为全局编录服务器
如下图,选择Firenze的属性
如上图所示,Firenze成为了全局编录服务器
至此,全局编录服务器的重建任务完成!接下来进行Florence对象的清除。
(4).AD中清除报废的主域控制器对象
    这步也很简单,我们只要在FirenzeBerlinAD中找到有关Florence的记录,逐一手工删除即可。
如图,Firenze中进行清除操作
 
 
 
这时,问你要选择怎样的删除操作,我们选择最后一项,将Florence降级并永久脱离使用,确认后点击删除。下图
 
 
逐一删除
 
 
 
 
 
如上图,Firenze中的Florence对象清除完毕,接来下去Berlin进行清除操作。
 
 
 
 
 
 
同样的也出现了问你要怎样删除Florence对象的向导,选择第三项,降级并永久脱离。确认后点击删除。
 
 
逐一删除
 
至此,Florence对象清除工作完成,最后,也是检查恢复情况的操作,检查重建的主域控制器于子域控制器间是否拥有正确的复制拓扑并且能正常复制链接
(5).检查复制拓扑
 
如上图,提示复制成功。
 
如上图,提示复制成功。
 
然后去Berlin中检查
 
如上图,提示复制成功。
 
提示复制成功。
至此,Active Directory灾难恢复的网络拓扑重建到此重建完成!
其他服务器的灾难恢复将陆续上传,敬请期待!
 
写在最后:
    转眼已是地震发生后的第40天了,截止2008年6月21日14点,在这次史无前例的大地震中,疑难人数已升至69180人!
    此时此刻我相信得知这一最新伤亡数字的中华儿女和海内外同胞们的心情和我一样都是无比的沉重!没有太多的语言要表达什么,因为心早已麻木,只想对着世界大声呐喊!四川要在雄起!汶川你要挺住!