DNS主从同步部署

Posted fanren224

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DNS主从同步部署相关的知识,希望对你有一定的参考价值。

DNS 主从同步原理

  • 主从同步:主每次修改配置文件需要修改一下序列号,主从同步主要 看序列号。
  • 从DNS:从是可以单独修改,主从不会报错。但从修改后,主端同步给从后 从端修改数据会丢失
  • 主从原理:从会监听主的 TCP 53 端口,它会隔一段时间去探测 主配置文件中的序列号,如果主端 序列号更新后 从端探测到会 将主端内容 同步到本地。
  • 同步模式:从主动探测时间比较缓慢,可以设置主端,每次变更序列号时主动将,数据信息,推送给从端。

DNS实验环境

master服务器:172.16.2.116

slave1服务器: 172.16.2.225

关闭selinux。

安装步骤

1.安装软件

yum install -y bind bind-utils bind-chroot

 说明:

/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配置named.conf文件

这个配置文件主要分3段内容,options是全局配置,logging是日志配置,最后是区域解析库配置以及所包含的区域解析库文件配置。

只修改第二行和最后一行为any

options {
        listen-on port 53 { any; };  
        listen-on-v6 port 53 { ::1; };
        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; };

2.2编辑/etc/named.rfc1912.zones在文件末尾添加一个正向解析区域和一个反向解析区域

 1 zone "hanli.com" IN {
 2         type master;
 3         file "hanli.com.zone";
 4         allow-transfer { 172.16.2.225;};
 5 };
 6 zone "2.16.172.in-addr.arpa" IN {
 7         type master;
 8         file "2.zone";
 9         allow-transfer { 172.16.2.225};
10 };

 2.3 创建hanli.com.zone解析库文件和反向解析库文件

[[email protected]] /var/named$ cat hanli.com.zone 
$TTL 1D
hanli.com.      IN    SOA  ns.hanli.com.    admin.hanli.com. (
            2018030422   
            2H          
            10M         
            1W          
            1D          
            )
hanli.com.           IN  NS  ns1.hanli.com.
@                 IN  NS  ns2.hanli.com.
ns1.hanli.com.    IN  A   172.16.2.116
ns2.hanli.com.    IN  A   172.16.2.225
hanli.com.        IN  MX 10  mx1.hanli.com.
                  IN  MX 20  mx2.hanli.com.
mx1.hanli.com.    IN  A   172.16.2.116
mx2.hanli.com.    IN  A   172.16.2.116
www.hanli.com.    IN  A   172.16.2.116
master            IN CNAME   www.hanli.com.
web               IN CNAME   www.hanli.com.

 2.zone反向解析库文件

[[email protected]] /var/named$ cat 2.zone 
$TTL 1d
@    IN  SOA     ns.hanli.com. admin.hanli.com. (
            2018030422;
            2H;
            10M;
            1W;
            1D;
            )
                IN      NS  ns.hanli.com.
        IN     NS  ns2.hanli.com.
200             IN      PTR www.hanli.com.
200             IN      PTR ns.hanli.com.
250        IN     PTR ns2.hanli.com. 

 注意事项:

  • 区域解析库文件第一个记录必须是SOA记录,必须有NS记录并且正解区域要有NS记录的A记录,反解则不需要有NS记录对应的A记录。
  • $TTL表示宏定义,TTL(Time- To-Live),简单的说它表示一条域名解析记录在DNS服务器上缓存时间.当各地的DNS服务器接受到解析请求时,就会向域名指定的DNS服务器发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向DNS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。
  • 这个文件里所有的域名结尾的点号一定不能省略。
  • 区域解析库文件是放在/var/named目录下,由named进程是以named用户运行,还要让区域解析库文件的属组为named。
[[email protected]] /var/named$ ll
total 24
-rw-r--r--. 1 root  named  342 Mar  4 23:05 2.zone
drwxr-x---. 7 root  named   61 Mar  4 18:26 chroot
drwxrwx---. 2 named named   23 Mar  4 18:38 data
drwxrwx---. 2 named named   31 Mar  4 18:46 dynamic
-rw-r--r--. 1 root  named  643 Mar  4 23:05 hanli.com.zone
-rw-r-----. 1 root  named 2281 May 22  2017 named.ca
-rw-r-----. 1 root  named  152 Dec 15  2009 named.empty
-rw-r-----. 1 root  named  152 Jun 21  2007 named.localhost
-rw-r-----. 1 root  named  168 Dec 15  2009 named.loopback
drwxrwx---. 2 named named    6 Jan 22 21:30 slaves

 

检查配置文件语法

# named-checkconf
没有任何输出表示 /etc/named.conf没有语法错误
# named-checkzone "frank.com" "frank.com.zone"
zone frank.com/IN: loaded serial 201802001
OK
正向解析区域检查没问题
# named-checkzone "frank.com" "138.zone"
zone frank.com/IN: loaded serial 201802001
OK
反向解析区域检查没问题

 

2.4 启动named服务,并测试

# systemctl start named.service

[[email protected]] /var/named/chroot/etc/named$ dig -t A web.hanli.com @172.16.2.116

; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7_4.2 <<>> -t A web.hanli.com @172.16.2.116
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36950
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;web.hanli.com.            IN    A

;; ANSWER SECTION:
web.hanli.com.        86400    IN    CNAME    www.hanli.com.
www.hanli.com.        86400    IN    A    172.16.2.116

;; AUTHORITY SECTION:
hanli.com.        86400    IN    NS    ns1.hanli.com.
hanli.com.        86400    IN    NS    ns2.hanli.com.

;; ADDITIONAL SECTION:
ns1.hanli.com.        86400    IN    A    172.16.2.116
ns2.hanli.com.        86400    IN    A    172.16.2.116

;; Query time: 1 msec
;; SERVER: 172.16.2.116#53(172.16.2.116)
;; WHEN: Sun Mar 04 22:16:52 CST 2018
;; MSG SIZE  rcvd: 144

到此DNS主服务器已经配置完毕并能正常工作。

3、从服务器配置192.168.138.201

3.1、安装bind

3.2、编辑/etc/named.conf将监听IP地址改一下,其它不需要更改

options {
        listen-on port 53 { 172.16.2.225;127.0.0.1; };

 

3.3 编辑/etc/named.rfc1912.zones

zone "hanli.com" IN {
        type slave;
        masters { 172.16.2.116; };
        file "slaves/hanli.com";
};
zone "2.16.172.in-addr.arpa" IN {
        type slave;
        masters { 172.16.2.116; };
        file "slaves/2.zone";
};

3.4 注意事项:从服务器的区域解析库文件应当是从主服务器加载过来的,所以无需创建区域解析库文件。

3.5 启动named服务,测试同步功能

# systemctl start named
检查/var/named/slaves目录

# ll /var/named/slaves/
total 8
-rw-r--r--. 1 named named 268 Feb 21 13:14 138.zone
-rw-r--r--. 1 named named 554 Feb 21 13:14 frank.com.zone
这2个文件是自动从主服务器同步过来的。

 




















以上是关于DNS主从同步部署的主要内容,如果未能解决你的问题,请参考以下文章

DNS 主从同步配置

DNS主从同步搭建测试

dns介绍,安装和主从同步

Centos7 DNS主从同步

Shell脚本实战——DNS主从同步脚本实例

DNS 主从同步