大家下午好!
我正在检查一些 BIND 区域文件,遇到了一个奇怪的问题,我还没有找到好的答案。这些区域文件中有几个只有一个点 (.) 的 ORIGIN 指令。我知道这看起来很奇怪。以下是经过清理的指令:
$ORIGIN .
$TTL 600 ; 10 minutes
example.com IN SOA ns1.example.com. support.example.com. (
2016010101 ; serial
28800 ; refresh (8 hours)
120 ; retry (2 minutes)
1209600 ; expire (2 weeks)
86400 ; minimum (1 day)
)
该文件似乎运行正常,并通过了 DNSStuff 的在线测试。我确实计划
各位大师有什么想法吗?
感谢大家观看!
G
答案1
http://www.zytrax.com/books/dns/ch8/origin.html
$ORIGIN
定义一个基本名称,在处理区域文件时,将根据该基本名称进行“不合格”名称(没有终止点的名称)替换。
当设置为仅一个点时.
,这意味着只会添加/替换一个点。就是这样。
通常你会看到:
$ORIGIN example.com.
@ IN NS ns1.example.com
@ IN NS ns2.example.com.
@ IN MX 5 mail
因为该@符号是区域文件中 $ORIGIN 的简写,所以将其补写为:
example.com. IN NS ns1.example.com.example.com.
example.com. IN NS ns2.example.com.
example.com. IN MX 5 mail.example.com.
第一行显示的是典型的错误记录,当 $ORIGIN 附加到缺少尾随 的 FQDN 时,就会产生这种替换结果.。
将 $ORIGIN 设置为点会使 @ 简写变得不切实际,但可以防止出现诸如上面这样的事故。
$ORIGIN .
example.com IN NS ns1.example.com.
example.com. IN NS ns2.example.com
将自动完成/更正为
example.com. IN NS ns1.example.com.
example.com. IN NS ns2.example.com.
而不是进入
example.com.example.com. IN NS ns1.example.com.
example.com. IN NS ns2.example.com.example.com.
如果 $ORIGIN 仍然是example.com.
域,就会发生这种情况。