一.配置正向解析
1.关闭防火墙和Selinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
getenforce
2.安装DNS服务器的包
yum install bind-chroot -y
(因为我之前已经装过了,因此提示Nothing to do!)
主配置文件/etc/named.conf
区域配置文件/etc/named.rfc1912.zones,用来保存域名和IP地址对应关系
数据配置文件目录/var/named/,用来保存域名和IP地址对应关系的所在位置
当我们安装完成后就可以对相应的配置文件进行修改了
3.编辑主配置文件
首先我们来修改它的主配置文件
vi /etc/named.conf
将图中箭头所指的地方改为any并把ipv6的注释掉
listen-on port 53 { any; };表示服务器上的所有IP地址均可提供DNS域名解析服务
allow-query {any; }; 表示允许所有人对本服务器发送DNS查询请求
最后我们使用named-checkconf 这个命令检测语法来检测我们修改的配置文件有没有什么问题
重启服务
4.编辑区域配置文件
区域配置文件用来保存域名和IP地址对应关系的所在位置,在这个文件中,定义了域名与IP地址解析规则保存的文件位置以及服务类型等内容,而没有包含具体的域名、IP地址对应关系等信息。服务类型有三种,分别为hint(根区域)、master(主区域)、slave(辅助区域),其中常用的master和slave指的就是主服务器和从服务器
vi /etc/named.rfc1912.zones
我们可以在该文件中直接新建一个区域或者修改原有的区域,格式为:
zone "区域名称" IN {
type master|slave|forward; //注意每个语句要以分号结尾
file "ZONE_NAME.zone";
}; //注意要以分号结尾
这是我写的:
配置完后重启服务
5.创建区域数据文件(/var/named/***.zone)
从/var/named目录中复制一份正向解析的模板文(named.localhost),然后把域名和IP地址的对应数据填写在数据配置文件中并保存。在复制时记得加上-a参数,这可以保留原始文件的所有者、所属组、权限属性等信息。区域数据文件中通常只包含宏定义和资源记录,且第一个记录必须是SOA记录,格式如下:
name [TTL] IN RR_Type value
每个字段的含义,对应的值,以及要求在上篇博客(一点就炸,不信你试试)中已经提到过,此处就不再多说
cd /var/named
cp -a named.localhost zw.com.zone
vi zw.com.zone
配置完成后我们可以使用相关命令(named-checkconf、named-checkzone)测试配置文件及区域文件是否存在语法错误,没有的话,重启服务,正向解析就完成啦!
6.测试
使用nslookup命令对我们配置好的DNS服务器进行检测
发现并没有使用我们自己配置的DNS服务器,找问题,最后发现/etc/resolve文件中的首选DNS服务器IP没有修改,改成我们刚才自己配的DNS服务器,即我们本机的IP
然后再进行测试
OK!
二.配置反向解析
正向解析与反向解析各自采用不同的解析库,一台DNS服务器可以只有正向解析库或只有反向解析库,也可以同时提供正向/反向解析。反向解析的作用是将用户提交的IP地址解析为对应的域名信息,它一般用于对某个IP地址上绑定的所有域名进行整体屏蔽,屏蔽由某些域名发送的垃圾邮件
1.修改区域配置文件/etc/named.conf,添加反向解析区域配置文件
反向区域的区域名称格式:
ReverseIP.in-addr.arpa.
例如我的IP为192.168.62.136, 就写成62.168.192.in-addr.arpa
vi /etc/named.rfc1912.zones
2.创建反向区域解析文件
从/var/named目录中复制一份反向解析的模板文件(named.loopback),然后把对应数据填写在数据配置文件中并保存。跟配置正向解析一样,在复制时记得加上-a参数,这可以保留原始文件的所有者、所属组、权限属性等信息。
资源记录的格式如下:
name [TTL] IN RR_Type value
配置完成后重启服务,并无异常
3.测试
三.DNS高级之主从服务——配置辅助DNS服务器
1.装包并编辑主配置文件
yum install bind -y
vi /etc/named.conf
2.编辑辅助DNS区域配置文件
(1)区域的定义:
zone “区域名称” IN {
type slave; #区域类型为辅助
file “slaves/ZONE_NAME.zone”; #区域文件必须保存在slaves目录下,放在其他目录没有权限
masters { #指出主服务器是谁,注意:花括号前后要有一个空格
MASTER_DNS_IP;
};
};
注意:辅助DNS是针对区域来说的;如果有多台DNS服务器,必须为每个DNS服务器建立NS记录,否则主DNS将不向其发送通知
(2)定义辅助DNS的正向与反向域
vi /etc/named.rfc1912.zones
添加以下内容或在原有内容上修改
3.在主DNS服务器上做相应配置,使主辅服务器之间能进行区域传送
编辑主DNS服务器的区域配置文件,在主服务器的区域配置文件中允许该从服务器的更新请求,即修改allow-update {允许更新区域信息的主机地址;};参数,然后重启主服务器的DNS服务程序
vi /etc/named.conf
systemctl restart named
4.检测
重启服务后,查看日志或者通过systemctl status named
查看named服务的状态可以查看主辅DNS之间是否进行了区域传送
注意:主DNS的防火墙如果没有关闭的话,是不能进行区域传送的
四.总结
1.主DNS的防火墙要关闭以后才可以进行区域传送
2.很多地方都需要写ip地址,要仔细一点,不要写错
3.当主机的zone文件发生变更后,需要更新版本号,这样才可以被同步到辅助DNS服务器中
4.确保主配置文件和各区域解析库文件的权限为640,属主为root,属组为named