Bind9 名称服务器无法解析本地域

Bind9 名称服务器无法解析本地域

我尝试在 Ubuntu 中设置绑定 DNS。

我有两台机器(VMware):

机器 A 是客户端:

IP: 192.168.1.1  (host-only)
hostname: example.com 

机器B是DNS服务器:

IP: 192.168.1.2 (host-only)

/etc/bind/named.conf.local:

zone "example.com" {
        type master;
        file "/etc/bind/db.example.com";
};
//reverse zone
zone "1.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/db.192";
};

/etc/bind/db.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      example.com.
@       IN      A       192.168.1.1
@       IN      AAAA    ::1

/etc/bind/db.192:

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

当我在客户端使用 nslookup 时:

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

Name:   example.com
Address: 192.168.1.1

nslookup 192.168.1.1
Server:     192.168.1.2
Address:    192.168.1.2#53

** server can't find 1.1.168.192.in-addr.arpa: NXDOMAIN

你能修好它吗?

答案1

首先,您在 named.conf.local 中声明您的区域是example.com。因此 B 主机名不能是example.com。它可能some-hostnameexample.com类似foo.example.com但不是example.com,因为它意味着您的区域是com并且 B 的主机名是 ,example这与您提供的配置不一致。

有錯誤/etc/bind/db.example.com

@       IN      NS      example.com.

这行用于指定域名服务器。这里你刚才说:

@(expand to example.com)'s name server is `example.com`

应该是

@       IN     NS      "B's hostname".example.com

然后指定与 NS 记录相关的 A 记录(即您的名称服务器 IP 地址):

hostname       IN      A       192.168.1.1
               IN      AAAA    ::1

但这仍然是错误的配置。你之前说过你的名称服务器是 B,IP 为 192.168.1.2,对吧?所以上面的语句应该是

hostname       IN      A       192.168.1.2

这对于中的 SOA 记录也是一样的db.example.com

@ IN SOA example.com. root.example.com.

应该 :

@       IN      SOA     "B's hostname".example.com.        root.example.com.

SOA里的记录db.192应该完全一样db.example.com,不用写1.168.192.in-addr.arpa.

然后你的 NS 和 PTR 记录又不正确了,它们应该是:

@       IN      NS      "B's hostname".example.com.
2       IN      PTR     "B's hostname".example.com.

我希望我没有遗漏任何东西,但最后一条建议是 Bind9 包含两个脚本named-checkzonenamed-checkconf。前者可以检查区域文件(即db.192db.example.com),后者可以检查 Bind9 配置(即named.conf.local)。

如果你有兴趣更好地了解 Bind9(和 DNS),你应该看看Zytrax Pro DNS 和绑定它通过大量示例很好地解释了配置选项。

相关内容