★配置DNS转发

  我之前配置的DNS服务只能解析我定义过的zone,而没有定义的zone是不能解析的,因此存在着很大的弊端。但是配置了DNS转发之后,就可以顺利解析互联网上了其他域名了,当然,解析此域名的前提是这个域名在互联网中确实存在并且正在使用,也就是说这个域名已经被某个DNS服务器解析了。

  我们可以先试一下

[root@yue named]#  dig @127.0.0.1 www.qq.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> @127.0.0.1 www.qq.com
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached    <== 不能解析

  接下来开始配置DNS转发

  • 编辑主配置文件 /etc/named.conf

    在options{}中加入下面的内容:

    forward first;
    forwarders { 8.8.8.8; };

    这两行的内容就是用来配置DNS转发的,我们配置的DNS服务器不能解析的域名会转发到8.8.8.8这个DNS服务器上去解析。

  • 我们测试一下

    重启named服务

    在此解析www.qq.com

[root@yue named]#  dig @127.0.0.1 www.qq.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> @127.0.0.1 www.qq.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28726
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.qq.com.            IN    A

;; ANSWER SECTION:
www.qq.com.        299    IN    A    119.188.89.220
www.qq.com.        299    IN    A    119.188.89.202

;; Query time: 2166 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Feb  4 07:07:14 2015               <== 现在可以成功解析了

;; MSG SIZE  rcvd: 60           

★配置主从

  • 我们再开一台虚拟机作为从,并安装bind

  • 我们要将主上的三个配置文件/etc/named.conf, /var/named/localhost.zone, /var/named/named.local 拷贝到从上去。我们需要先安装scp命令:yum install -y openssh-clients


    注意:我们要在两台虚拟机上都安装scp命令才可以正常传输,否则会报错。

    scp /etc/named.conf 192.168.16.106:/etc/

    scp /var/named/localhost.zone /var/named/named.local 192.168.16.106:/var/named/

  • 在从上修改一下拷贝过来的/etc/named.conf文件

    options {
        directory "/var/named";               <== 可以把之前做DNS转发时添加的内容删去
    };
                                                如果从上删去了,主要也要相应改动

    zone "." IN {
        type hint;
        file "named.ca";
    };


    zone "localhost" IN {                      <== 橙色内容是不需要改动的
        type master;
        file "localhost.zone";
    };


    zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.local";
    };

    zone "hera.com" IN {                       <== 标粗的部分为要改动的内容
        type
    slave;                           <== 设置为从
        file "slaves/hera.com.zone";        <== 我们之前拷贝时并没有拷贝hera相关文件,

                                                   在从上可以自动生成
        masters { 192.168.16.100; };         <== 主的ip
    };

    zone "16.168.192.in-addr.arpa" IN {
        type slave;
        file "slaves/192.168.zone";
        masters { 192.168.16.100; };

  • 在从上生成rndc.key:

    rndc-confgen -r /dev/urandom -a

  • 更改key的属组:

    chown named:named /etc/rndc.key

  • 在从上启动named服务:

    /etc/init.d/named start

  • 启动成功后会在 /var/named/下生成一个slaves目录,这个目录下会有192.168.zone, hera.com.zone这两个文件,内容是和主上的一样的

    [root@yue etc]# ls !$/slaves
    ls /var/named/slaves
    192.168.zone  hera.com.zone

  • 在从上进行测试:

    [root@yue etc]# dig @127.0.0.1 www.hera.com

    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> @127.0.0.1 www.hera.com
    ; (1 server found)
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26741
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

    ;; QUESTION SECTION:
    ;www.hera.com.            IN    A

    ;; ANSWER SECTION:
    www.hera.com.        600    IN    A    192.168.16.100

    ;; AUTHORITY SECTION:
    hera.com.        600    IN    NS    ns.hera.com.

    ;; ADDITIONAL SECTION:
    ns.hera.com.        600    IN    A    192.168.16.100

    ;; Query time: 1 msec
    ;; SERVER: 127.0.0.1#53(127.0.0.1)
    ;; WHEN: Thu Feb  5 01:07:57 2015
    ;; MSG SIZE  rcvd: 79

★测试主从同步

  • 修改主上的配置文件(/var/named/hera.com.zone)后要改一下第三行的数字串,而且这个数字串只能改大不能改小,只有这个数字变化了,才可以让从自动跟着变化

  • 编辑配置文件 vim /var/named/hera.com.zone

    在最后添加一行内容,并修改第三行的数字串2015020401

    test             IN      A        1.1.1.1

  • 重启named服务:/etc/init.d/named restart

  • 通过测试我们发现从同步主上的数据更改会有延迟,我测试的时候即使重启了从上的named服务hera.com.zone文件中还是没有及时显示我们之前添加的test

  • 为了避免从同步的特别慢,我们可以在主上做一个特殊操作

    编辑主上的/etc/named.conf 文件,在hera.com的zone中加入下面两行内容

    notify yes;                       <== 此两行内容的作用相当于主把做的相关改动主动推送
    also-notify { 192.168.16.106; };        到从上去

  • 这时候我们再进行测试,会发现从这时候从同步的很快了


dnspod