今天给大家介绍如何搭建一个DNS服务,以下图为例,当一个小区客户端去访问www.jiabing.com时,DNS需要如何去搭建。

        wKiom1nhyaqSFR5QAABK2Yw0Arw458.jpg

搭建前需要先把每台服务器的防火墙和SELINUX关闭。

关闭防火墙:iptables -F

查看SELINUX是否关闭:getenforce    没有关闭需要关闭:setenforce 0

除了客户端,别的都需要安装bind包:yum install bind

启动服务:service named start

rpm - -import  RPM-GPG-KEY-...   导出公钥(新安装的系统需要执行,导出公钥后就可以安装bind包了)

一、先配置web服务器(因为每配置一个服务器都需要去测试一下,容易排错)

    在/var/www/html/下创建一个index.html文件

    vim index.html内容如下

        wKiom1nhyfGzZh9mAAAE4yTjbTg679.png

        顺便再把httpd服务启动起来:service httpd start

        此时web服务器已经配好

二、配置主DNS服务器

    配置DNS主配置文件/etc/named.conf

    vim /etc/named.conf内容如下:

        wKiom1nhyiHxBhJmAABYVYZXp0E027.jpg

    将53端口绑定到本地地址

    linsten-on port 53 { localhost; };

    允许所有人通过53端口连接本机

        allow-query { any; };

    只允许172.17.166.166从本机抓取数据库

        allwo-transfer { 172.17.166.166;};

    配置/etc/named.rfc1912.zones文件,添加一个域

    vim /etc/named.rfc1912.zones内容如下:

        wKioL1nhx5jiX5-IAAAK4616fNQ481.png

    在/var/named/下创建一个与/etc/named.rfc1912.zones文件里面配置域名字一样的文件后面加个.zone

    vim /var/named/jiabing.com.zone内容如下:

        wKiom1nhymmh_CehAAAaGiBBFrQ469.png

        前面是SOA记录,

    后面需要配置两个NS记录,对应的两个DNS服务器地址,一个指向自己172.17.177.177,另一个只想从DNS服务器172.17.166.166

    最后配置域名地址并设置一个别名,ip地址指向web服务器

    此时主DNS已经配置完毕,需要用dig www.jiabing.com @172.17.177.177去测试一下自己。(如果测试不成功的话,需要把DNS指向自己,因为还没有配置根DNS

三、配置从DNS服务器(当主DNS宕机的时候,从DNS可以工作)

    同上需要配置主配置文件/etc/named.conf

    vim /etc/named.conf内容如下:

         wKioL1nhx-iBL8-cAABQSFWIOmo664.jpg

    将53端口绑定到本地地址

    linsten-on port 53 { localhost; };

    允许所有人通过53端口连接本机

        allow-query { any; };

    不允许任何人截取DNS数据库

        allow-transfer {  none;};

    从服务器配置只需要在/etc/named.rfc1912.zones里面加个条件就行

    vim /etc/named.rfc1912.zones内容如下:

         wKiom1nhysSxCs1YAAAMQjmPSaM715.png

           指定类型

                type slave

           指定主DNSip地址

                masters { 172.17.177.177;};

           文件自动生成路径

                file slaves/jiabing.com.zone

    此时从DNS已经配置成功

    rdnc reload同步一下就直接生成/var/named/slaves/jiabing.com.zone文件

    同时dig www.jiabing.com @172.17.166.166测试一下看能否访问

四、配置comDNS服务器

    配置DNS主配置文件/etc/named.conf

    vim /etc/named.conf内容如下:

        wKioL1nhyEixN0CNAACAuWrsCWw674.png

        我们也可以把listen-on port 53 { 127.0.0.1; };allow-query { localhost;};注释掉,那样就所有IP地址都监听53端口。

        如果是转发的DNS服务器需要更改dnssec-enable yesdnssec-validation yes换成dnssec-enable no   dnssec-validation no

    配置/etc/named.rfc1912.zones文件

        wKiom1nhyzCC8SAhAAAG21Ubi5E856.png

        添加一个com域,类同于上面配置主DNSmagedu域一样

    /var/named/下需要配置一个com.zone域文件

    vim /var/named/com.zone内容如下:

        wKiom1nhy5DyY6tAAABHnJXad8c698.jpg

        前面是SOA记录,类同于magedu.zone域。此时需要配置三个NS,一个dns1IP地址指向自己172.17.254.77,一个dns2的地址指向主DNS服务 器172.17.177.177,另一个dns3的地址指向从DNS服务器172.17.166.166 

    此时comDNS已经配置完毕

    dig www.jiabing.com @172.17.254.77 测试一下是否能访问

五、配置根DNS服务器

    配置/etc/named.conf文件

    vim /etc/named.conf内容如下:

        wKiom1nhy8XixWIRAACAuWrsCWw039.png

        wKioL1nhyR7Sjbi-AAAGRYDQCWU076.png

        此时根文件就是自己,所以要配置一个根域,(因为根域直接就在/etc/named.conf中,所以就不用去/etc/named.rfc1912.zones里面更改了)

    配置/var/named/root.zone

    vim /var/named/root.zone内容如下:

        wKiom1nhy__DiQ-HAAAzRzUDyRQ633.jpg

        上面的SOA类同。需要有两个NS记录,一个dns1指向自己172.17.133.133,另一个指向子域com172.17.254.77

    配置/var/named/named.ca文件(因为自己当根,所以只有一个根服务器)

    vim /var/named/named.ca内容如下:

        wKiom1nhzCWS4WnyAAAYTIHHYa4024.jpg

并且这个文件需要给comDNS   主机DNS   DNS   小区DNS,都需要更改/var/named/named.ca和根下的/var/named/named.ca一样。

六、配置小区DNS服务器

    只需要编辑/etc/named.conf文件

        wKioL1nhyZKw7TjEAACAuWrsCWw021.png

    配置内容同上

七、配置客户端DNS

    vim /etc/resolv.conf内容如下:

        wKiom1nhzHCQqeo9AAAKsvN8mEY364.png   

            将DNS指向小区DNSIP地址

    此时客户端就能通过网页访问www.jiabing.com 了,到此一个DNS大框架也就配置成功。。

在以上实验中如果哪一步测试失败,失败原因可能是一下几种

1NXDOMAIN   不存在的域名

    查看/var/named/下文件是否写错。

2REFUSED     拒绝访问

    查看网络是否通

3no servers could be reached   DNS不可到达

    查看服务是否开启

4SERVFAIL   

    可能是权限的问题,或者别的问题,需要检查权限

5、检查防火墙和SELINUX