正确地为名称服务器编写区域文件

正确地为名称服务器编写区域文件

我需要为新公司域名编写区域文件。假设公司拥有 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. 

相关内容