DNS主从同步概念及原理
DNS(Domain Name System),即域名系统。因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。DNS服务器的作用就是就好比生活中的电话簿、114查号台一样,为各种网络程序找到对应目标主机的IP地址或对应的主机域名。
部署DNS主从服务器能有更好的容错能力,在主服务器崩溃的情况下,能使用从服务器来解析域名,从服务器还能减轻主服务器的负载。
主从同步的原理:从服务器会监听主服务器的 TCP 53 端口,它会隔一段时间去探测主配置文件中的序列号,如果主端序列号更新后从端探测到会将主端内容同步到本地,主每次修改配置文件必须修改一下序列号,让序列号大于原来的序列号,主从同步主要根据序列号的变化。
DNS主从部署的环境
系统:centos6.5
主服务器:192.168.30.60 vm96-yw-65-test-3060
从服务器:192.168.30.59 vm99-lz-65-test-3059
DNS主从服务器的部署
关闭selinux和iptables或者添加安全规则,不然主从不能进行同步。
1、安装软件
yum install -y bind bind-utils bind-chroot
- bind是主程序
- bind-utils是工具包,包括dig、nslookup等NDS命令
- bind-chroot为bind提供一个伪装的根目录以增强安全性(将“/var/named/chroot/”文件夹作为BIND的根目录)
- /etc/named.conf,/etc/named.rfc1912.zones是主配置文件
- /var/named/named.ca是根区域解析库文件
- /var/named/named.localhost, /var/named/named.loopback 是本机和环回地址的解析库文件
- rndc—remote name domain controller这是一个辅助管理工具,默认情况下与BIND安装在同一主机,而且只能通过127.0.0.1连接named进程,监听的端口号是TCP/953。
2、修改主服务器配置文件
2.1、编辑/etc/named.conf
[root@vm96-yw-65-test-3060 ~]# vim /etc/named.conf
options {
listen-on port 53 { any; }; ##修改为any,表示允许所有网段的主机。为安全考虑也可以改成自己所在的内网网段
#listen-on-v6 port 53 { ::1; }; ##选择注释掉这一行,注释与否均可,这是监听ipv6的端口
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; ##改为any,表示接受所有网段
recursion yes; ##不修改,这个选项控制是否开启服务器的递归查询功能
dnssec-enable no; ##这部分是设置DNSSEC的。把它关掉,默认为yes。
dnssec-validation no; ##关掉,默认为yes。
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
只修改option段,其余段不变。options是全局配置,logging是日志配置,最后是区域解析库配置以及所包含的区域解析库文件配置。
2.2、编辑/etc/named.rfc1912.zones
在文件末尾添加一个正向解析区域和一个反向解析区域
[root@vm96-yw-65-test-3060 ~]# vim /etc/named.rfc1912.zones
zone "weli.com" IN {
type master; ###定义区域类型,type可选值为:hint(根的)|master(主的)|slave(辅助的)|forward(转发)
file "weli.com.zone";
allow-transfer { 192.168.30.59; }; ##指定允许转发的目标主机,即从服务器
};
zone "30.168.192.in-addr.arpa" IN {
type master;
file "2.zone";
allow-transfer { 192.168.30.59; };
};
修改完成后,使用named-checkconf检查named.conf和named.rfc1912.zones两个文件,检查是否有语法错误,如果没有任何输出表明文件配置正确。
[root@vm96-yw-65-test-3060 ~]# named-checkconf