我最近尝试设置DNS。检查工具告诉我缺少一些 A 记录。但我想我做到了。
区域文件:
$ORIGIN .
$TTL 2D
. IN SOA ns1. root.ns1. (
2016052404 ; Serial
8H ; Refresh
2H ; Retry
4W ; Expire
3H ; NX (TTL Negativ Cache)
)
. IN NS ns1.
ns1. IN A 192.168.107.2
at. IN NS ns1.at.
ns1.at. IN A 192.168.107.3
jp. IN NS ns1.jp.
ns1.jp. IN A 192.168.107.5
user@dns1:/etc/bind# sudo named-checkzone . db.zonefile
zone ./IN: at/NS 'ns1.at' (out of zone) has no addresses records (A or AAAA)
zone ./IN: jp/NS 'ns1.jp' (out of zone) has no addresses records (A or AAAA)
zone ./IN: loaded serial 2016052404
OK
/etc/bind/named-conf.local
zone "." {
type master;
file "/etc/bind/db.zonefile";
};
zone "0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.0.168.192";
};
/etc/resolv.conf:
search .
nameserver 127.0.0.1
您可能想使用sudo named-checkzone -i local . db.zonefile
从命名检查区手册页:
选项
。
-i mode
执行装载后区域完整性检查。可能的模式包括"完全"(默认)、"全同级"、"本地"、"本地同级"和"无"。 ... 模式"完全"检查委派 NS 记录是否引用 A 或 AAAA 记录(区域内和区域外主机名)。它还检查 区域中的粘附地址记录与孩子播发的记录匹配。 模式"本地"仅检查引用区域内主机名的 NS 记录 或者存在一些所需的胶水,即当名称服务器处于 子区域。 ...
如果没有-i local
选项,上游 DNS 服务器(在 /etc/resolv.conf
中定义)也将被检查,因此例如在 8.8.8.8 中,我得到以下结果(这是预期的):
[root@localhost ~]# named-checkzone . foo.db
zone ./IN: at/NS 'ns1.at' extra GLUE A record (192.168.107.3)
zone ./IN: at/NS 'ns1.at' missing GLUE A record (176.28.37.75)
zone ./IN: at/NS 'ns1.at' missing GLUE AAAA record (2a01:488:42:1000:b01c:254b:fffe:f92a)
zone ./IN: getaddrinfo(ns1.jp) failed: Temporary failure in name resolution
zone ./IN: loaded serial 2016052404
OK
[root@localhost ~]#