假设这样一种场景,假设公司的规模扩展,有两个部门都希望实现自己服务器的管理。如test.com这个域名,以前所有页面都位于www.test.com这台主机上,若每个部门都需要自己的Web页面,因此可做如下处理:
www.test.com/fin 财务部
www.test.com/market 市场部
但过一段时间,它们又希望使用自己的DNS主机,如:
www.fin.test.com 财务部
www.market.test.com 市场部
此时该如何做呢?由此就引出子域授权的话题了。
正向区域授权:
SUB_ZONE_NAME(子域区域名称) IN NS NSSERVER_SUB_ZONE_NAME(服务器子域区域名称)
NSSERVER_SUB_ZONE_NAME IN A IP(服务器IP地址)
例:.com服务器之下,有人注册了test.com这个域,因此需要在.com上建立:
test.com. IN NS ns1.test.com.
ns1.test.com. IN A 192.168.241.10
若再建立一个辅助DNS服务器ns2,ns2对应192.168.241.11,那么ns2是否能在互联网上被使用呢?
分析过程:dig -t A www.baidu.com @192.168.241.10
因为192.168.241.10与www.baidu.com不在同一个域,所以此时需要查找根:
. --> .com --> test.com.,而前面已经定义过,test.com在.com上对应192.168.241.10,因此192.168.241.11不能被找到,即在互联网上无法被识别。
因此,在子域中有几个DNS服务器,就应该建几条记录,如下:
所以说假如test.com.已经由我们自己管理,我们有所有的操作权限,而且已经建立好一主一从服务器,现在期望能够授权子域,一个叫fin,一个叫market,并且子域可以自我管理,那么如何实现呢?
在父域授权:即可,在服务区域数据文件添加记录:
fin.test.com. IN NS ns1.fin.test.com.
fin.test.com. IN NS ns2.fin.test.ocm.
ns1.fin.test.com. IN A 192.168.241.8 ;注意:子域与父域无需在同一网段中
ns2.fin.test.com. IN A 192.168.241.9
market.test.com. IN NS ns1.market.test.com.
ns1.market.test.com. IN A 192.168.241.108
具体实现如下:
编辑父域服务器中的主DNS服务器:
查看从域名服务器:
配置子域服务器:
配置IP地址为192.168.241.8,搜索域为fin.test.com
安装bind
配置:
测试:
子域服务器:
父域主服务器:(联系子域,让子域提供真正的信息)
父域自己解析:
Windows端使用nslookup测试:
配置子域可找到父域在哪(通过转发即可实现):
子域服务器:
forward {only|first}; #指定为only时若解析不了,转发给指定的服务器;
#first则表示先转发给指定的服务器,若无结果,自己找根。
forwarders {}; #指定转发给谁
zone "ZONE_NAME" IN{
type forward;
};
如实现全局转发:
#会转发给父域处理
只转发父域服务器: