DNS区域文件记录中的空白“名称”字段

Dre*_*rew 5 dns bind

我目前在工作时解析大量区域文件,以便我们可以将此数据存储在数据库中并轻松地重新生成区域文件。

我试图使我的解析器非常严格,以便我们可以拾取任何格式不正确的区域文件,并且在“名称”字段中没有任何内容的情况下遇到了一些记录。

例:

$TTL 120
$ORIGIN example.com

@    NS      example.com
@    A       192.0.2.178
www  CNAME   example.com
     A       192.0.2.144
file CNAME   example.com
Run Code Online (Sandbox Code Playgroud)

第二个A记录将如何处理?这是有效的语法吗?

Aln*_*tak 6

空白的“名称”字段表示仅使用与先前记录相同的名称,因此在您的示例中,该A记录为www.example.com。参见RFC 1035的 §5.1 。

如果RR的条目以空白开头,则假定该RR由最后声明的所有者拥有。

但是,这也使该特定文件非法-您不能在同一标签上显示CNAMEA记录。参见RFC 1034的 §3.6.2 。