一、主DNS的搭建,通过bind包实现正向解析和反向解析

        1、安装bind包

        [root@localhost yum.repos.d]# clear

        [root@localhost yum.repos.d]# yum -y install bind

       

       [root@localhost ~]# rpm -qa |grep bind

         rpcbind-0.2.0-11.el6.x86_64

         bind-9.8.2-0.37.rc1.el6.x86_64

         bind-libs-9.8.2-0.37.rc1.el6.x86_64

         samba-winbind-3.6.23-20.el6.x86_64

         bind-utils-9.8.2-0.37.rc1.el6.x86_64

         samba-winbind-clients-3.6.23-20.el6.x86_64

         ypbind-1.20.4-31.el6.x86_64

         PackageKit-device-rebind-0.5.8-25.el6.x86_6

         

         2、修改named.conf配置文件

         [root@localhost ~]# vim /etc/named.conf 

         DNS服务_DNS 服务搭建

       listen-on port 53 { localhost; };  默认是127.0.0.1,改成              localhost,监听本机IP

       allow-query     { any; }; 默认是localhost,只允许本机查询,改为           any,允许所有查询

       dnssec-enable no;

       dnssec-validation no; 这两项默认开启,都给关闭


         3、修改区域配置文件并检查配置文件

         [root@localhost ~]# vim /etc/named.rfc1912.zones 

         DNS服务_DNS 服务搭建_02

        增加区域 qq.com,文件格式以前面配置格式写

        type master;主区域

        file “qq.com”;这个名称要和区域数据库文件一样,路径在 /var/named/

        DNS服务_DNS 服务搭建_03

        用此命令检查配置文件,没有报错,文件语法没出问题


        4、新建区域数据库

        [root@localhost ~]# vim /var/named/qq.com

        DNS服务_DNS 服务搭建_04


        TTL:可从全局继承    @:可引用当前区域名称

        SOA:起始授权记录,一个数据库有且仅有一个SOA记录,必须写在数据库第一条

        NS:用于标明当前区域的DNS服务器

        A:IPv4地址正向解析,FQDN--IP

        CNAME:别名记录

        

        5、检查区域数据库,重启named服务,测试域名解析是否成功

        DNS服务_DNS 服务搭建_05

        数据文件OK,说明格式正确

        DNS服务_DNS 服务搭建_06

        重启named服务,关闭防火墙

        

        DNS服务_DNS 服务搭建_07

        DNS服务_DNS 服务搭建_08


        通过dig工具和ping域名,能够解析成功,正向DNS服务搭建完成


        6、搭建反向DNS服务,反向解析很少用,没有反向解析,用IP地址解析域名,显示超时

        [root@localhost ~]# clear

        [root@localhost ~]# nslookup

        > www.qq.com

        Server:172.16.18.5

        Address:172.16.18.5#53


        www.qq.comcanonical name = web.qq.com.

        Name:web.qq.com

        Address: 172.16.18.6

        > 172.16.18.6

;;       connection timed out; trying next origin

;;       connection timed out; no servers could be reached

        

         7、在区域配置文件增加反向区域

         [root@localhost ~]# vim /etc/named.rfc1912.zones 

         DNS服务_DNS 服务搭建_09


        8、新增反向解析数据库文件

        [root@localhost named]# vim 172.16.18.zone

        

        DNS服务_DNS 服务搭建_10

        PTR:反向解析记录。IP--FQDN


        9、检查配置文件,并且重读配置文件

        DNS服务_DNS 服务搭建_11

        DNS服务_DNS 服务搭建_12


        经过测试,反向解析成功,反向DNS搭建成功。


    二、主从DNS搭建

      1、在另外一个虚拟机上安装bind包

        [root@localhost ~]# yum -y install bind


        2、修改named.conf配置文件

        [root@localhost ~]# vim /etc/named.conf

        DNS服务_DNS 服务搭建_13

        allow-query     { any; }; 允许所有主机查询

        allow-transfer  { none;}; 不允许区域传输,加上这条可以防止其他机器从这台机器上抓数         据库文件

        

        在主DNS上也的加上一条策略

        DNS服务_DNS 服务搭建_14

        allow-transfer { 172.16.18.3;}; 只允许从DNS在这上面抓取数据库文件


        3、在区域配置文件添加区域qq.com

        DNS服务_DNS 服务搭建_15

        zone "qq.com"  这个区域和主DNS必须一致

        type slave; 类型为从区域

        masters { 172.16.18.5;}; 主DNS的IP地址

        file "slaves/qqbackup.com"; 数据库文件存放位置 /var/named/slaves/


        4、在主DNS区域数据库文件添加NS记录

        DNS服务_DNS 服务搭建_16

        

        5、重启named服务,从DNS将从主DNS上抓取区域数据库文件

        [root@localhost slaves]# service named restart

        DNS服务_DNS 服务搭建_17

        


        6、把主DNS停止,客户端上在添加备用DNS172.16.18.3 ,在测试这些域名能否解析

        [root@localhost named]# service named stop

        Stopping named: 

        DNS服务_DNS 服务搭建_18

        通过测试,主DNS已经无法解析,备用DNS可以解析,主从DNS搭建成功,但备用DNS无法修改数         据库,只能通过主DNS推送或者自己抓取数据库文件,如果主DNS上添加新纪录,必须修改版本         号,主DNS才能把最新的数据库文件推送到备用DNS上来。

        

        DNS服务_DNS 服务搭建_19

        DNS服务_DNS 服务搭建_20


    三、子域授权

        1、同一台机器上创建子域

            [root@localhost ~]# vim /etc/named.rfc1912.zones

             zone "sport.qq.com" IN {

                type master;

                file "sport.qq.com";

                };


               创建子域配置文件               

               DNS服务_DNS 服务搭建_21

               

               root@localhost named]# rndc reload  重读配置文件并测试


               DNS服务_DNS 服务搭建_22


               子域解析成功,子域授权完成

        

        2、不同机器上创建子域

            [root@localhost named]# clear

               [root@localhost named]# vim qq.com  修改区域数据库文件

               DNS服务_DNS 服务搭建_23

        

               在另外一个机器上区域配置里创建子区域

               [root@localhost ~]# vi /etc/named.rfc1912.zones

                zone "jok.qq.com" IN {

                type master;

                file "jok.qq.com";

                };


                创建子区域数据库文件

                [root@localhost ~]# vim /var/named/jok.qq.com 

                DNS服务_DNS 服务搭建_24


                在子域和父域上重读配置文件,并进行测试

                [root@localhost named]# rndc reload

                 server reload successful

                DNS服务_DNS 服务搭建_25

                通过测试,父域将域名委派给子域解析,解析成功。

                两种情况的子域授权已经全部OK。


      四、智能DNS view

          1、安装bind

             [root@localhost named]# yum -y install bind

            2、修改named.conf配置文件

            acl "host1" {              定义主机1的acl

                        172.16.18.3;

            };


            acl "host2" {            定义主机2的acl   

            172.16.18.7;

            };   这两个acl要定义在options前面

            options {

            listen-on port 53 { localhost; };

            listen-on-v6 port 53 { ::1; };

            directory       "/var/named";

            dump-file       "/var/named/data/cache_dump.db";

            statistics-file "/var/named/data/named_stats.txt";

            memstatistics-file "/var/named/data/named_mem_stats.txt";

            allow-query     { any; };

            recursion yes;


            dnssec-enable no;

            dnssec-validation no;


            

            view "host1view" {

                match-clients { 172.16.18.3;};

                include "/etc/host1.zones";  主机1区域文件名称及路径

            }; 


            view "host2view" {

                match-clients { 172.16.18.7;};

                include "/etc/host2.zones";  主机2区域文件名称及路径

            };


            view "otherview" {

                match-clients { any;};

                include "/etc/named.rfc1912.zones";  其他主机

            };

            include "/etc/named.root.key";


        3、创建区域配置文件

        root@localhost named]# vim

        zone "jok.com" {

            type master;

            file "host1.com";

        };

        [root@localhost named]# vim /etc/host2.zones 

        

        zone "jok.com" {

            type master;

            file "host2.com";

        };


        4、创建区域数据库

        [root@localhost named]# vim host1.com  主机1数据库文件

        

        $TTL    1D

        @       IN      SOA     ns1.jok.com.    admin.jok.com.  (

                                2016070804

                                1D

                                5M

                                1W

                                2H

        )

                IN      NS      ns1

        ns1     IN      A       172.16.18.5

        web     IN      A       1.1.1.1

        www     IN      CNAME   web


        [root@localhost named]# vim host2.com   创建主机2数据库文件

        

        $TTL    1D

        @       IN      SOA     ns1.jok.com.    admin.jok.com.  (

                                2016070804

                                1D

                                5M

                                1W

                                2H

)

                IN      NS      ns1

        ns1     IN      A       172.16.18.5

        web     IN      A       2.2.2.2

        www     IN      CNAME   web


        5、加载配置文件并测试

        

        [root@localhost named]# rndc reload

        server reload successful

        

        在主机172.16.18.3上用dig工具测试

        

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


;         <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> -t A www.jok.com

;;         global options: +cmd

;;         Got answer:

        ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5110

;        ; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1


    ;;         QUESTION SECTION:

        ;www.jok.com. IN A


    ;; ANSWER SECTION:

        www.jok.com. 86400 IN CNAME web.jok.com.

        web.jok.com. 86400 IN A 1.1.1.1


        ;; AUTHORITY SECTION:

        jok.com. 86400 IN NS ns1.jok.com.


        ;; ADDITIONAL SECTION:

        ns1.jok.com.


        86400 IN A 172.16.18.5


        在主机172.16.18.7上用dig工具测试

        

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


        ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> -t A www.jok.com

        ;; global options: +cmd

        ;; Got answer:

        ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7901

        ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1


        ;; QUESTION SECTION:

        ;www.jok.com. IN A


        ;; ANSWER SECTION:

        www.jok.com. 86400 IN CNAME web.jok.com.

        web.jok.com. 86400 IN A 2.2.2.2


        ;; AUTHORITY SECTION:

        jok.com. 86400 IN NS ns1.jok.com.


        ;; ADDITIONAL SECTION:

        ns1.jok.com. 86400 IN A 172.16.18.5


       通过上面测试,主机1访问www.jok.com解析的是1.1.1.1,主机2访问www.jok.com解析的是2.2.2.2,实现了view定义的要求,view搭建完成。

        

  


    




        

        

    

};