Linux中利用bind实现DNS主从服务器的搭建

一、bind简介

  • Linux中通常使用bind来实现DNS服务器的架设,bind软件由isc(www.isc.org)维护。在yum仓库中可以找到软件,配置好yum源,直接使用命令 yum install bind* 就可以安装,监听窗口为53。
  • bind的主要配置文件为/etc/named.conf,此文件主要用于配置区域,并指定区域数据库文件名称。区域数据库文件通常保存于/var/named/目录下,用于定义区域的资源类型。

二、主从DNS服务器的认知与项目准备

主从服务器,并不是当主的dns服务器挂掉后,(dns服务自动转向辅助dns服务器)客户端还能继续解析;当我把主dns停掉的时候,若客户端只设一个dns服务器,解析是失败的。但当我将客户端的dns服务器切换到从dns的ip上后,解析是正常的。说明,从服务器只是同步了主服务器解析域的文件。

项目准备:

系统:CentOS 7版本的服务器与客户机

  • 准备两台DNS服务器与一台DNS客户机:
    DNS-server1 :主服务器,IP地址192.168.100.101
    DNS-server2 :从服务器,IP地址192.168.100.102
    DNS-client:客户机,IP地址192.168.100.106

  • 相关bind软件包与环境:
    bind-libs.x86_64 ,提供库文件
    bind-utils.x86_64 ,提供工具包
    bind.x86_64 ,提供主程序包

三、搭建DNS主从服务器

(1)登录shell平台,在工具栏中点击发送键输入到所有会话(3台虚拟机)
命令同步

[root@DNS_S1 ~]# systemctl stop firewalld   ## 关闭防火墙
[root@DNS_S1 ~]# systemctl disable firewalld
[root@DNS_S1 ~]# setenforce 0              ## 关闭核心防护
[root@DNS_S1 ~]# vi /etc/selinux/config

Linux中利用bind实现DNS主从服务器的搭建_第1张图片

[root@DNS_S1 ~]# vi /etc/resolv.conf ##修改DNS服务器地址(也是需在3台设备上设置)
nameserver 192.168.100.101   ## 主
nameserver 192.168.100.102   ## 从

(2)在DNS服务器安装bind软件包

[root@DNS_S1 ~]# yum -y install bind*   ## DNS主从两台服务器上均需要安装

DNS主服务器上:

建立主配置文件

[root@DNS_S1 ~ ]#vim /etc/named.conf
options {
	......  ## 省略部分信息
    listen-on port 53 { 192.168.100.101; };   #监听服务器的IP地址
    allow-query       { any; };         #所有的客户端都可以查询区域数据库,实现解析 ,也可以设置某一网段
}
[root@DNS_S1 ~]# vi /etc/named.rfc1912.zones	##告诉DNS服务器的正反向解析文件的位置
...... 	//省略部分信息
//添加以下部分
zone "aa.com" IN {                      
        type master;                  			//主服务器
        file "aa.com.zone";          			//完整文件名      
		allow-transfer { 192.168.100.102; };	//允许把文件传递给备服务器
        also-notify { 192.168.100.102; };
};
zone "100.168.192.in-addr.arpa" IN {
        type master;                         
        file "aa.com.local";
        allow-transfer { 192.168.100.102; };
};

查看配置

Linux中利用bind实现DNS主从服务器的搭建_第2张图片

查看文件、拷贝模板、创建区域文件(主服务器上操作)

[root@DNS_S1 ~]# cd /var/named/
[root@DNS_S1 named]# ls -lh

Linux中利用bind实现DNS主从服务器的搭建_第3张图片

[root@DNS_S1 named]# cp -p named.localhost aa.com.zone
[root@DNS_S1 named]# cp -p named.loopback aa.com.local

编辑配置解析文件

[root@DNS_S1 named]# vi aa.com.zone  ##设置正向解析文件

Linux中利用bind实现DNS主从服务器的搭建_第4张图片

[root@DNS_S1 named]# vi aa.com.local ##设置反向解析文件

Linux中利用bind实现DNS主从服务器的搭建_第5张图片

[root@DNS_S1 named]# systemctl restart named

在DNS主服务上解析测试:

[root@DNS_S1 named]# nslookup www.aa.com  
[root@DNS_S1 named]# nslookup ftp.aa.com
[root@DNS_S1 named]# nslookup mail.aa.com

Linux中利用bind实现DNS主从服务器的搭建_第6张图片

DNS从服务器上操作如下:

修改主配置文件

[root@DNS_S2 ~]# vi /etc/named.conf
options {
	......  ## 省略部分信息
    listen-on port 53 { 192.168.100.102; };   #监听该服务器的IP地址
    allow-query       { any; };         #所有的客户端都可以查询区域数据库,实现解析 ,也可以设置某一网段
}

区域设置

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

......  ## 省略部分信息
//添加以下部分
//正向解析
zone "aa.com" IN {
        type slave;                       	//从服务器                                                          
        masters { 192.168.100.101; };       //主服务器ip
        allow-notify { 192.168.100.101; };  //允许主服务器通知
        file "slaves/aa.com.zone";  		//通告正向解析文件下载到的文件位置
};
//反向解析
zone "6.168.192.in-addr.arpa" IN {
        type slave;
        masters { 192.168.100.101; };
        allow-notify { 192.168.100.101; };                                
        file "slaves/aa.com.local";
};

开启named服务

[root@DNS_S2 ~]# systemctl restart named	##开启服务后,在slaves目录下会生成两个文件

在这里插入图片描述
在DNS从服务上解析测试:

[root@DNS_S2 slaves]# nslookup www.aa.com
[root@DNS_S2 slaves]# nslookup ftp.aa.com
[root@DNS_S2 slaves]# nslookup mail.aa.com

Linux中利用bind实现DNS主从服务器的搭建_第7张图片

四、客户端进行验证

[root@client ~]# nslookup www.aa.com
[root@client ~]# nslookup ftp.aa.com

Linux中利用bind实现DNS主从服务器的搭建_第8张图片
若此时中断DNS_S1 主服务器

[root@DNS_S1 named]# systemctl stop named 	##主服务器上操作该命令

在客户端测试,能再次查看能看到备DNS服务器信息

[root@client ~]# nslookup www.aa.com
[root@client ~]# nslookup ftp.aa.com

Linux中利用bind实现DNS主从服务器的搭建_第9张图片
此时表示,DNS主从服务器搭建完成

你可能感兴趣的:(linux)