1.背景介绍 实际环境中为了避免单点故障,DNS服务器是由一组服务器组成,每一个服务器上都有若干个区域,不同服务器上的相同区域分为主和从两种角色。由于正向和反向是不同的区域,所以多台服务器间的相同区域可以互为主从或者一主多从,下图为例进行演示。
2.DNS主从原理 下图所示为主辅DNS服务器数据同步的过程,首先master DNS服务器每次修改完成并重启服务后,将传送notify给所有的slave DNS服务器。slave DNS服务器将查询master服务器的SOA记录,master DNS服务器收到请求后将SOA记录发送给Slave DNS服务器,Slave DNS服务器收到后同时对比查询结果中的serial值,如果serial值不大于本机的话将结束数据同步过程;但是如果serial值大于本机的话,slave DNS将发送zone transfer请求要求(AXFR/IXFR)。Master响应zone transfer请求并传送结果,直到整个slave更新完成。
3.DNS误区 DNS主从之间只会进行解析记录的同步,当主DNS出现故障时,从DNS不会把ip切换为主DNS的ip。可以在客户端填写多个DNS地址,这样达到冗余的作用。
1.主从都安装
yum -y install bind bind-chroot bind-utils
安装包作用 bind : 提供了域名服务的主要程序及相关文件 bind-utils : 提供了对DNS服务器的测试工具程序(如:nslookup、dig etc) bind-chroot : 为bind提供一个伪装的根目录以增强安全性;
2.修改主配置文件
vim /etc/named.conf
options {
listen-on port 53 { any; };
#listen-on-v6 port 53 { ::1; }; #注销或删除
allow-query { any; }; #允许所有ip访问
forwarders { 219.141.136.10; }; #用于缓存转发,可不写
}
3.在文件行尾添加
cd /etc
cp -p named.rfc1912.zones named.rfc1912.zones.bak
vim named.rfc1912.zones
zone "rzsj.com" IN { #设置正向DNS区域名称
type master;
file "rzsj.com.zone"; /#设置对应的正向区域地址数据库文件
allow-transfer {192.168.18.41;}; #允许哪些从dns下载数据
};
4.检测文档,没有消息就是好消息
named-checkconf
5.建立区域文件,正向解析配置文件:
cd /var/named
cp -p named.localhost rzsj.com.zone
vim rzsj.com.zone
$TTL 1D
@ IN SOA @ root (
0 ; serial #每次同步要手动+1
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.rzsj.com. #一定带.
ns1 A 192.168.1.184
ns2 A 192.168.1.185
6.重新加载配置
systemctl restart named
systemctl enable named`
7.进行测试dns是否运行
nslookup ns2.rzsj.com 192.168.1.184
8.修改从配置文件
vim /etc/named.conf
options {
listen-on port 53 { any; };
#listen-on-v6 port 53 { ::1; }; #注销或删除
allow-query { any; };
}
9.行尾添加
cd /etc
cp -p named.rfc1912.zones named.rfc1912.zones.bak
vim named.rfc1912.zones
zone "rzsj.com" IN {
type slave; #设置为从
masters { 192.168.1.184; }; #主dns地址
file "slaves/rzsj.com.zone"; #放到slaves下
};
10.检测配置,没反应就正常
named-checkconf
11.重新加载配制,查看是否为空
ls /var/named/slaves/
systemctl restart named
systemctl enable named
看是否有文件了
ls /var/named/slaves/
12.看是否同步了解析记录
nslookup ns1.rzsj.com 192.168.1.185
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。