![启动 DNS 转发区域文件时出错](https://linux22.com/image/854514/%E5%90%AF%E5%8A%A8%20DNS%20%E8%BD%AC%E5%8F%91%E5%8C%BA%E5%9F%9F%E6%96%87%E4%BB%B6%E6%97%B6%E5%87%BA%E9%94%99.png)
我正在设置我的 DNS,但在 tail -f /var/sys/log 中收到错误。我在网络中设置了一个静态 IP 地址:192.168.10.1
May 11 18:13:54 s180368 named[3582]: command channel listening on ::1#953
May 11 18:13:54 s180368 named[3582]: managed-keys-zone: loaded serial 2
May 11 18:13:54 s180368 named[3582]: zone 0.in-addr.arpa/IN: loaded serial 1
May 11 18:13:54 s180368 named[3582]: zone 127.in-addr.arpa/IN: loaded serial 1
May 11 18:13:54 s180368 named[3582]: zone s180368.com/IN: has no NS records
May 11 18:13:54 s180368 named[3582]: zone s180368.com/IN: not loaded due to errors.
May 11 18:13:54 s180368 named[3582]: zone localhost/IN: loaded serial 2
May 11 18:13:54 s180368 named[3582]: zone 255.in-addr.arpa/IN: loaded serial 1
May 11 18:13:54 s180368 named[3582]: all zones loaded
May 11 18:13:54 s180368 named[3582]: running
这是我的正向区域文件(db.s180368.com):
;
$TTL 604800
@ IN SOA ns.s180368.com. root.s180368.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
ns IN NS 192.168.10.1
@ IN A 127.0.0.1
命名的.conf.本地:
#FORWARD LOOKUP ZONE
zone "s180368.com" {
type master;
file "/etc/bind/db.s180368.com";
};
在 /etc/hosts 中:
127.0.0.1 localhost
127.0.1.1 server
192.168.10.1 s180368.com s180368
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
/etc/resolv.conf
nameserver 127.0.0.1
search s180368.com
答案1
这两行就是问题所在:
s180368. IN NS 192.168.10.1
s180368. IN A 127.0.0.1
名称末尾的点使其成为完全限定域名,而不仅仅是区域下的主机名。本质上,bind 认为您试图包含有关名为s180368
(without .com
) 的完整域名的信息,而该域名不在区域内s180368.com
。
你可能想要更多类似的东西:
ns IN NS 192.168.10.1
@ IN A 127.0.0.1
@
在这种情况下是完整区域名称的快捷方式s180368.com.
您已经将其用于其上方的 SOA 记录。
注意:注册商可能需要两个不同的名称服务器地址,在这种情况下,您应该有一个 ns1 和 ns2,并且这些名称和 IP 地址(用于胶合)与您提供给注册商的地址相匹配。您的注册商还可能尝试验证您的名称服务器是否设置正确,尤其是在使用胶合记录时,如果是这样,则会失败,因为名称服务器是仅与您的本地网络相关的本地 IP(只有您本地网络内的解析器才能成功解析主机名)。