0.5.1DNS配置-全局转发

443 阅读4分钟

这是建立在之前的上的

juejin.cn/post/684490…

介绍

问我我不知道,就问根,转发就是不去问根了,问指定的dns
正常先查本地dns数据库,查不到就去问根

# 应用情景
目前情况是这样
有个规模比较大的公司,全国有三个办事处
sh bj cd
sh,cd都有专线连接bj总公司,然后保密要求也比较严格,要求上网都从北京走,北京连接外面的网有防火墙

bj用户要上网,请求发送给bjdns(企业内部搭的dns),bj访问baidu,本地dns没有dns,要问根,然后cd的用户也要访问baidu,如果要问bj的dns太慢了,就自己搭一个,但是本地也没有baidu的,然后就问根
,如果上海的也要访问baidu,然后转发到根上,那无论成都还是上海都要访问baidu,那广域网的带宽,无形中很多人重复的走,会浪费互联网带宽
cd,sh的都没有baidu,干脆把上海和成都的dns转发,都不去访问根了,而是转给bj的dns上

现在cd的一个用户要访问baidu,cddns一看自己没有,就转发给bjdns,bj如果有用户曾经访问过baidu,有缓存,这缓存就直接给你返回值了,同样的bjdns的缓存也可以给上海的用,这就不但可以节约dns带宽也可以提高响应速度

配置

# 需要三台机器
客户机 10.0.0.6
转发dns 10.0.0.8
目标dns 47.93.200.163
# 流程
在目标dns上建立域wyjn.org以及主机
在转发dns上配置转发
客户机dns配置为转发dns,访问www.wyjn.org
# 客户机配置
vim /etc/resolv.conf

nameserver 10.0.0.8
# 转发dns配置

vim /etc/named.conf 
//      listen-on port 53 { localhost; };
//      allow-query     { localhost; };
        allow-transfer {10.0.0.3;}; 
        # 上面的是之前配的,具体的看以前的
        
        # 下面的是这次添加的
        forward first|only;
        # first 就是本地缓存找不到,转发到目标dns服务器上找不到,就去找根
        # only就是本地缓存找不到,转发的目标dns上也找不到,就返回查找失败
        forwarders {47.93.200.163;};
        # 这个是转发的目标dns服务器地址
        
        dnssec-enable no;
        dnssec-validation no;
        这两个关于安全的选项要关闭,否则无法进行转发,只会去找根
        
rndc reload 重新载入配置


# 目标dns配置
[root@iz2ze6e74gz7l00leucekiz named]# vim /etc/named.rfc1912.zones

zone "wyjn.org" IN {
        type master;
        file "wyjn.org.master.zone";
        allow-update { none; };
};

[root@iz2ze6e74gz7l00leucekiz named]# cp -p named.localhost wyjn.org.master.zone
[root@iz2ze6e74gz7l00leucekiz named]# vim wyjn.org.master.zone
$TTL 1D
@       IN SOA  master 3555409634.qq.com. (
                                        0
                                        1D
                                        1H
                                        1W
                                        3H )
        NS      @
        A       47.93.200.163
www     A       1.1.1.1

rndc reload 重新载入配置

测试

# 转发dns处于first,目标dns没关闭dns服务
[root@localhost ~]# dig www.wyjn.org

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> www.wyjn.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10495
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

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

;; ANSWER SECTION:
www.wyjn.org.           86400   IN      A       1.1.1.1

;; AUTHORITY SECTION:
wyjn.org.               86400   IN      NS      wyjn.org.

;; ADDITIONAL SECTION:
wyjn.org.               86400   IN      A       47.93.200.163

;; Query time: 18 msec
;; SERVER: 10.0.0.8#53(10.0.0.8)
;; WHEN: Thu Mar 19 01:49:31 CST 2020
;; MSG SIZE  rcvd: 87

# 转发dns处于first,目标dns关闭dns服务
目标dns       rndc stop
转发dns        rndc flush    清空缓存
[root@localhost ~]# dig www.wyjn.org

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> www.wyjn.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 12241
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

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

;; AUTHORITY SECTION:
org.                    900     IN      SOA     a0.org.afilias-nst.info. noc.afilias-nst.info. 2013860768 1800 900 604800 86400

;; Query time: 4373 msec
;; SERVER: 10.0.0.8#53(10.0.0.8)
;; WHEN: Thu Mar 19 01:52:28 CST 2020
;; MSG SIZE  rcvd: 104

因为根dns也没有这个域名所以查询错误,因为这个域就是虚构的

# 转发dns处于only,目标dns关闭dns服务
转发dns     rndc flush
[root@localhost ~]# dig www.wyjn.org

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> www.wyjn.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 45402
# serfial 服务失败,因为目标dns没有打开
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

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

;; Query time: 1 msec
;; SERVER: 10.0.0.8#53(10.0.0.8)
;; WHEN: Thu Mar 19 01:55:46 CST 2020
;; MSG SIZE  rcvd: 41