不久前,我为我们的 DNS 服务器设置了反向查找。DNS 服务器非常简单。我使用的是在 Debian jessie 上运行的 BIND9。IP 地址都是静态的。区域文件如下所示(我用以下内容替换了原始文件中的某些内容以example
隐藏某些信息):
$TTL 604800
@ IN SOA ns.example. someone.example.de. (
4358998787 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.example.
ns IN A 192.168.2.2
someone IN A 192.168.2.3
; And some more records...
反向查找文件看起来像这样(再次有一些伪装的信息......):
$TTL 604800
@ IN SOA ns.example. someone.example.de (
4561621654 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
@ IN NS ns.example.
1 IN PTR someting
2 IN PTR ns
; More records here
我的named.conf.local如下所示:
zone "example" {
type master;
file "db.bartscher";
notify no;
};
zone "2.168.192.in-addr.arpa" IN {
type master;
file "2.168.192.in-addr.arpa";
allow-update { none; };
};
如果我现在查找这样的名称:
$ host someone
someone.example has address 192.168.2.3
然后像这样反向查找该地址:
$ host 192.168.2.3
3.2.168.192.in-addr.arpa domain name pointer someone.example.2.168.192.in-addr.arpa.
该域名附加了很多内容
应该是这样的吗?当我查找其他域名(不在我们的域中)时,我会得到一个 IP 地址,该 IP 地址可以查找另一个名称,该名称会映射回相同的 IP 地址,而这对于我们的反向查找来说并不适用。我如何配置 BIND,以便查找 someone.example 返回 192.168.2.3,而查找 192.168.2.3 只返回 someone.example?这是理想的情况吗?还是反向查找返回另一个域是“正确的”?
为了设置反向查找,我遵循本指南
答案1
鉴于您在区域文件中放置记录的方式,这种情况是可以预料到的。在反向映射区域中,PTR 记录右侧的名称必须完全限定域名,因此让它们:
1 IN PTR someting.example.
2 IN PTR ns.example.
那些讨厌的尾随点很重要。不要忘记它们,否则您最终会再次附加 2.168.192.in-addr.arpa。