我需要为新公司域名编写区域文件。假设公司拥有 company.com,我需要为 2 个域名 play1.playground.company.com 和 play2.playground.company.com 编写区域文件。定义区域文件 Origin 行时,我是否需要输入整个 FQDN play1.playground.company.com。还是只需输入 play1.playground 就足够了?以下区域文件可以行得通吗?
$ORIGIN play1.playground.company.com.
$TTL 3600
@ IN SOA ns hostmaster ( 1614244859 7200 3600 1209600 3600 )
@ IN NS ns
@ IN A 1.1.1.1
@ IN MX 10 mail
ns IN A 10.0.0.2
mail IN A 10.0.0.1
www IN CNAME play1.playground.company.com.
wwwtest IN CNAME www
答案1
$ORIGIN
定义区域文件中不合格名称的完成方式。
您可以使用任何东西,甚至重新定义 $ORIGIN
来改变同一区域文件中后续记录的替换行为。
但这可能会带来彻底的混乱。
$ORIGIN
应完全合格并以 . 点结尾。
按照惯例,$ORIGIN
应将其设置为区域文件所属的区域名称,当未明确定义时,Bind 将执行此操作。
也可以看看https://www.zytrax.com/books/dns/ch8/origin.html
事后想法:我也看到过$ORIGIN
仅设置为点的区域文件.
。
结果是实际上没有发生任何替换。这迫使区域管理员始终在任何地方使用 FQDN,这意味着您不能使用简写@
,但也可以防止出现以下情况,即在原本应为 FQDN 的内容后面缺少句号导致 CNAME 记录指向play1.playground.company.com.play1.playground.company.com.
$ORIGIN play1.playground.company.com.
www IN CNAME play1.playground.company.com
我不知道这样做是否更有意义,但它确实使得有和没有终止的记录.
表现相同,并且正如马虎的区域管理员所期望的那样:
$ORIGIN .
www.play1.playground.company.com IN CNAME play1.playground.company.com
www.play1.playground.company.com. IN CNAME play1.playground.company.com.