我在将 BIND 配置为我在根区域的私有服务器时遇到了一些问题。
我试过点“。” (在某处读过)和一个空字符串“”(我的错误猜测)作为根区域标识符(两者都有语法错误)
zone "." { ; sorry
...
};
还
zone "" { ;sorry
...
};
您对如何为根区域提供服务有任何提示吗?
(我的注意:为根区域提供服务可能与作为根服务器不同!)
更新
问题实际上出在根 (".") 的响应策略区域内:
options {
#response-policy {zone "com"; }; #it is OK (before commenting)
response-policy {zone "."; }; #it makes error when loading the config
};
zone "."{
type master;
file "db/zone.root.db";
};
zone "com"{ #just for syntax test/check
type master;
file "db/zone.root.db";
};
命名检查配置 -zj 命名.conf
zone ./IN: NS 'LOCALHOST' has no address records (A or AAAA)
zone ./IN: not loaded due to errors.
_default/./IN: bad zone
zone com/IN: loaded serial 1
注意:在两种配置中:服务加载的配置和终止的配置,输出是相同的
挖 www.google.com @127.0.0.1
01 ; <<>> DiG 9.10.4-P2 <<>> www.google.com @127.0.0.1
02 ;; global options: +cmd
03 ;; Got answer:
04 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58406
05 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1
06
07 ;; OPT PSEUDOSECTION:
08 ; EDNS: version: 0, flags:; udp: 4096
09 ;; QUESTION SECTION:
10 ;www.google.com. IN A
11
12 ;; ANSWER SECTION:
13 www.google.com. 5 IN CNAME nosslsearch.google.com.rpz.zone.
14 nosslsearch.google.com.rpz.zone. 3600 IN A 216.239.32.20
15
16 ;; AUTHORITY SECTION:
17 rpz.zone. 3600 IN NS LOCALHOST.
18
19 ;; Query time: 44 msec
20 ;; SERVER: 127.0.0.1#53(127.0.0.1)
21 ;; WHEN: Mon Aug 01 17:07:14 Daylight Time 2016
22 ;; MSG SIZE rcvd: 127
注意:参见第 13 行和后面的“.rpz.zone”。
nslookup
01 > server 127.0.0.1
02 Default server: 127.0.0.1
03 Address: 127.0.0.1#53
04 > www.google.com
05 Server: 127.0.0.1
06 Address: 127.0.0.1#53
07
08 Non-authoritative answer:
09 www.google.com canonical name = nosslsearch.google.com.rpz.zone.
10 Name: nosslsearch.google.com.rpz.zone
11 Address: 216.239.32.20
ping www.google.com -n 1
1 Pinging nosslsearch.google.com.rpz.zone [216.239.32.20] with 32 bytes of data:
2 Reply from 216.239.32.20: bytes=32 time=149ms TTL=45
3
4 Ping statistics for 216.239.32.20:
5 Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
6 Approximate round trip times in milli-seconds:
7 Minimum = 149ms, Maximum = 149ms, Average = 149ms
上述输出片段的总结:rpz.zone 被添加到任何地方,这就是为什么我想移动到根区域。
这是我的
zone.root.db 文件
01 $TTL 1H
02 @ SOA LOCALHOST. named-mgr.example.com (1 1h 15m 30d 2h)
03 NS LOCALHOST.
04
05 nosslsearch.google.com A 216.239.32.20
06 google.com CNAME nosslsearch.google.com
07 www.google.com CNAME nosslsearch.google.com
08
我只是想摆脱附加到响应中的 rp.zone!,如何?
RPZ 区域定义了特殊的语义,因此区域的名称实际上与其操作无关。
事实上,名称应该选择不与实际区域冲突。从区域加载的 RPZ 数据只是利用现有区域加载/同步机制的一种方式。
因此,您不想命名 RPZ 区域
.
或com
类似名称。但是,由于它是作为区域加载的,因此常规主文件规范确实适用于内容的解释方式。例如,对于名为 的区域
example
,如下方法
(除非明确覆盖
$ORIGIN
)虽然 RPZ 以某种方式定义所有者名称(最左侧的列),以便在通过查询名称匹配时自动附加 RPZ 区域名称,
CNAME 记录数据(右侧)按原样用于您提供本地数据的情况。(即当 CNAME 数据不是 RPZ 中定义的特殊情况之一时,例如
rpz-drop.
,.
,*.
等)长话短说,你会想要这样的东西: