一、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
[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; };
};
查看配置
查看文件、拷贝模板、创建区域文件(主服务器上操作)
[root@DNS_S1 ~]# cd /var/named/
[root@DNS_S1 named]# ls -lh
[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 ##设置正向解析文件
[root@DNS_S1 named]# vi aa.com.local ##设置反向解析文件
[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
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
四、客户端进行验证
[root@client ~]# nslookup www.aa.com
[root@client ~]# nslookup ftp.aa.com
若此时中断DNS_S1 主服务器
[root@DNS_S1 named]# systemctl stop named ##主服务器上操作该命令
在客户端测试,能再次查看能看到备DNS服务器信息
[root@client ~]# nslookup www.aa.com
[root@client ~]# nslookup ftp.aa.com
此时表示,DNS主从服务器搭建完成