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

问题描述:

我目前正在解析我工作中的大量区域文件,以便我们可以将此数据存储在数据库中并轻松地重新生成区域文件。DNS区域文件记录中的空白“名称”字段

我想让我的解析器非常严格,以便我们可以拾取任何形成不良的区域文件,并且在“名称”字段中找不到任何内容的某些记录。

例子:

$TTL 120 
$ORIGIN mywebsite.com 

@ NS  mynameserver.com 
@ A  112.134.156.178 
www CNAME mywebsite.com 
    A  111.122.133.144 
file CNAME mywebsite.com 

怎么会是第二个的记录处理?这是一个有效的语法?

一个空白的“名称”字段表示只需使用相同的名称,之前的纪录,所以在您的例子A记录是www.mywebsite.com 。请参阅RFC 1035的§5.1。

但是,这也使这个特定的文件非法 - 你不能有一个CNAME和一个A记录出现在同一个标​​签。请参阅RFC 1034的§3.6.2。

德鲁,你可能想看看进入“循环” DNS:http://www.cyberciti.biz/faq/how-do-i-setup-round-robin-dns/

我知道这是一个古老的问题 - 只是偶然发现它,而寻找其他东西,无论如何最后的评论 - “空白”名称“字段意味着只使用与以前的记录相同的名称”是不正确的。任何时候区域文件中都没有标签(标签是左侧的字段 - 即主机名或完全限定的域名),它将通过$ ORIGIN变量的值进行限定(在这种情况下,$ ORIGIN = mywebsite.com - 与还可以通过@参考)所以在上面的区域文件中的记录....

   A  111.122.133.144  is the same as 

mywebsite.com一个111.122.133.144的是.. @阿111.122.133.144

让所有说该区域文件包含非常差的语法,因为它似乎没有一个完全限定 - 即在根的末尾没有尾部点 - 如在 $ ORIGIN mywebsite.com中。 & somehost.mywebsite.com。 IN A 111.122.133.144

我猜域名服务器要么没有工作好还是为车

基本/一般在BIND区域文件至少,如果不是有尾随完全合格点缀在$ ORIGIN的的valuse var被添加到标签。

希望这有助于

-P

+0

这使得更多的意义则参宿一的答案。空或@意味着$ ORIGIN – baaroz