运行 named-checkzone 时出现“没有地址记录(A 或 AAAA)”错误

运行 named-checkzone 时出现“没有地址记录(A 或 AAAA)”错误

我目前正在尝试首次构建自己的家庭实验室,作为新手,这有点令人困惑。在过去的几天里,我一直在配置内部 DNS 服务器,设置完成后,我运行了以下测试:

首先,我尝试检查我的 DNS 是否能解析,并将我引导至我的 Web 服务器的 IP 地址(以 root 身份):

nslookup www.wallynet.local

输出:

Server: 192.168.1.3
Address: 192.168.1.3#53

Name: www.wallynet.local
Address: 192.168.1.2

接下来,我尝试查看我的 DNS 是否能够反向解析,并将我引导到我的 Web 服务器(以 root 身份):

nslookup -x www.wallynet.local

输出:

*** Invalid option: x
Server: 192.168.1.3
Address: 192.168.1.3#53

Name: www.wallynet.local
Address: 192.168.1.2

据我所知,我获得了正确的 IP 地址。

但是,根据我在设置 DNS 时一直关注的来源,我应该以 root 身份在我的正向区域文件上运行以下区域检查命令(我得到了应有的结果)来检查我的区域文件:

named-checkzone wallynet.local /var/named/fwd.wallynet.local

输出:

zone wallynet.local/IN: loaded serial 2011071001
OK

但是,如果我对反向区域文件运行相同的命令(会出现错误):

named-checkzone wallynet.local /var/named/reverse.wallynet.local

输出:

zone wallynet.local/IN: NS 'primary.wallynet.local' has no address records (A or AAAA)
zone wallynet.local/IN: not loaded due to errors.

这是我当前的反向区域文件(请忽略许多注释掉的行。我只是从我为此任务所参考的来源粘贴它):

$TTL 86400
@ IN SOA primary.wallynet.local. root.wallynet.local. (
             2011071001  ;Serial
             3600        ;Refresh
             1800        ;Retry
             604800      ;Expire
             86400       ;Minimum TTL
)

;NAME SERVER INFORMATION
@ IN NS primary.wallynet.local.

;RECORD IP ADDRESS TO HOSTNAME
3 IN PTR primary.wallynet.local.

;WHAT IS BELOW IS COMMENTED OUT FOR NOW (CAME FROM A RESOURCE ONLINE)
;@ IN NS masterdns.unixmen.local.
;@ IN NS secondarydns.unixmen.local.
;@ IN A 192.168.1.101
;@ IN A 192.168.1.102
;@ IN A 192.168.1.103
;masterdns IN A 192.168.1.101
;secondarydns IN A 192.168.1.102
;client IN A 192.168.1.103

为什么我没有收到此命令的错误,如果我的nslookup命令给了我正确的结果吗?

更新:这是我当前的转发文件:

$TTL 86400
@      IN  SOA     primary.wallynet.local. root.wallynet.local. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)

;NAME SERVER INFORMATION
@       IN  NS          primary.wallynet.local.

;RECORD HOSTNAME TO IP ADDRESS
primary     IN  A  192.168.1.3
@       IN A    192.168.1.3

;WHAT IS BELOW IS COMMENTED OUT FOR NOW (CAME FROM A RESOURCE ONLINE)
;@       IN  NS          masterdns.unixmen.local.
;@       IN  NS          secondarydns.unixmen.local.
;@       IN  A           192.168.1.101
;@       IN  A           192.168.1.102
;@       IN  A           192.168.1.103
;masterdns       IN  A   192.168.1.101
;secondarydns    IN  A   192.168.1.102
;client          IN  A   192.168.1.103


;HERE I AM DEFINING A CNAME
www     IN A    192.168.1.2

更新:这是我在 named.conf 中添加的区域配置:

zone "wallynet.local" IN {
        type master;
        file "/var/named/fwd.wallynet.local";
        allow-update { none; };
};

zone "1.168.192.in-addr.arpa" IN {
        type master;
        file "/var/named/reverse.wallynet.local";
        allow-update { none; };
};

答案1

首先:缺少一个换行符:

 $TTL 86400 @ IN SOA primary.wallynet.local. root.wallynet.local. (
         2011071001  ;Serial

应该:

 $TTL 86400 
 @ IN SOA primary.wallynet.local. root.wallynet.local. (
         2011071001  ;Serial

第二:为 IP 地址(而不是域名)创建反向 DNS 记录和区域,并使用 IN-ADDR.ARPA
对于 192.168.1.0/24 范围,您的named.conf区域定义条目将如下所示:

zone "1.168.192.in-addr.arpa" {
  type primary;
  file "/var/named/reverse.wallynet.local";
  };

验证反向区域语法的正确命令行是:

 named-checkzone 1.168.192.in-addr.arpa /var/named/reverse.wallynet.local

您的命令nslookup -x www.wallynet.local会产生错误,因为-x据我所知,它根本不是一个有效的选项。

您可能会与其他/更好的 DNS 测试工具混淆,dig该工具使用-x选项进行反向查找。但反向查找是针对 IP 地址而不是主机名进行的,因此您可以使用:

 dig -x 192.168.1.102 

以下情况也是如此nslookup

 nslookup 192.168.1.102 

答案2

它不知道是什么primary.wallynet.local。可能,向前区域根本不包含这样的名称?不幸的是,我们从未看到您的前向区域,因此无法检查。我只确信存在www A 192.168.1.2记录。此外,似乎主区域名称服务器设置为其他名称;否则它也不会加载。或者,也许 DNS 服务器机器本身的 DNS 解析已失效。我们也不知道。

更新

事实证明,您所有的“反向”检查都是错误的。nslookup -x没有显示任何新内容,因为它不知道“x”是什么,所以这并不表明它“给出了正确的结果”;named-checkzone第二次调用时使用了错误的区域名称。请按照我在评论中要求的那样做:不要(仅)显示您的解释,而要显示原始证据 — 区域和配置片段!

附言

顺便一提,避免使用那里的网络在生产中:192.168.0.0/24、192.168.1.0/24、192.168.88.0/24,因为这些是许多设备的默认设置(Mikrotik 的最后一个);当你开始构建 VPN 时,你会感谢我的。养成改变它们的习惯从一开始就,实验室是养成这种习惯的绝佳机会。

相关内容