命名检查区域错误:DNS 区域错误:(区域外)没有地址记录(A 或 AAAA)

命名检查区域错误:DNS 区域错误:(区域外)没有地址记录(A 或 AAAA)

我有同样的问题命名检查区域错误。我已经交叉检查了我的区域文件并且它们的 FQDN 格式正确。

我使用以下命令检查了区域文件:

:/etc/bind$ sudo named-checkzone linuxconfig.org zones/master/db.linuxconfig.org 
zone linuxconfig.org/IN: sample.linuxconfig.org/NS 'ns1.sample.linuxconfig.org' (out of zone) has no addresses records (A or AAAA)
zone linuxconfig.org/IN: loaded serial 1
OK

该文件:db.linuxconfig.org.包含以下内容:

;
; BIND data file for linuxconfig.org
;
$TTL    3h
@       IN      SOA     ns1.linuxconfig.org. admin.linuxconfig.org. (
                          1        ; Serial
                          3h       ; Refresh after 3 hours
                          1h       ; Retry after 1 hour
                          1w       ; Expire after 1 week
                          1h )     ; Negative caching TTL of 1 day
;
@       IN      NS      ns1.linuxconfig.org.    

linuxconfig.org.            IN      MX      10      mail.linuxconfig.org.
linuxconfig.org.            IN      A       192.168.0.19
ns1                         IN      A       92.168.0.10
www                         IN      CNAME   @
mail                        IN      A       12.168.0.10
ftp                         IN      CNAME   linuxconfig.org.
sample                      IN      NS      ns1.sample.linuxconfig.org.
ns1.sample.linuxconfig.org. IN      A       1.1.1.1

如果我删除了 ns1.sample.linuxconfig.org. 记录,那么 BIND 将会抱怨.. has no REQUIRED GLUE address records

named-checkzone当 BIND 可以成功接受文件并在查询时返回记录时, 为什么会出现抱怨?

答案1

如果传递-i local-i local-siblingnamed-checkzone将完全成功。请参阅手册页以了解 的解释-i

基本上-i进行加载后区域完整性检查,默认为-i full

模式“完整”检查委托 NS 记录是否引用 A 或 AAAA 记录(区域内和区域外的主机名)。它还检查区域中的粘合地址记录是否与子区域所通告的记录相匹配。模式“本地”仅检查引用区域内主机名的 NS 记录或是否存在某些必需的粘合,即当名称服务器位于子区域中时。

首先,这解释了为什么即使在运行中 named-checkzone 失败,区域仍会加载:您收到的错误来自于区域之后进行的检查,通过在此处执行真实的 DNS 查询。

事实上,它尝试查询ns1.sample.linuxconfig.org但失败了,因此出现错误,如果你这样做,ltrace你会看到:

getaddrinfo("ns1.sample.linuxconfig.org.", nil, 0x7ffe2c6c4bb0, 0x7ffe2c6c4b78) = -2

相关内容