为什么 host 命令适用于反向 DNS 测试,但不适用于其他情况?

为什么 host 命令适用于反向 DNS 测试,但不适用于其他情况?

我可以用 测试我的区域文件named-checkzone,看起来没问题。

45.20.10.in-addr.arpa.zone区域文件(反向 DNS):

$TTL 30
@ IN SOA localhost. admin.example.com (
2017080101  ;serial
3H      ;refresh
1H      ;retry
2H      ;expire
1M)     ;neg ttl
@ IN NS localhost.;
;generate 1-254
$GENERATE 1-254 $ IN PTR host$.example.com

example.com.zone区域文件:

$TTL 30
@ IN SOA localhost. admin.example.com. (
2017072702  ; serial
3       ; refresh
1       ; retry
2       ; expire
1M)     ; negative TTL
            IN NS localhost.;
www.example.com.    IN A 192.168.111.45
www.example.com.    IN AAAA fe80::22c9:d0ff:1ecd:c0ef
foo.example.com.    IN A 192.168.121.11
bar.example.com.    IN CNAME www.example.com.
;generate 100 hosts
$GENERATE 1-100 host$.example.com. IN A 10.20.45.$

我可以使用 dig 命令测试区域文件,如下所示dig @localhost -t A www.example.com

我还可以像这样测试反向区域文件host 10.20.45.55 localhost

在主机命令的手册页中据说也可以像这样进行测试host host55.example.com localhost,但这会产生一条错误消息:

Using domain server:
Name: localhost
Address: 127.0.0.1#53
Aliases: 

Host host55.example.com not found: 2(SERVFAIL)

我不知道为什么这不起作用。任何帮助和解释都会很棒。

答案1

有关的文档$GENERATE给出以下语法:

$GENERATE start-stop[/step] lhs[{offset[,width[,type]]}] rr-type rhs[{offset[,width[,type]]}]

其中rr-typeCNAME、DNAME、A、AAAA、NS、PTR、...

因此,你的行:

$GENERATE 1-100 host$.example.com. IN A 10.20.45.$

应该是:

$GENERATE 1-100 host$.example.com. A 10.20.45.$

奇怪的是bind没有吐出任何关于此的错误/警告消息。

相关内容