子域部署
Exchange
服务器完全攻略及故障剖析
最近在论坛发现有些朋友在子域部署
Exchange
服务器时遇到了一些问题,看了一下发现导致问题的原因很多。索性趁着今天有时间,用一个实验演示一下在子域部署
Exchange
服务器的全过程,希望能给这些朋友一些参考。实验拓扑如下图所示,
test.com
是父域,
Florence
是父域的域控制器。
Shanghai.test.com
是子域,
Firenze
是子域的域控制器,
Berlin
是子域的成员服务器,我们准备把
Exchange2003
部署在
Berlin
上。域树中的三台计算机都使用
192.168.11.1
作为
DNS
服务器。为了演示得更彻底,我们搭建这个实验环境从部署
AD
开始,因为我发现有不少朋友部署
Exchange
时出现的错误其实源于
AD
。
我部署
AD
的习惯是用单独的
DNS
服务器为
AD
提供解析服务,而不是将
DNS
安装在域控制器上。这些做的好处是
DNS
非常容易维护,只要把引导文件,区域数据文件复制出来就完成了备份,重建
DNS
服务器只需要几分钟时间。而且这种拓扑对初学者来说很容易把握,只要把所有的计算机都指向同一个
DNS
就可以了。免得很多管理员在域树环境下很是困惑父域的计算机应该使用哪个
DNS
服务器,子域的计算机又该使用哪个
DNS
服务器。如果你使用虚拟机搭建实验环境,可以考虑象我这样把
DNS
搭建在物理计算机上。好了,我们不过多讨论
DNS
和
AD
的关系,现在开始具体的部署工作。我们需要在创建
AD
之前先在
DNS
服务器中创建出相关区域,然后允许区域进行动态更新。
在
DNS
服务器上打开
DNS
管理器,如下图所示,右键点击正向查找区域,选择“新建区域”。
出现新建区域向导,点击下一步继续。
区域类型应该选择“主要区域”。
区域名称为
Test.com
,和
AD
使用的域名完全相同
。
Test.com
区域的数据存储在
Windows\System32\DNS\Test.com.dns
文件中,我们只要保存好这个文件就能轻松实现
DNS
服务器的重建。
注意,区域必须允许动态更新,因为在创建
AD
的过程中需要向这个区域写入
A
,
Cname
和
SRV
记录。
点击完成结束
DNS
区域的创建。
区域创建完毕之后,如下图所示,我们看到区域中已经有了一条NS
记录和SOA
记录,从逻辑上来说,这两条记录对一个区域来说是不可或缺的。NS
记录说明这个区域有哪些DNS
服务器可以解析,SOA
记录则进一步说明这些DNS
服务器中的哪一个是主服务器。
我们不能掉以轻心,要看看系统创建的
NS
和
SOA
记录是否正确。
如下图所示,我们发现
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
所需要的
A
,
Cname
和
SRV
记录都已经被自动生成了,至此,父域创建完毕。
创建完父域后,接下来我们来创建子域,在
Firenze
上运行
Dcpromo
,在
Active Directory
创建向导的指引下开始子域创建,如下图所示,我们选择创建新域的域控制器。
选择创建现有域树中的子域。
输入父域的管理员账号进行权限验证。
输入父域和子域的域名,点击下一步继续。
显示子域的
Netbios
名称,点击下一步继续。
Active Directory
数据库存储在默认路径下。
Sysvol
文件夹的路径也使用默认设置。
如下图所示,
Active Directory
安装向导检测现有的
DNS
服务器可以满足子域的安装需求。
接下来的安装过程和父域相同,在此不再赘述,子域安装完毕后我们检查
DNS
服务器,如下图所示,我们发现子域的相关记录也已经被自动创建了,这可以作为域创建成功的衡量标准之一。
现在我们已经有了一棵域树,但不要着急进行
Exchange
的安装,先观察一下父域的
DC
和子域的
DC
复制是否正常。在
Florence
上打开
Active Directory
站点和服务,如下图所示,我们尝试让
Florence
从
Firenze
进行
Active Directory
的复制。
如果测试结果如下图所示,而且
Firenze
从
Florence
复制也是正常的,那我们就可以进行后续操作了。记住,如果
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
,点击下一步开始安装。
如下图所示,子域的域准备顺利完成,接下来我们如法炮制在父域也进行域准备即可。
接下来就是最后的
Exchange
部署工作了,我们在
Berlin
上先装上
SMTP
,
NNTP
,
Web
,
ASP.NET
等
Exchange
安装的必需组件。然后放入
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.com
和
Shanghai.test.com
都定义上,这样
Berlin
就会从父域的全局编录服务器或域控制器检索
Exchange
数据了。重启
Berlin
后一切正常!或者可以考虑把子域的域控制器也作为全局编录服务器。
在子域中为用户创建一个邮箱,如下图所示,邮箱创建成功!至此,
Exchange
在子域部署成功完成!
至此,
Exchange
在子域部署完毕,对常见问题总结如下:
1
注意DNS
问题,对一个不熟悉DNS
原理的管理员来说,最简单的办法就是所有的计算机都使用同一个DNS
服务器。DNS
最好是独立的计算机,如果不行,把DNS
放在父域的控制器上也可以接受。有些管理员选择了父域和子域的计算机分别使用本域的域控制器作为DNS
服务器,如果这样的话,需要在父域进行子域委派。除非你的网络环境确实有这个需求,否则我认为是多此一举。
2
注意Active Directory
的健康状态。Exchange
和AD
结合得非常紧密,确保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]
。而且要注意的是,子域的管理员并没有为父域用户创建邮箱的权限,可以考虑把子域的管理员加入父域域控制器的本地管理员组来解决这个问题。