DNS-04-子域授权

DNS-04-子域授权

实验环境

ns1.magedu.com 172.18.71.101/24 CentOS-6.7-x86_64 父域
ns1.dev.magedu.com 172.18.71.102/24 CentOS-7.2-x86_64 子域
localhost.localdomain 172.18.71.103/24 CentOS-7.2-x86_64 测试机

iptablesSELinux均处于关闭状态。

安装bind

[root@ns1 ~]# yum install -y bind bind-libs bind-utils

首先,分别修改两个节点主机的主配置文件/etc/named.conf,注释掉仅允许本机查询请求和dnssec(可能影响实验结果),并在监听地址列表中增加各自向外部提供服务的IP地址。

options {
    listen-on port 53 { 127.0.0.1; 172.18.71.101; };
    ...
    //allow-query     { localhost; };
    ...

    //dnssec-enable yes;
    //dnssec-validation yes;
    //dnssec-lookaside auto;
    ...
};

时间同步

一般来说,多节点协同工作首先就是要校准时间,使之时间同步。联网状态下可使用ntpdate命令统一找授时中心校准,不能联网可使用date命令手动校准。

配置父域

首先参照DNS-02-单服务器配置一个正向区域magedu.com

另外需要在父域的magedu.com区域数据库文件中增加子域的NS记录以及相应的A记录。

$TTL 1D
@    IN    SOA    @    ns-admin.magedu.com. ( 
        2016040801
        1D
        1H
        1W
        3H )
            IN    NS    ns1
            IN    MX    10 mx1
ns1            IN    A    172.18.71.101
mx1            IN    A    172.18.71.101
www            IN    A    172.18.71.101
www            IN    A    172.18.71.102
bbs            IN    CNAME    www
dev.magedu.com.        IN    NS    ns1.dev.magedu.com.
ns1.dev.magedu.com.    IN    A    172.18.71.102

检查区域解析数据库文件和主配置文件的语法

[root@ns1 named]# named-checkzone magedu.com magedu.com.zone 
zone magedu.com/IN: loaded serial 2016040801
OK
[root@ns1 named]# named-checkconf

启动服务

[root@ns1 named]# /etc/init.d/named start
Generating /etc/rndc.key:                                  [  OK  ]
Starting named:                                            [  OK  ]

配置子域

首先参照DNS-02-单服务器配置一个正向区域dev.magedu.com

$TTL 1D
@    IN    SOA    @    ns-admin.dev.magedu.com. ( 
        2016040901
        1D
        1H
        1W
        3H )
        IN    NS    ns1
        IN    MX   10    mx1
ns1        IN    A    172.18.71.102
mx1        IN    A    172.18.71.102
www        IN    A    172.18.71.102
bbs        IN    CNAME    www

检查区域解析数据库文件和主配置文件的语法

[root@ns1 named]# named-checkzone dev.magedu.com dev.magedu.com.zone 
zone dev.magedu.com/IN: loaded serial 2016040901
OK
[root@ns1 named]# named-checkconf

启动服务

[root@ns2 ~]# systemctl start named

测试结果

1. 父域服务器解析子域域名

使用父域服务器解析子域域名,可以得到结果。

[root@localhost ~]# dig -t A www.dev.magedu.com @172.18.71.101

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.dev.magedu.com @172.18.71.101
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62292
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.dev.magedu.com.        IN    A

;; ANSWER SECTION:
www.dev.magedu.com.    86100    IN    A    172.18.71.102

;; AUTHORITY SECTION:
dev.magedu.com.        86400    IN    NS    ns1.dev.magedu.com.

;; Query time: 2 msec
;; SERVER: 172.18.71.101#53(172.18.71.101)
;; WHEN: 五 4月 08 20:57:43 CST 2016
;; MSG SIZE  rcvd: 81

关闭子域服务

[root@ns1 ~]# systemctl stop named

清空父域服务器的缓存中的解析结果

[root@ns1 ~]# rndc flush

再来做上面的测试,可以看到无法得到解析结果。

[root@localhost ~]# dig -t A www.dev.magedu.com @172.18.71.101

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.dev.magedu.com @172.18.71.101
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 49365
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.dev.magedu.com.        IN    A

;; Query time: 2 msec
;; SERVER: 172.18.71.101#53(172.18.71.101)
;; WHEN: 五 4月 08 21:17:21 CST 2016
;; MSG SIZE  rcvd: 47

2. 子域服务器解析父域域名

使用子域服务器解析父域域名,可以看到并没有解析到正确结果,这是因为子域服务器开启允许递归选项,它在自身无法得到结果的情况下去联网找根域做迭代查询取得了结果,对于客户端来说就是子域服务器帮忙做了递归查询。

[root@localhost ~]# dig -t A www.magedu.com @172.18.71.102

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.magedu.com @172.18.71.102
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12729
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 10

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.magedu.com.            IN    A

;; ANSWER SECTION:
www.magedu.com.        600    IN    A    101.200.188.230

;; AUTHORITY SECTION:
magedu.com.        172799    IN    NS    v2s2.xundns.com.
magedu.com.        172799    IN    NS    v2s1.xundns.com.

;; ADDITIONAL SECTION:
v2s1.xundns.com.    172799    IN    A    115.238.253.250
v2s1.xundns.com.    172799    IN    A    124.232.156.76
v2s1.xundns.com.    172799    IN    A    183.57.38.184
v2s1.xundns.com.    172799    IN    A    113.17.169.37
v2s1.xundns.com.    172799    IN    A    115.238.241.21
v2s2.xundns.com.    172799    IN    A    116.10.184.143
v2s2.xundns.com.    172799    IN    A    121.10.104.13
v2s2.xundns.com.    172799    IN    A    115.238.241.20
v2s2.xundns.com.    172799    IN    A    115.238.253.252

;; Query time: 2385 msec
;; SERVER: 172.18.71.102#53(172.18.71.102)
;; WHEN: 五 4月 08 21:00:26 CST 2016
;; MSG SIZE  rcvd: 248

修改子域服务器的主配置文件/etc/named.conf,关闭掉允许递归选项。

[root@ns1 ~]# vim /etc/named.conf
options {
    ...
    recursion no;
    ...
};

重载配置文件

[root@ns1 ~]# rndc reload
server reload successful

再来做上面测试,这次就完全得不到解析结果了。

[root@localhost ~]# dig -t A www.magedu.com @172.18.71.102

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.magedu.com @172.18.71.102
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 31585
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.magedu.com.            IN    A

;; Query time: 1 msec
;; SERVER: 172.18.71.102#53(172.18.71.102)
;; WHEN: 五 4月 08 21:07:28 CST 2016
;; MSG SIZE  rcvd: 43

3. 结论

子域授权即父域服务器将自己所辖区域中的一部分交给子域服务器去负责解析。

  • 在使用父域服务器去解析子域域名时,如果子域服务停止并且父域服务器中没有相应的缓存结果,则没有办法完成解析。

  • 而反过来,子域服务器却并不能够解析父域域名。如果子域服务器允许


  • 查询,则会去互联网上找根域迭代查询直至取得结果;否则无法取得解析结果。(子域服务器查父域域名需要层层迭代是非常浪费资源的方式,这显然不是我们所期望的,因此实际中一般都通过转发的方式来解决这一问题。参照DNS-05-转发)

反向区域的子域授权比较繁琐,这里不做介绍。


你可能感兴趣的:(dns)