1. bind配置反向区域解析
1.1 定义区域
在配置文件中或主配置文件辅助配置文件中实现;
区域名称:网络地址反写.in-addr.arpa.
- 101.102.12. --> 12.102.101.in-addr.arpa.
#1. 区域文件:
# zone "ZONE_NAME" IN {
# type {master|slave|forward}
# file "网络地址.zone" #文件名可以自定义
# }
#区域解析库文件:
# 注意:不需要MX和A,以及AAAA记录;以PTR记录为主;
1.2 配置区域反解析文件
- 我们通过正向的配置文件进行修改成反向的文件
#1. 添加区域定义
[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "1.10.10.in-addr.arpa" IN {
type master;
file "1.10.10.zone";
};
# 反写网段地址.in-addr.arpa
#检查配置文件
[root@localhost ~]# named-checkconf
#重载配置文件
[root@localhost ~]# systemctl reload named.service
#2. 对比正向配置文件进行配置反向配置文件
[root@localhost ~]# vim -o /var/named/itcom.com.zone /var/named/1.10.10.zone
$TTL 1D
$ORIGIN 1.10.10.in-addr.arpa.
@ IN SOA ns1.itcom.com admin.itcom.com (
2019112201
1H
5M
7D
1D)
IN NS ns1.itcom.com.
IN NS ns2.itcom.com.
11 IN PTR ns1.itcom.com.
11 IN PTR www.itcom.com.
12 IN PTR mx1.itcom.com.
12 IN PTR www.itcom.com.
13 IN PTR mx2.itcom.com.
#修改文件权限
[root@localhost ~]# ll /var/named/10.10.1.zone
-rw-r--r-- 1 root root 291 11月 22 23:21 /var/named/10.10.1.zone
[root@localhost ~]# chmod 640 /var/named/10.10.1.zone
[root@localhost ~]# chown :named /var/named/10.10.1.zone
#检查zone配置文件语法
[root@localhost ~]# named-checkzone "10.10.1.in-addr.arpa" /var/named/10.10.1.zone
zone 10.10.1.in-addr.arpa/IN: loaded serial 2019112201
OK
#重启服务
[root@localhost ~]# systemctl reload named.service
#3. 查看反向解析记录
[root@localhost named]# dig -x 10.10.1.11 @10.10.1.109
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> -x 10.10.1.11 @10.10.1.109
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9899
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;11.1.10.10.in-addr.arpa. IN PTR
;; ANSWER SECTION:
11.1.10.10.in-addr.arpa. 86400 IN PTR www.itcom.com.
11.1.10.10.in-addr.arpa. 86400 IN PTR ns1.itcom.com.
;; AUTHORITY SECTION:
1.10.10.in-addr.arpa. 86400 IN NS ns1.itcom.com.
1.10.10.in-addr.arpa. 86400 IN NS ns2.itcom.com.
;; ADDITIONAL SECTION:
ns1.itcom.com. 86400 IN A 10.10.1.1
ns2.itcom.com. 86400 IN A 10.10.1.2
;; Query time: 0 msec
;; SERVER: 10.10.1.109#53(10.10.1.109)
;; WHEN: Fri Nov 22 23:50:00 CST 2019
;; MSG SIZE rcvd: 161
反向解析不需要MX记录和A记录
正向区域的别名记录不需要反解!反向区域很少用别名记录.
1.3 dig命令反向解析
#测试反向解析:
# dig -x IP @SERVER
#模拟区域传送:
# dig -t axfr ZONE_NAME @SERVER
#例如正向:dig -t axfr itcom.com @10.10.1.109
[root@localhost named]# dig -t axfr itcom.com @10.10.1.109
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> -t axfr itcom.com @10.10.1.109
;; global options: +cmd
itcom.com. 86400 IN SOA ns1.itcom.com. admin.itcom.com.itcom.com. 2019112201 3600 300 604800 86400
itcom.com. 86400 IN NS ns1.itcom.com.
itcom.com. 86400 IN NS ns2.itcom.com.
itcom.com. 86400 IN MX 10 mx1.itcom.com.
itcom.com. 86400 IN MX 20 mx2.itcom.com.
ftp.itcom.com. 86400 IN CNAME www.itcom.com.
mx1.itcom.com. 86400 IN A 10.10.1.3
mx2.itcom.com. 86400 IN A 10.10.1.4
ns1.itcom.com. 86400 IN A 10.10.1.1
ns2.itcom.com. 86400 IN A 10.10.1.2
www.itcom.com. 86400 IN A 10.10.1.5
www.itcom.com. 86400 IN A 10.10.1.6
itcom.com. 86400 IN SOA ns1.itcom.com. admin.itcom.com.itcom.com. 2019112201 3600 300 604800 86400
;; Query time: 1 msec
;; SERVER: 10.10.1.109#53(10.10.1.109)
;; WHEN: Fri Nov 22 23:51:04 CST 2019
;; XFR size: 13 records (messages 1, bytes 320)
#例如反向:dig -t axfr 10.10.1.in-addr.arpa @10.10.1.109
[root@localhost named]# dig -t axfr 1.10.10.in-addr.arpa @10.10.1.109
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> -t axfr 1.10.10.in-addr.arpa @10.10.1.109
;; global options: +cmd
1.10.10.in-addr.arpa. 86400 IN SOA ns1.itcom.com.1.10.10.in-addr.arpa. admin.itcom.com.1.10.10.in-addr.arpa. 2019112201 3600 300 604800 86400
1.10.10.in-addr.arpa. 86400 IN NS ns1.itcom.com.
1.10.10.in-addr.arpa. 86400 IN NS ns2.itcom.com.
11.1.10.10.in-addr.arpa. 86400 IN PTR ns1.itcom.com.
11.1.10.10.in-addr.arpa. 86400 IN PTR www.itcom.com.
12.1.10.10.in-addr.arpa. 86400 IN PTR mx1.itcom.com.
12.1.10.10.in-addr.arpa. 86400 IN PTR www.itcom.com.
13.1.10.10.in-addr.arpa. 86400 IN PTR mx2.itcom.com.
1.10.10.in-addr.arpa. 86400 IN SOA ns1.itcom.com.1.10.10.in-addr.arpa. admin.itcom.com.1.10.10.in-addr.arpa. 2019112201 3600 300 604800 86400
;; Query time: 1 msec
;; SERVER: 10.10.1.109#53(10.10.1.109)
;; WHEN: Fri Nov 22 23:51:39 CST 2019
;; XFR size: 9 records (messages 1, bytes 277)
#全量传送比较危险,可以暴露内网的网络拓扑.建议不使用全量传送
泛域名解析
#添加泛解析
[root@localhost named]# vim /var/named/itcom.com.zone
$TTL 1D
$ORIGIN itcom.com.
@ IN SOA ns1.itcom.com. admin.itcom.com (
2019112201
1H
5M
7D
1D)
IN NS ns1
IN NS ns2
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 10.10.1.1
ns2 IN A 10.10.1.2
mx1 IN A 10.10.1.3
mx2 IN A 10.10.1.4
www IN A 10.10.1.5
www IN A 10.10.1.6
ftp IN CNAME www
* IN A 10.10.1.109
#测试泛解析记录
[root@localhost named]# dig -t A a.itcom.com @10.10.1.109
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> -t A a.itcom.com @10.10.1.109
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5934
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;a.itcom.com. IN A
;; ANSWER SECTION:
a.itcom.com. 86400 IN A 10.10.1.109
;; AUTHORITY SECTION:
itcom.com. 86400 IN NS ns2.itcom.com.
itcom.com. 86400 IN NS ns1.itcom.com.
;; ADDITIONAL SECTION:
ns1.itcom.com. 86400 IN A 10.10.1.1
ns2.itcom.com. 86400 IN A 10.10.1.2
;; Query time: 0 msec
;; SERVER: 10.10.1.109#53(10.10.1.109)
;; WHEN: Fri Nov 22 23:56:21 CST 2019
;; MSG SIZE rcvd: 124
#访问指定域名解析到www记录
[root@localhost named]# vim /var/named/itcom.com.zone
$TTL 1D
$ORIGIN itcom.com.
@ IN SOA ns1.itcom.com. admin.itcom.com (
2019112201
1H
5M
7D
1D)
IN NS ns1
IN NS ns2
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 10.10.1.1
ns2 IN A 10.10.1.2
mx1 IN A 10.10.1.3
mx2 IN A 10.10.1.4
www IN A 10.10.1.5
www IN A 10.10.1.6
ftp IN CNAME www
itcom.com. IN A 10.10.1.109
* IN A 10.10.1.109
#测试直接域名访问后解析到A记录
[root@localhost named]# dig -t A itcom.com @10.10.1.109
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> -t A itcom.com @10.10.1.109
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9021
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;itcom.com. IN A
;; ANSWER SECTION:
itcom.com. 86400 IN A 10.10.1.109
;; AUTHORITY SECTION:
itcom.com. 86400 IN NS ns1.itcom.com.
itcom.com. 86400 IN NS ns2.itcom.com.
;; ADDITIONAL SECTION:
ns1.itcom.com. 86400 IN A 10.10.1.1
ns2.itcom.com. 86400 IN A 10.10.1.2
;; Query time: 0 msec
;; SERVER: 10.10.1.109#53(10.10.1.109)
;; WHEN: Sat Nov 23 00:00:03 CST 2019
;; MSG SIZE rcvd: 122
bind配置主从复制
在生产环境中,为了实现高可用,通常使用两台或多台服务器提供服务,而DNS服务也不例外。但DNS服务器有多台时,系统管理员就不得不手动为多台服务器配置DNS服务,而且还有可能导致配置出错问题,因此就需要使用主-从同步(或者主-辅同步)的机制了。有了主从同步,系统管理员只需要在主DNS服务器上配置修改,而其他从DNS服务器可以自动地、动态地从主DNS服务器那里“复制”一份同样的数据进行同步操作,极为方便。
主-从DNS服务器的职责:
主DNS服务器:维护所负责解析的域数据库的那台DNS服务器,读写操作均可进行。从DNS服务器:从主DNS服务器那里或其他从DNS服务器那里“复制”一份数据库,但只能进行读操作。
那么从服务器是如何与主DNS服务器进行同步操作的?在上一篇文章中有提到,SOA记录中的信息包括了主从服务协调属性的定义,所以SOA也是同步机制的一种。但这还不够,根据SOA记录,假如设置为从DNS服务器每10分钟到主DNS服务器同步一次数据库的数据,那么如果刚完成某次同步操作时,主DNS服务器马上发生了变化,这样就会导致从DNS服务器有将近10分钟的时间没有更新数据库,而不管是主DNS服务器还是从DNS服务器都是同时向外提供解析服务的,DNS客户端就可能无法查询到结果或查询到错误的结果。为了解决这一问题,除了SOA记录的参数作为同步的参考,还需要引入另外的机制:主DNS服务器只要有更新数据就立即通知从DNS服务器。总结一下,主从同步的实施方式为:
- (a)依据SOA记录
①序列号:serial,即数据库的版本号,主DNS服务器数据库内容发生变化时,其版本号要递增。
②刷新时间间隔:refresh,从DNS服务器每隔多久到主DNS服务器检查序列号更新状况。
③重试时间间隔:retry,从DNS服务器从主DNS服务器同步数据库失败时,定义多久之后再次发起尝试请求。
④过期时长:expire,从DNS服务器始终联系不上主DNS服务器时,定义多久之后放弃从主DNS服务器同步数据库,并停止提供服务。
⑤否定答案的缓存时长。
- (b)一旦更新数据,主DNS服务器立即“通知”从DNS服务器更新数据
接下来介绍主-从DNS服务器的配置。因为在上面已经配置好了一台DNS服务器,且类型为master,因此直接将之作为主DNS服务器即可,这里只需要再配置一台从DNS服务器。主-从DNS服务器用到的主机如下:
主DNS服务器:10.10.1.109 # CentOS 7系统,主机名修改为master.从DNS服务器:10.10.1.157 # CentOS 6系统,主机名为slave.
需要注意的是,从DNS服务器是区域级别的概念,一个从DNS服务器是一个或多个区域的“从”(slave)(这一个或多个区域在主DNS服务器上定义),而不是一开始就作为整台DNS服务器上所有区域的“从”。
在从服务器上全量解析itcom.com
#在从服务器上测试
[root@ns2-slave ~]# dig -t axfr itcom.com @10.10.1.109
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> -t axfr itcom.com @10.10.1.109
;; global options: +cmd
itcom.com. 86400 IN SOA ns1.itcom.com. admin.itcom.com.itcom.com. 2019112201 3600 300 604800 86400
itcom.com. 86400 IN A 10.10.1.109
itcom.com. 86400 IN NS ns1.itcom.com.
itcom.com. 86400 IN NS ns2.itcom.com.
itcom.com. 86400 IN MX 10 mx1.itcom.com.
itcom.com. 86400 IN MX 20 mx2.itcom.com.
*.itcom.com. 86400 IN A 10.10.1.109
ftp.itcom.com. 86400 IN CNAME www.itcom.com.
mx1.itcom.com. 86400 IN A 10.10.1.3
mx2.itcom.com. 86400 IN A 10.10.1.4
ns1.itcom.com. 86400 IN A 10.10.1.1
ns2.itcom.com. 86400 IN A 10.10.1.2
www.itcom.com. 86400 IN A 10.10.1.5
www.itcom.com. 86400 IN A 10.10.1.6
itcom.com. 86400 IN SOA ns1.itcom.com. admin.itcom.com.itcom.com. 2019112201 3600 300 604800 86400
;; Query time: 0 msec
;; SERVER: 10.10.1.109#53(10.10.1.109)
;; WHEN: Sat Nov 23 18:31:22 CST 2019
;; XFR size: 15 records (messages 1, bytes 354)
正向从服务器的配置
主从复制:
- 应该为一台独立的名称服务器;
- 主服务器的区域解析库文件中必须有一条NS记录是指向从服务器;
- 从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于/var/named/slaves/目录中;
- 主服务器得允许从服务器作区域传送;
- 主从服务器时间应该同步,可通过ntp进行;
- bind程序的版本应该保持一致;否则,应该从高,主低;
#定义规则
# zone "ZONE_NAME" IN {
# type slave;
# masters { MASTER_IP; }; #数据库文件应该同步到/var/named/slaves目录下。
# file "slaves/ZONE_NAME.zone"; #说明主DNS服务器是哪台。
# };
#1. 配置从服务器
[root@ns2-slave slaves]# vim /etc/named.rfc1912.zones
....
zone "itcom.com" IN {
type slave;
masters { 10.10.1.109; };
file "slaves/itcom.com.zone";
};
#2. 重载从服务器的配置文件
[root@ns2-slave slaves]# rndc reload
#3. 配置主服务器的NS2记录为从服务器,否则无法同步
[root@ns1-master ~]# vim /var/named/itcom.com.zone
$TTL 1D
$ORIGIN itcom.com.
@ IN SOA ns1.itcom.com. admin.itcom.com (
2019112224
1H
5M
7D
1D)
......
ns1 IN A 10.10.1.109 #主dns服务器
ns2 IN A 10.10.1.157 #从dns服务器
#4.重载从服务器的配置文件
[root@ns1-master ~]# rndc reload
#5.从服务器的同步日志文件信息
Nov 23 21:15:38 ns2-slave named[3282]: client @0x7f06cc042ec0 10.10.1.109#56573: received notify for zone 'itcom.com'
Nov 23 21:15:38 ns2-slave named[3282]: zone itcom.com/IN: notify from 10.10.1.109#56573: serial 2019112224
Nov 23 21:15:38 ns2-slave named[3282]: zone itcom.com/IN: Transfer started.
Nov 23 21:15:38 ns2-slave named[3282]: transfer of 'itcom.com/IN' from 10.10.1.109#53: connected using 10.10.1.157#54159
Nov 23 21:15:38 ns2-slave named[3282]: zone itcom.com/IN: transferred serial 2019112224
Nov 23 21:15:38 ns2-slave named[3282]: transfer of 'itcom.com/IN' from 10.10.1.109#53: Transfer status: success
Nov 23 21:15:38 ns2-slave named[3282]: transfer of 'itcom.com/IN' from 10.10.1.109#53: Transfer completed: 1 messages, 15 records, 343 bytes, 0.001 secs (343000 bytes/sec)
Nov 23 21:15:38 ns2-slave named[3282]: zone itcom.com/IN: sending notifies (serial 2019112224)
#从服务器/var/named/slaves/目录下同步的文件
[root@ns2-slave slaves]# ll /var/named/slaves/
total 4
-rw-r--r-- 1 named named 592 Nov 23 21:15 itcom.com.zone
如果同步出现乱码在option里加上:masterfile-format text;
这个参数注意:主服务器的NS2记录一定要设置正确,否则无法同步!
反向从服务器的配置
#1. 确认主服务器的反向解析区域文件中的NS2记录是否是从服务器
[root@ns1-master ~]# vim /var/named/1.10.10.zone
$TTL 1D
$ORIGIN 1.10.10.in-addr.arpa.
@ IN SOA ns1.itcom.com admin.itcom.com (
2019112201
1H
5M
7D
1D)
IN NS ns1.itcom.com.
IN NS ns2.itcom.com.
109 IN PTR ns1.itcom.com. #主服务器
157 IN PTR ns2.itcom.com. #从服务器
...
#2.从服务器配置文件中添加反向同步的区域
[root@ns2-slave slaves]# vim /etc/named.rfc1912.zones
zone "1.10.10.in-addr.arpa" IN {
type slave;
masters { 10.10.1.109; };
file "slaves/1.10.10.zone";
};
#3. 重载从服务器的配置文件
[root@ns2-slave slaves]# rndc reload
server reload successful
#4.同步的日志
Nov 23 22:38:16 ns2-slave named[3282]: client @0x7f06cc042ec0 10.10.1.109#51722: received notify for zone '1.10.10.in-addr.arpa'
Nov 23 22:38:16 ns2-slave named[3282]: zone 1.10.10.in-addr.arpa/IN: notify from 10.10.1.109#51722: serial 2019112202
Nov 23 22:38:16 ns2-slave named[3282]: zone 1.10.10.in-addr.arpa/IN: Transfer started.
Nov 23 22:38:16 ns2-slave named[3282]: transfer of '1.10.10.in-addr.arpa/IN' from 10.10.1.109#53: connected using 10.10.1.157#50609
Nov 23 22:38:16 ns2-slave named[3282]: zone 1.10.10.in-addr.arpa/IN: transferred serial 2019112202
Nov 23 22:38:16 ns2-slave named[3282]: transfer of '1.10.10.in-addr.arpa/IN' from 10.10.1.109#53: Transfer status: success
Nov 23 22:38:16 ns2-slave named[3282]: transfer of '1.10.10.in-addr.arpa/IN' from 10.10.1.109#53: Transfer completed: 1 messages, 10 records, 288 bytes, 0.001 secs (288000 bytes/sec)
Nov 23 22:38:16 ns2-slave named[3282]: zone 1.10.10.in-addr.arpa/IN: sending notifies (serial 2019112202)
从服务器正反向测试:
- 测试系统
kali
,ip:10.10.1.248
#从服务器正向全量解析
root@kali-xiaoqi:~# dig -t axfr itcom.com @10.10.1.157
; <<>> DiG 9.11.5-P4-5.1+b1-Debian <<>> -t axfr itcom.com @10.10.1.157
;; global options: +cmd
itcom.com. 86400 IN SOA ns1.itcom.com. admin.itcom.com.itcom.com. 2019112226 3600 300 604800 86400
itcom.com. 86400 IN MX 10 mx1.itcom.com.
itcom.com. 86400 IN MX 20 mx2.itcom.com.
itcom.com. 86400 IN NS ns1.itcom.com.
itcom.com. 86400 IN NS ns2.itcom.com.
itcom.com. 86400 IN A 10.10.1.109
*.itcom.com. 86400 IN A 10.10.1.109
ftp.itcom.com. 86400 IN CNAME www.itcom.com.
mx1.itcom.com. 86400 IN A 10.10.1.3
mx2.itcom.com. 86400 IN A 10.10.1.4
ns1.itcom.com. 86400 IN A 10.10.1.109
ns2.itcom.com. 86400 IN A 10.10.1.157
pop.itcom.com. 86400 IN CNAME mx1.itcom.com.
www.itcom.com. 86400 IN A 10.10.1.5
www.itcom.com. 86400 IN A 10.10.1.6
itcom.com. 86400 IN SOA ns1.itcom.com. admin.itcom.com.itcom.com. 2019112226 3600 300 604800 86400
;; Query time: 0 msec
;; SERVER: 10.10.1.157#53(10.10.1.157)
;; WHEN: 六 11月 23 23:27:18 CST 2019
;; XFR size: 16 records (messages 1, bytes 400)
#从服务器反向全量解析
root@kali-xiaoqi:~# dig -x 10.10.1.109 @10.10.1.157
; <<>> DiG 9.11.5-P4-5.1+b1-Debian <<>> -x 10.10.1.109 @10.10.1.157
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20593
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 760bcbfe19ce0903566969075dd95e200ad5b618d57509b6 (good)
;; QUESTION SECTION:
;109.1.10.10.in-addr.arpa. IN PTR
;; ANSWER SECTION:
109.1.10.10.in-addr.arpa. 86400 IN PTR ns1.itcom.com.
;; AUTHORITY SECTION:
1.10.10.in-addr.arpa. 86400 IN NS ns1.itcom.com.
1.10.10.in-addr.arpa. 86400 IN NS ns2.itcom.com.
;; ADDITIONAL SECTION:
ns1.itcom.com. 86400 IN A 10.10.1.109
ns2.itcom.com. 86400 IN A 10.10.1.157
;; Query time: 0 msec
;; SERVER: 10.10.1.157#53(10.10.1.157)
;; WHEN: 六 11月 23 23:28:17 CST 2019
;; MSG SIZE rcvd: 172
版权属于:龙之介大人
本文链接:https://i7dom.cn/205/2019/23/dns-master-slave.html
本站所有原创文章采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 您可以自由的转载和修改,但请务必注明文章来源和作者署名并说明文章非原创且不可用于商业目的。