DNS子域授权
随着公司业务的发展,当初申请的那个域名已经不够用了。
zledu.com 任何一个子域必须经过父域的授权;
www.zledu.com
www.zledu.com/fin #通过这个目录访问的都是财务部的;
www.zledu.com/maket #通过这个目录访问的都是市场部的;
刚开始通过这两个路径都能对其进行访问,后来过了一段时间发现这两个部分都能单独独立出去了。
但是我们希望访问财务部的网站,使用如下方式访问:
www.fin.zledu.com.
www.market.zledu.com.
我们要划分新的区域,需要得到父域的支持;而在正向区域里面如何授权呢?
SUB_ZONE_NAME IN NS NSSERVER_SUB_ZONE_NAME
NSSERVER__SUB_ZONE_NAME IN A IP
.com
zledu.com. IN NS ns1.zledu.com.
ns1.zledu.com. IN A 172.16.100.1
在后台页面里面,可以修改两个a记录;·
只需要在父域上进行授权即可,父域里面添加几条ns记录即可。
zledu.com.
fin.zledu.com. IN NS ns1.fin.zledu.com.
fin.zledu.com. IN NS ns2.fin.zledu.com.
ns1.fin.zledu.com. IN A 172.16.100.8 (注意子域跟父域不一定是在一个网站里面)
ns2.fin.zledu.com. IN A 172.16.100.9
market.zledu.com. IN NS ns1.market.zledu.com.
ns1.market.zledu.com. IN A 172.16.100.108
下面编辑父域文件:同时将序列号加1;
$TTL 600
zledu.com. IN SOA ns1.zledu.com. admin.zledu.com. (
20150524
1H
5M
2D
6H )
IN NS ns1
IN NS ns2
IN MX 10 mail
ns1 IN A 172.16.100.1
ns2 IN A 172.16.100.2
mail IN A 172.16.100.2
pop IN A 172.16.100.4
www IN A 172.16.100.1
www IN A 172.16.100.3
ftp IN CNAME www
imap IN A 172.16.100.5
hello IN A 172.16.100.6
fin IN NS ns1.fin
ns1.fin IN A 172.16.100.8
market IN NS ns1.market
ns1.market IN A 172.16.100.108
在父域上面建立完成之后,还是无法解析子域的ns记录;原因真实的服务器还不存在;
在172.16.100.108的主机上进行如下配置;
[root@localhost named]# cat /etc/named.conf
options {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "named.localhost";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
};
zone "fin.zledu.com" IN {
type master;
file "fin.zledu.com.zone";
};
[root@localhost named]# cat fin.zledu.com.zone
$TTL 600
fin.zledu.com. IN SOA ns1.fin.zledu.com. admin.fin.zledu.com. (
20150524
1H
5M
2D
6H )
IN NS ns1
IN MX 10 mail
ns1 IN A 172.16.100.8
mail IN A 172.16.100.9
www IN A 172.16.100.10
更新完这一切之后,就可以在父域的服务器上面进行查询:且会有查询结果返回。
[root@localhost named]# dig -t NS fin.zledu.com @172.16.100.1
flags: qr rd ra;
在自己上面也可以进行查询;
[root@localhost named]# dig -t NS www.zledu.com @172.16.100.8
同时查询结果里面只看flags那个参数即可;
flags: qr aa rd ra;
注意此时,子域不知道父域的位置,没法对数据进行转发。如果想让父域实现转发,需要做如下配置:
forward {only|first} # only的意思是,如果我这里解析不能进行,就将其转发出去;
first就是我先转发给你,你要是不给我转发我就找根服务器;
forwarders {};#指定转发器;
options {
directory "/var/named";
forward first;
forwarders { 172.16.100.1; };
};
这个是全局转发的效果,如果只想父域转发就需要另外做配置。
此时在windows客户端做检查就能查找到父域对应的结果。虽然也能解答出来,但是结果是非权威应答。
zone "ZONE_NAME" IN {
type forward;
};
如果我们只是想对其父域进行转发,可以新建一个域,表示只对父域进行转发。
zone "zledu.com" IN {
type forward;
forward first;
forwarders { 172.16.100.1; };
};
我们在父域里面也可以指定,.com的域名,将所有.com的域进行转发。