我对 DNS 服务器完全陌生,作为一种教育工具,我在运行 dietpi(Debian 的精简版)的 RPi 上安装了 bind9。
外部地址可以完美解析,但内部地址则不行。我有一个 db.local.lan 文件,设置如下:
$TTL 3D
$ORIGIN local.lan.
local.lan. IN SOA dietpi.local.lan. hostmaster.local.lan. (
2020100418 ; serial
8H ; refresh
4H ; retry
4W ; expire
1D ; minimum
)
local.lan. IN NS dietpi.local.lan.
local.lan. IN MX 10 dietpi.local.lan.
localhost IN A 127.0.0.1
dietpi IN A 192.168.20.254
router IN A 192.168.20.1
NL1901ACV IN A 192.168.20.1
named.conf.local是这样的:
//
// Do any local configuration here
//
zone "local.lan" IN {
type master;
file "/etc/bind/db.local.lan";
};
zone "20.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.rev.20.168.192.in-addr.arpa";
};
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
我已经设置了一台电脑来使用此设备作为它的 DNS 服务器。从这台电脑我可以 ping google.com,但如果我尝试 ping dietpi 或 dietpi.local.lan,我会收到主机未找到错误。
named-checkconf 没有发现任何错误。
named-checkconf -z 返回以下内容 - 我不知道这是什么意思!
/etc/bind/db.local.lan:10: unknown RR type 'local.lan.'
/etc/bind/db.local.lan:11: unknown RR type 'local.lan.'
/etc/bind/db.local.lan:12: unknown RR type 'localhost'
/etc/bind/db.local.lan:13: unknown RR type 'dietpi'
/etc/bind/db.local.lan:14: unknown RR type 'router'
/etc/bind/db.local.lan:15: unknown RR type 'NL1901ACV'
zone local.lan/IN: loading from master file /etc/bind/db.local.lan failed: unknown class/type
zone local.lan/IN: not loaded due to errors.
_default/local.lan/IN: unknown class/type
/etc/bind/db.rev.20.168.192.in-addr.arpa:1: no TTL specified; using SOA MINTTL instead
/etc/bind/db.rev.20.168.192.in-addr.arpa:10: TTL set to prior TTL (1)
zone 20.168.192.in-addr.arpa/IN: loaded serial 2020100417
zone localhost/IN: loaded serial 2
zone 127.in-addr.arpa/IN: loaded serial 1
zone 0.in-addr.arpa/IN: loaded serial 1
zone 255.in-addr.arpa/IN: loaded serial 1
谁能解释我做错了什么?
提前致谢。大卫。
答案1
删除区域文件中主机条目开头的空格。
这里的问题是,如果一行以空格开头,那么该行应该引用前一个条目。在这种情况下,您不应该指定名称,因为它已经给出。此外,您不需要IN
区域文件中的 s。
该区域文件应该可以工作:
$TTL 3D
$ORIGIN local.lan.
local.lan. IN SOA dietpi.local.lan. hostmaster.local.lan. (
2020100418 ; serial
8H ; refresh
4H ; retry
4W ; expire
1D ; minimum
)
NS dietpi.local.lan.
MX 10 dietpi.local.lan.
localhost A 127.0.0.1
dietpi A 192.168.20.254
router A 192.168.20.1
NL1901ACV A 192.168.20.1
请注意,前两个条目开头有空格。这使得条目引用前一个条目,即区域本身。由于此引用由行中的前导空格给出,因此不应在这些条目中指定任何名称。文件其余部分的条目引用单独的记录,因此它们确实有名称,并且没有前导空格。