DNS正向反向解析与主从复制
环境:
VMware Workstation 12 pro, 配置相同的2台CentOS 7.4 1708,bind 9.9.4,关闭selinux清空iptable规则,主从配置要注意时间同步,否则无法复制。
/var/named/下的文件要注意权限问题!!!!!!!
基础知识:
DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。
BIND (Berkeley Internet Name域)是DNS的一个实现。(域名系统)协议。绑定包括一个DNS服务器(命名),将主机名解析为IP地址;一个解析器库(当与DNS交互时应用程序的例程);和用于验证DNS服务器是否正常运行的工具。
正向解析:
1.安装bind程序
yum install bind -y
2.修改配置文件:
vim /etc/named.conf
#这里将监听端口和ip注释掉就好,alow-query配置改为any,允许任何人到本机做dns查询,默认是本机,这里也可以设置为网段
#recursion 这里根据实际需求去配置是否允许递归查询
#dnssec注释掉,安全拓展比较麻烦,不会影响到本次实验的配置
#这个文件内定义了域的设定,同时也给出了很多模板,可以参考着写自己的域配置
vim /etc/named.rfc1912.zones
这里在结尾补上下面的配置参数:注意分号和空格,否则会出现错误,域名和ip看各种情况去配置。
zone "douma.com" IN {
type master;
file "douma.com.zone";
allow-transfer { 192.168.238.132; };
};
配置完后要检查文件是否符合语法,有报错就去修改,没有的话证明语法无误,但是它无法检查ip和域名的错误。
named-checkconf
4.编写解析库文件
bind的解析库文件存放在 /var/named/下,在对应目录下创建与之前named.rfc1912.zones文件中定义的文件名相同的文件并且写入解析内容
$TTL 86400
$ORIGIN douma.com.
@ IN SOA ns1.douma.com. admin.douma.com. (
2018041901
1H
10M
1W
1D )
IN NS ns1
IN NS ns2
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 192.168.238.131
ns2 IN A 192.168.238.132
mx1 IN A 192.168.238.131
mx2 IN A 192.168.238.110
www IN A 192.168.238.131
ftp IN CNAME www
* IN A 192.168.238.134
smtp IN A 192.168.238.135
named-checkzone "douma.com" /var/named/douma.com.zone
返回OK证明不存在问题。
5.启动named服务
#之前未启动的话执行
systemctl start named
#之前已经启动话执行
systemctl restart named
查看named的运行状况
#查看53端口是否在监听中
ss -tnl
6.正向解析基本完成,可以使用host命令,dig命令进行检测,正常解析的话证明正向解析成功。
host -t A www.douma.com 192.168.238.131
dig -t A www.douma.com @192.168.238.131
反向区域解析
1.由于有着之前的正向解析的配置,因此,反向解析的话直接修改/etc/named.rfc1912.zones就好。记得要检查语法。
vim /etc/named.rfc1912.zones
添加以下内容
zone "238.168.192.in-addr.arpa" IN {
type master;
file "192.168.238.zone";
allow-transfer { 192.168.238.132; };
};
反向解析的配置写法
区域名称:网络地址反写.in-addr.arpa.
192.168.238. --> 238.168.192.in-appr-arpa.
定义区域
zone "ZONE_NAME" {
type {master | slave | forward };
file "网络地址.zone"
};
2.编辑解析库文件,路径也在/var/named下,新建文件名仍要和named.rfc1912.zones内定义的文件名同步,不需要MX和A,以及AAAA记录,以PTR记录为主。完成后同样需要检查语法。
$TTL 86400
$ORIGIN 238.168.192.in-addr.arpa.
@ IN SOA ns1.douma.com. admin.douma.com. (
2018041901
1H
10M
1W
1D )
IN NS ns1.douma.com.
IN NS ns2.douma.com.
131 IN PTR ns1.douma.com.
132 IN PTR ns2.douma.com.
132 IN PTR mx1.douma.com.
110 IN PTR mx2.douma.com.
131 IN PTR www.douma.com.
#这里使用rndc指令,之前systemctl也可以
rndc reload
4.检查配置是否可以正常解析
host -t ptr 192.168.238.131 192.168.238.131
dig -x 192.168.238.131 @192.168.238.131
dns主从复制:
刚才配置的centos主机基本无需修改,只需要在named.rfc1912.zones 的域配置段内加入allow-transfer字段,运行区域传送,这里之前就写入了,因此无需再次修改。
axfr:
全量传输时,从域名服务器从主域名服务器上请求zone文件,poll的时间间隔由SOA记录中的refresh标签定义。请求zone文件的过程是从域名服务器向主域名服务器发送查询来实现,如果主域名服务器中SOA记录中的序列号(serial number标签定义)大于从域名服务器SOA记录的序列号,从域名服务器就会向主域名服务器发送全量传输请求。正式由于axfr会传送全部的解析信息,因此要特别注意,dns的allow-transfer参数防止,允许的范围过大,导致解析的信息泄露。
在另一台centos主机进行从dns服务器的配置:
1.检测主服务器是否允许axfr。
dig -t axfr douma.com @192.168.238.131
2.安装bind,修改/etc/named.conf配置文件,与主dns的配置相同即可,记得执行语法检查。
3.修改/etc/named.rfc1912.zones配置文件。
type字段设置为备份模式slave,masters字段指明主dns服务器ip地址,由于从服务器是从主备份解析库文件,因此它无需手动创建库文件,指明文件路径就好,这里由于named的默认工作目录是在/var/named/,而从服务器备份的文件在slaves下,因此在file字段要写清楚路径。完成后检查域文件语法。
vim /etc/named.rfc1912.zones
zone "douma.com" IN {
type slave;
file "slaves/douma.zone";
masters { 192.168.238.131; };
};
zone "238.168.192.in-addr.arpa" IN {
type slave;
file "slaves/238.168.192.zone";
masters { 192.168.238.131; };
};
4.完成后载入配置文件启动服务,查看/var/log/messages就可以看到传送的进行。传送完成后在从服务下会出现复制过来的解析库文件。
systemctl start named
vim /va/log/messages
host -t A www.douma.com 192.168.238.132
dig -t A www.douma.com @192.168.238.132
host -t ptr 192.168.238.131 192.168.238.132
dig -x 192.168.238.131 @192.168.238.132
注意:
修改主dns上的解析库文件后要手动修改序列号,这样从服务器才能正确去复制,更改后的信息。这里使用的增量修改,就是指传送改变了的内容。
主从服务器时间必须同步
主从服务器时间必须同步
主从服务器时间必须同步