在 Ubuntu 服务器中安装 Bind9 后反向 DNS 解析不起作用

在 Ubuntu 服务器中安装 Bind9 后反向 DNS 解析不起作用

我在 ubuntu 服务器中安装了 DNS 服务器(bind9),并且可以使用 nslooup 和 dig 进行从主机名到 IP 地址的名称解析;但是当我尝试进行反向查找时出现错误

nslookup 192.168.137.5 
** server can't find 5.137.168.192.in-addr.arpa: NXDOMAIN

该IP地址是本地服务器的IP地址,也是安装了bind9的名称服务器。如果我做正向查找就可以了

nslookup example.com
Server:         192.168.137.5
Address:        192.168.137.5#53

Name:   example.com
Address: 192.168.137.5
Name:   example.com
Address: ::1

这是我的配置文件总共3个:named.config.local,forward.example.com,reverse.example.comnamed.conf.local

zone "example.com" IN {
        type master;
        file "/etc/bind/forward.example.com";
};

zone "137.168.192.in-addr.arpa" IN {
        type master;
        file "/etc/bind/reverse.example.com";
};

转发.example.com

$TTL    604800
@       IN      SOA     example.com. root.example.com. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      home-server.example.com.
@       IN      A       192.168.137.5
@       IN      AAAA    ::1
home-server     IN      A       192.168.137.5
wintop  IN      A       192.168.137.1

反向.example.com

$TTL    604800
@       IN      SOA     example.com. root.example.com. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      home-server.
@       IN      PTR     example.com.
@       IN      AAAA    ::1
home-server     IN      A       192.168.137.5
host    IN      A       192.168.137.5
wintop  IN      A       192.168.137.1
10      IN      PTR     home-server.example.com.
11      IN      PTR     wintop.example.com.

答案1

根据您的forward.example.com区域文件,您的reverse.example.com区域文件应如下所示:

$TTL    604800
$ORIGIN 137.168.192.in-addr.arpa.
@       IN      SOA     example.com. root.example.com. (
                              3         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
@       IN      NS      example.com.
5       IN      PTR     example.com.
1       IN      PTR     wintop.example.com.

反向区域中不应有AAAAA记录,除非作为子区域代表团中的粘合记录。

您原来的反向区域文件坚持认为 IP 地址 192.168.137.10 为home-server.example.com,192.168.137.11 为wintop.example.com,这与您的正向区域不一致。

声称 IPv6 本地主机地址::1是愚蠢的。在反向区域它根本没有任何作用,在前进区域它就是错误的。当客户端询问“哪里是home-server.example.com?”时,您的转发区域将得到服务器答案:“对于 IPv4,它是 192.168.137.5;对于 IPv6,它是 ::1。”然后客户会想:“哈。我像 Windows Vista 以来的所有现代操作系统一样都支持 IPv6,所以这个名字只是一种指向……我的奇特方式?太好了,我不需要做任何事情。”毕竟外网连接就可以了!” ...除非请求实际上来自home-server.example.com,否则这可能不是您想要发生的情况。

请记住,DNS 服务器只是将记录传递给客户端,根本不进行任何解释;客户是实际使用该信息的人。

您可能还需要考虑哪一个是典范192.168.137.5 的名称:是它home-server.example.com还是只是example.com?您可能必须将其中一个名称设为另一个名称的别名(CNAME 记录);否则,您可能无法成功验证两个名称的 SSL/TLS 证书。

所以你的前区也许应该是这样的:

$TTL    604800
$ORIGIN example.com.
@       IN      SOA     example.com. root.example.com. (
                              3         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      example.com.
@       IN      A       192.168.137.5
home-server     IN      CNAME example.com.
wintop  IN      A       192.168.137.1

相关内容