BIND 9 – 如何input主域名的DNSlogging?

假设我有一个名为example.com的域。 该工作的子域,但我不能附加example.com到自己的IP地址。

wifi IN A 1.1.1.1 ; -Works (wifi.example.com) router IN A 1.1.1.2 ; -Works (router.example.com) @ IN A 1.1.1.3 ; - Doesn't Work (example.com) 

named-checkconf和named-checkzone都不返回任何内容。 我比较新的BIND,而不是麻烦拍摄我的区域文件。 你能简单地提供实现我的上述问题的指示吗?

要添加一个地址logging( A / AAAA ),就像在你的例子中一样,不pipe它是在区域顶点还是在其他层次上,你只需要指定所需的所有者名称即可。

一个不依赖任何“技巧”的例子:

 example.com. IN A 192.0.2.7 

你所做的也是一个潜在的工作方式,但@的价值是非常敏感的。
@扩展到当前的原点(可以使用$ORIGIN指令进行更改)。

在没有$ORIGIN指令的区域文件中,原始位置是区域名称( example.com. )。
如果有$ORIGIN指令,你将不得不跟踪当前的来源是什么,以了解@实际上是什么意思。 (你添加的行会影响它的意思。)

相同的名字(在你的例子中用于其他logging)同样适用,它们也是相对于当前的原点。

例如

 wifi.example.com. IN A 192.0.2.8 

正在使用绝对名称,并且不是上下文敏感的

 wifi IN A 192.0.2.8 

是上下文敏感的,并将扩展到无论目前的起源附加到它的无线,与使用@几乎相同的含义。

你有不同的成功与例如wifi@可以解释为你添加这些行在$ORIGIN指令的区域文件中的不同位置。

没有显示任何错误的named-checkconf -zj / named-checkzone支持这个理论,因为它不是一个实际的错误,只不过是你在不同的地方添加了logging,例如在foo.example.com. 而不是在example.com.

为了查看实际的区域数据,你可以将其格式化为完全展开的forms,你可以很容易地得到这个例如dig @localhost example.com AXFR (如果你允许自己AXFR)或named-compilezone -f text -F text -s full -j -o - example.com db.example.com (如果有文件可用)。

在DNS区域文件中, @的资源logging被replace为$ORIGIN (通常是区域的名称),但是也可以使用FQDN作为资源logging,并使用尾部来终止它 (为了防止另一个速记约定,其中资源logging没有尾随. $ORIGIN

如果您的$ORIGIN正确(并设置为example.com),则以下内容是等同的:

 example.com. IN A 192.168.0.0 @ IN A 192.168.0.0