Bind自动空区empty-zones

本文阅读量 Posted by Kird on 2020-02-18
配置的反解析未生效,为什么? 明明配置上了呀!

empty-zones简述

named中提供了许多空白区域,在每个视图开始加载时会自动根据配置生成这些空白区域。自动空区的目的时防止递归服务器向其他DNS服务器发送很多无意义的查询,保证递归服务器在这些区域直接返回即时和权威的NXDOMAIN响应。
BIND 9.9及更高版本的用户将在未指定empty-zones-enable(默认为yes)以及明确设置为“yes”时看到新的RFC 1918空区域。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
10.IN-ADDR.ARPA 
16.172.IN-ADDR.ARPA
17.172.IN-ADDR.ARPA
18.172.IN-ADDR.ARPA
19.172.IN-ADDR.ARPA
20.172.IN-ADDR.ARPA
21.172.IN-ADDR.ARPA
22.172 .IN-ADDR.ARPA
23.172.IN-ADDR.ARPA
24.172.IN-ADDR.ARPA
25.172.IN-ADDR.ARPA
26.172.IN-ADDR.ARPA
27.172.IN-ADDR.ARPA
28.172.IN-ADDR.ARPA
29.172IN-ADDR.ARPA
30.172.IN-ADDR.ARPA
31.172.IN-ADDR.ARPA
168.192.IN-ADDR.ARPA
100.51.198.IN-ADDR.ARPA
113.0.203.IN-ADDR.ARPA

空区生效条件

  • empty-zones-enable 指令配置为yes(默认);
  • 当named.conf中显式配置了该区域则自动空区不生效,如显式配置了168.192.in-addr.arpa.,则168.192.IN-ADDR.ARPA不生效;
  • forward only 开启时,不管是否配置了empty-zones-enable yes,空白区域均不生效。

测试:解析命中空域

DNS环境:

1
2
bind 9.10
显式配置192.in-addr.arpa反解析zone,未显式配置168.192.in-addr.arpa

named.conf 配置:

1
2
empty-zones-enable yes;
#forward only;

测试192.168反解析空域,关注结果中的 AUTHORITY SECTION:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root ~]# dig -x 192.168.1.1 @127.0.0.1

; <<>> DiG 9.10.2 <<>> -x 192.168.1.1 @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 16257
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;1.1.168.192.in-addr.arpa. IN PTR

;; AUTHORITY SECTION:
168.192.IN-ADDR.ARPA. 86400 IN SOA 168.192.IN-ADDR.ARPA. . 0 28800 7200 604800 86400

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Feb 18 16:57:45 CST 2020
;; MSG SIZE rcvd: 108

可见命中168.192.IN-ADDR.ARPA内部域,如果此时有显式168.192.in-addr.arpa,则会将定义的zone为权威域。

测试:关闭empty-zones-enable后,未命中空域

named.conf配置:

1
2
empty-zones-enable no;
#forward only;

测试结果,关注结果中的 AUTHORITY SECTION:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root~]# dig -x 192.168.1.1 @127.0.0.1

; <<>> DiG 9.10.2 <<>> -x 192.168.1.1 @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 32092
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;1.1.168.192.in-addr.arpa. IN PTR

;; AUTHORITY SECTION:
192.in-addr.arpa. 600 IN SOA ns1.58os.org. root.58os.org. 3016134250 604800 86400 2419200 604800

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Feb 18 17:01:14 CST 2020
;; MSG SIZE rcvd: 106

可见使用了显式配置的192.in-addr.arpa,而未使用自动空域168.192.IN-ADDR.ARPA.

测试:开启empty-zones-enable后,开启forward only,自动空域不生效

named.conf配置:

1
2
empty-zones-enable yes;
forward only;

测试结果,关注结果中的 AUTHORITY SECTION:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root~]# dig -x 192.168.1.1 @127.0.0.1

; <<>> DiG 9.10.2 <<>> -x 192.168.1.1 @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 39014
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;1.1.168.192.in-addr.arpa. IN PTR

;; AUTHORITY SECTION:
192.in-addr.arpa. 600 IN SOA ns1.58os.org. root.58os.org. 3016134250 604800 86400 2419200 604800

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Feb 18 17:10:21 CST 2020
;; MSG SIZE rcvd: 106

可见使用forward only之后,bind的自动空域不生效,反解192.168.1.1的请求命中自定义的192.in-addr.arpa.zone



支付宝打赏 微信打赏

赞赏支持一下