子域部署Exchange服务器完全攻略及故障剖析
最近在论坛发现有些朋友在子域部署Exchange服务器时遇到了一些问题,看了一下发现导致问题的原因很多。索性趁着今天有时间,用一个实验演示一下在子域部署Exchange服务器的全过程,希望能给这些朋友一些参考。实验拓扑如下图所示,test.com是父域,Florence是父域的域控制器。Shanghai.test.com是子域,Firenze是子域的域控制器,Berlin是子域的成员服务器,我们准备把Exchange2003部署在Berlin上。域树中的三台计算机都使用192.168.11.1作为DNS服务器。为了演示得更彻底,我们搭建这个实验环境从部署AD开始,因为我发现有不少朋友部署Exchange时出现的错误其实源于AD
 
创建DNS区域
我部署AD的习惯是用单独的DNS服务器为AD提供解析服务,而不是将DNS安装在域控制器上。这些做的好处是DNS非常容易维护,只要把引导文件,区域数据文件复制出来就完成了备份,重建DNS服务器只需要几分钟时间。而且这种拓扑对初学者来说很容易把握,只要把所有的计算机都指向同一个DNS就可以了。免得很多管理员在域树环境下很是困惑父域的计算机应该使用哪个DNS服务器,子域的计算机又该使用哪个DNS服务器。如果你使用虚拟机搭建实验环境,可以考虑象我这样把DNS搭建在物理计算机上。好了,我们不过多讨论DNSAD的关系,现在开始具体的部署工作。我们需要在创建AD之前先在DNS服务器中创建出相关区域,然后允许区域进行动态更新。
DNS服务器上打开DNS管理器,如下图所示,右键点击正向查找区域,选择“新建区域”。
 
出现新建区域向导,点击下一步继续。
 
区域类型应该选择“主要区域”。
 
区域名称为Test.com,和AD使用的域名完全相同
 
Test.com区域的数据存储在Windows\System32\DNS\Test.com.dns文件中,我们只要保存好这个文件就能轻松实现DNS服务器的重建。
 
注意,区域必须允许动态更新,因为在创建AD的过程中需要向这个区域写入ACnameSRV记录。
 
点击完成结束DNS区域的创建。
 
区域创建完毕之后,如下图所示,我们看到区域中已经有了一条NS记录和SOA记录,从逻辑上来说,这两条记录对一个区域来说是不可或缺的。NS记录说明这个区域有哪些DNS服务器可以解析,SOA记录则进一步说明这些DNS服务器中的哪一个是主服务器。我们不能掉以轻心,要看看系统创建的NSSOA记录是否正确。
 
如下图所示,我们发现NS记录不正确,因为Server6.并不是一个可以解析的完全合格域名,这样会导致DNS的客户机无法得知这个区域的解析服务器到底是谁。因此我们要对NS记录进行修改,只要你让修改后的完全合格域名能解析为192.168.11.1,这个修改就是成立的。
 
如下图所示,我把NS记录改为了server6.home.com.DNS服务器可以把这个域名解析为192.168.11.1。再次强调,NS记录对应的域名可以是任意的,只要这个域名能解析为DNS服务器的IP即可。
 
如下图所示,SOA记录也要如法炮制地修改一番,主要是修改主服务器,这是关键参数。至此,我们完成了AD创建前的DNS准备工作。
 
创建父域
DNS区域准备好之后,我们就可以创建域树中的父域了。在Florence上运行Dcpromo,如下图所示,出现Active Direcotry安装向导,点击下一步继续。
 
兼容性提示告诉我们Win2003创建的Active Directory无法和早期的一些操作系统兼容,点击下一步继续。
 
选择创建新域的域控制器。
 
选择创建一个新的域林。
 
输入域的DNS名称,这个域名应该和DNS服务器中预先创建的区域名称相同。
 
域的Netbios名称是TEST
 
由于是测试环境,因此我们选择把Active Directory数据库保存到默认路径下。
 
Sysvol文件夹的路径也使用默认设置。
 
如下图所示,我们先前创建的DNS区域发挥了作用,Active Directory的安装程序测试出当前使用的DNS服务器完全能满足Active Directory的需求。
 
选择Active Directory的兼容模式,选择仅兼容Win2000之后的操作系统。
 
输入目录恢复还原模式的管理员口令,将来从备份还原Active Directory时用得着。
 
检查配置无误,点击下一步开始Active Directory的创建。
 
如下图所示,Active Directory开始创建,创建完毕后需要重启计算机。
 
父域创建完毕后,我们在DNS区域中发现Active Direcotry所需要的ACnameSRV记录都已经被自动生成了,至此,父域创建完毕。
 
创建子域
创建完父域后,接下来我们来创建子域,在Firenze上运行Dcpromo,在Active Directory创建向导的指引下开始子域创建,如下图所示,我们选择创建新域的域控制器。
 
选择创建现有域树中的子域。
输入父域的管理员账号进行权限验证。
 
输入父域和子域的域名,点击下一步继续。
 
显示子域的Netbios名称,点击下一步继续。
 
Active Directory数据库存储在默认路径下。
 
Sysvol文件夹的路径也使用默认设置。
 
如下图所示,Active Directory安装向导检测现有的DNS服务器可以满足子域的安装需求。
 
接下来的安装过程和父域相同,在此不再赘述,子域安装完毕后我们检查DNS服务器,如下图所示,我们发现子域的相关记录也已经被自动创建了,这可以作为域创建成功的衡量标准之一。
 
现在我们已经有了一棵域树,但不要着急进行Exchange的安装,先观察一下父域的DC和子域的DC复制是否正常。在Florence上打开Active Directory站点和服务,如下图所示,我们尝试让FlorenceFirenze进行Active Directory的复制。
 
如果测试结果如下图所示,而且FirenzeFlorence复制也是正常的,那我们就可以进行后续操作了。记住,如果DC间的复制不正常或DNS的区域数据有问题,你就不应该向下进行Exchange的安装,而是应该致力于排除现有问题。
 
林准备
我们知道Exchange2003的安装分为林准备,域准备和Exchange安装三部分,而林准备就是扩展域林的Active Directory架构,我们首先在父域的域控制器上进行林准备。林准备需要操作主机中的架构主机在线,而且进行林准备操作的用户必须是Schema Admins组的成员。我们在Florence上以父域管理员的身份登录,放入Exchange的安装光盘,如下图所示,运行Setup /Forestprep
 
出现Exchange安装向导,点击下一步继续。
 
同意许可协议,点击下一步继续。
 
如下图所示,确定要进行的操作是Forestprep,点击下一步继续。
 
由于Exchange安装在子域的成员服务器上,因此我们赋予子域管理员Exchange的完全控制权限。
 
如下图所示,Active Directory的架构扩展开始了。
 
架构扩展结束之后,我们应该花上几分钟时间,等父域和子域的域控制器复制结束后再进行后续的Exchange安装操作。
 
域准备
林准备结束后,我们就可以进行域准备了。虽然Exchange服务器部署在子域的成员服务器上,但Exchange可以为Active Directory中的所有用户提供邮件服务。因此我们希望父域和子域的用户都可以利用Exchange创建邮箱,我们就应该在父域和子域都进行域准备。由于域准备的过程是一样的,我们以在子域进行域准备为例,在Firenze上放入Exchange2003的安装光盘,如下图所示,运行 setup /domainprep
 
出现Exchange安装向导,点击下一步继续。
 
同意软件许可协议,点击下一步继续。
 
确定准备进行的操作是Domainprep,点击下一步开始安装。
 
如下图所示,子域的域准备顺利完成,接下来我们如法炮制在父域也进行域准备即可。
 
部署Exchange2003
接下来就是最后的Exchange部署工作了,我们在Berlin上先装上SMTPNNTPWebASP.NETExchange安装的必需组件。然后放入Exchange2003的安装光盘,如下图所示,运行D:\setup\i386\setup.exe
 
出现Exchange安装向导,点击下一步继续。
 
同意软件许可协议,点击下一步继续。
 
选择Exchange的典型安装即可。
 
由于没有现成的组织,我们选择新建Exchange组织。
 
为新创建的组织取名为First
 
同意最终用户许可协议,点击下一步继续。
 
Exchange的管理组取名 为MAIL
 
确认Exchange的安装组件,点击下一步开始Exchange的安装。
 
如下图所示,顺利完成Exchange2003在子域的部署。
 
部署完毕后重启Berlin发现大事不妙,Exchange的存储服务和MTA服务居然不能启动,再次重启仍然是涛声依旧。从事件查看器的提示看似乎是无法从Active Directory检索到Exchange信息!怎么办?别担心,微软解释过这个问题,如果Exchange服务器安装在子域,那么默认情况下Exchange服务器只向本域内的域控制器和全局编录服务器进行AD对象查询,但由于域树的全局编录服务器默认由父域的域控制器承担,因此Exchange服务器在子域内检索不到Active Direcotry中关于Exchange的登记信息。解决方法也很简单,如下图所示,在Exchange服务器的高级TCP/IP属性中定义附加的DNS后缀,把Test.comShanghai.test.com都定义上,这样Berlin就会从父域的全局编录服务器或域控制器检索Exchange数据了。重启Berlin后一切正常!或者可以考虑把子域的域控制器也作为全局编录服务器。
 
在子域中为用户创建一个邮箱,如下图所示,邮箱创建成功!至此,Exchange在子域部署成功完成!
 
至此,Exchange在子域部署完毕,对常见问题总结如下:
1  注意DNS问题,对一个不熟悉DNS原理的管理员来说,最简单的办法就是所有的计算机都使用同一个DNS服务器。DNS最好是独立的计算机,如果不行,把DNS放在父域的控制器上也可以接受。有些管理员选择了父域和子域的计算机分别使用本域的域控制器作为DNS服务器,如果这样的话,需要在父域进行子域委派。除非你的网络环境确实有这个需求,否则我认为是多此一举。
2  注意Active Directory的健康状态。ExchangeAD结合得非常紧密,确保AD状态正常是安装Exchange之前的必修课。我们可以考虑域控制器复制是否正常,操作主机角色是否正常,GC的角色由谁承担,DNS的相关记录是否有误等等。用Dcdiag测试一下也是不错的选择。
3  如果扩展架构时出现问题,应考虑架构主机是否在线,执行用户是否属于Schema Admins组。最保险的办法是在父域的域控制器上以父域管理员的身份执行扩展架构的操作,因为默认情况下父域的域控制器承担架构主机的角色,而父域管理员也隶属Schema Admins组。还有一点要注意,如果希望在子域进行Exchange部署,那么扩展架构时一定要把Exchange的完全控制权限分配给子域的管理员。
4  如果希望部署在子域的Exchange服务器可以为Active Directory的所有用户提供邮件支持,那在父域和子域都应该进行域准备。如果只需要让Exchange在子域发挥作用,那仅仅在子域进行域准备就可以了。
5  如果希望Exchange服务器为父域和子域用户创建的邮箱拥有不同的地址后缀,但除了在父域和子域都要进行域准备外,还需要为父域和子域分别创建地址策略,具体参见[url]http://yuelei.blog.51cto.com/202879/77270[/url]。而且要注意的是,子域的管理员并没有为父域用户创建邮箱的权限,可以考虑把子域的管理员加入父域域控制器的本地管理员组来解决这个问题。