虽然这两台服务器不能合二为一,那能不能在它们之间架座桥梁呢?这一想,倒让我想起了DNS的转发功能,这样只要把客户端的DNS指向域控制器那台DNS服务器,域内的名称解析Windows 2000 DNS自己就搞定了,而Internet上的它不能解析就转发给上网服务器,这样不就行了吗?
于是就进入域控制器上的Windows 2000 DNS服务器的设置页面,想去把上网服务器的IP地址加入转发器列表,结果看到的“转发器”标签却是一片灰色不可设置!我的天,看来是天要亡我非用兵之过也!但再一想不对呀,微软总不会闲着没事干给出这个设置页面吧,既然他给出了,那就有它的用处。于是静下心来看了看这个灰色页面,发现一段外交式的声明:“因为这是根服务器,所以没有转发器”;另外“根目录提示”标签也是一片灰色,提示说“由于这台计算机为一台根服务器,不需要根暗示”。原来如此!居然缺省安装的Windows 2000 DNS服务器是一台根服务器,真是柳暗花明又一村,看来解决的方法就是让它不是根服务器,但又不能影响到域内的DNS查询,于是就删掉“.”区域,重启DNS服务器,然后进行简单查询和递归查询都通过了,看来域内域外的解析都没问题了,马上在一台客户端测试,也能正常上网,OK,问题就这解决了,达到了登录域和上网两不误。
几点总结
第一,DNS服务是Windows 2000域的一项必不可少的服务,是它的有机组成部分,域内计算机的DNS都应该指向为域提供服务的Windows 2000 DNS 服务器。
第二,在我们安装第一台域控制器的时候,会自动要求安装DNS服务,但缺省安装的DNS服务中包含正向搜索区域下存在的“.”区域,通常应该把它删除,不然就无法在Internet 上执行根服务器的外部名称解析。在这种情况下,域控制器的DNS应该设为自己。
第三,首选服务DNS服务器和备用DNS服务器的关系:如果只有一个网络连接(比如一个网卡),那么只有首选DNS服务器没有响应时才会向备用DNS服务器请求,如果首选DNS服务器有响应,即使是错误的响应也不会再去请求备用DNS服务器,这也是为什么在我没有删掉“.”区域时,我把首选DNS服务器设为域控制器而把备用DNS服务器设为上网服务器也不成功的原因—如果这时域控制器没有开机,即它没有响应时,客户端会去请求备用DNS服务器的,这时就能够上网。如果有两个网络连接—比如有两个网卡或一个网卡和一个拨号连接—那么首选DNS服务器不能解析就会向备用DNS服务器查询。
第四,本文问题的另一种解法是不需要设置转发器,而把域服务器(也是DNS服务器)的网关设为上网服务器就行。这是因为当你要解析一个Internet上的名称时,它在本服务器上找不到记录,会自动启用根目录提示的,然后通过网关找到了根服务器,这样就能解析了,不管用那种方法,域控制器的DNS设置都应该指向自己(本身运行DNS)。