DNS-05-转发

DNS-05-转发

实验环境

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-04-子域授权配置一个父域服务器和一个子域服务器。

现在的需求是在使用子域服务器去解析父域域名时不要让子域服务器去层层递归查询而是直接交给父域服务器去完成解析。实现方法是转发,但是有两种不同的方式,一种是区域转发,一种是全局转发。

1. 区域转发

在子域服务器上的增加magedu.com的区域定义。这里forward方式也有两种类型:first或者onlyfirst是先尝试转发,如果父域服务器没有响应再自行去迭代查询,而only是只转发。可以根据实际情况去选择,一般来说first的灵活度要大一些,但是如果你的服务器根本就不能连接互联网就没有必要用first了。

[root@ns1 ~]# vim /etc/named.rfc1912.zones
...
zone "magedu.com" IN {
    type forward;
    forward first;
    forwarders { 172.18.171.101; };
};

检查主配置文件的语法

[root@ns1 named]# named-checkconf

启动服务

[root@ns2 ~]# systemctl start named

在测试机器上使用dig测试,通过区域转发的方式子域服务器解析父域域名可以得到结果了。

[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: 24093
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1

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

;; ANSWER SECTION:
www.magedu.com.        85317    IN    A    172.18.71.101
www.magedu.com.        85317    IN    A    172.18.71.102

;; AUTHORITY SECTION:
magedu.com.        86343    IN    NS    ns1.magedu.com.

;; Query time: 1 msec
;; SERVER: 172.18.71.102#53(172.18.71.102)
;; WHEN: 五 4月 08 23:04:56 CST 2016
;; MSG SIZE  rcvd: 93

而非此转发区域的域名解析则不会转发,而是由子域服务器去迭代查询的。但子域服务器无法联网,因此查询不到结果。

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

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

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

;; Query time: 8 msec
;; SERVER: 172.18.71.102#53(172.18.71.102)
;; WHEN: 五 4月 08 23:51:02 CST 2016
;; MSG SIZE  rcvd: 42

2. 全局转发

全局转发时,就不是定义转发区域了,而是在主配置文件/etc/named.conf中直接定义了。

options {
    ...
    forward only;
    forwarders { 172.18.71.101; };
    ...
};

检查主配置文件的语法

[root@ns1 named]# named-checkconf

启动服务

[root@ns2 ~]# systemctl start named

在测试机器上使用dig测试,通过全局转发的方式子域服务器解析父域域名也可以得到结果。

[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: 43069
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1

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

;; ANSWER SECTION:
www.magedu.com.        83773    IN    A    172.18.71.101
www.magedu.com.        83773    IN    A    172.18.71.102

;; AUTHORITY SECTION:
magedu.com.        84799    IN    NS    ns1.magedu.com.

;; Query time: 1 msec
;; SERVER: 172.18.71.102#53(172.18.71.102)
;; WHEN: 五 4月 08 23:30:41 CST 2016
;; MSG SIZE  rcvd: 93

此时非此转发区域的域名解析也会转发,然后由父域服务器去做解析。因为父域服务器可以联网,所以可以查到结果。

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

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

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

;; ANSWER SECTION:
www.baidu.com.        50    IN    CNAME    www.a.shifen.com.
www.a.shifen.com.    299    IN    A    61.135.169.125
www.a.shifen.com.    299    IN    A    61.135.169.121

;; Query time: 845 msec
;; SERVER: 172.18.71.102#53(172.18.71.102)
;; WHEN: 五 4月 08 23:53:45 CST 2016
;; MSG SIZE  rcvd: 101

结论

区域转发意味着很多解析请求需要子域服务器自己去迭代查询,全局转发则意味着将大部分的压力都转移给父域服务器,所以选择区域转发还是全局转发需要根据实际情况来决定。
同时这里也存在一个问题,如果我们的服务器没有做任何安全设置,允许对任何主机的递归查询请求,就会出现别人将解析请求转发到我们的服务器上的情况。被人占便宜事小,影响到业务事大,这是我们不愿意看到的。参照DNS-06-安全设置


你可能感兴趣的:(dns)