绑定:区域文件SOA RR语法是什么?

已经过了几天,我正在尽我所能来正确理解bind9官方文档:
http://ftp.isc.org/isc/bind9/cur/9.7/doc/arm/Bv9ARM.html

那里有很多bind9教程。 但是,我确实遇到了很多问题,将所提出的解决scheme与我能find的任何SOA RR的官方定义相协调。

其中,我也检查了:
http://en.wikipedia.org/wiki/Resource_record#DNS_resource_records
http://en.wikipedia.org/wiki/List_of_DNS_record_types
http://tools.ietf.org/html/rfc1035#page-12

尽pipe如此,我仍然对SOA RR的正确格式感到困惑。

许多教程似乎提供了一个类似于这个的语法:

example.com. 43200 IN SOA ns1.example.com. other.example.com. ( 2011090302 ;Serial Number 86400 ;refresh 7200 ;retry 1814400 ;expire 86400 ;minimum ) 

在括号之前我没有解释两个域的存在。 但是,没有第二个,名为checkzone的投诉。

但是,这个网站特别是:
http://forums.devshed.com/dns-36/bet-you-want-to-setup-a-dns-server-huh-141940.html
提供了一个SOA RR区域文件,如下所示:

 @ SOA ns1 ( ; ns1.basiczone.com is the primary server for basiczone.com postmaster ; contact email for basiczone.com is [email protected] 2004041700 ; Serial ID in reverse date format 21600 ; Refresh interval for slave servers 1800 ; Retry interval for slave servers 604800 ; Expire limit for cached info on slave servers 900 ) ; Minimum Cache TTL in zone records 

注意类IN的缺失。 另外,在左括号之前只有一个域(ns1)。

所以,主要的问题是:什么是SOA RR的精确,官方或最推荐的语法? 这个语法在哪里最精确的定义?

最后,何时使用SOAlogging? 我的理解是,我需要一个SOAlogging我想要承载的任何域,我想成为一个权威的名称服务器。

SOA之后的第一个名字是MNAME ,是区域权威的​​名称服务器 – 例如,您的名称服务器本身的名称。

第二个名称, RNAME ,看起来像一个域名,但不是。 如果用“。”replace“@”字符,则会出现string。 在该区负责人的电子邮件地址中。 (希望你的电子邮件地址在“@”之前没有“。”。)

对于这两个名称(以及区域文件中的其他名称),除非名称以句点结尾,否则区名称本身将被隐式附加: foo表示foo.example.com ,而foo. 意味着foo 。 一个常见的错误就是编写foo.example.com ,当你写了foo.example.com ,它foo.example.com这个发布绑定到foo.example.com.

圆括号允许您编写跨越文本文件中多行的资源logging。 你提供的一个例子是MNAMERNAME之间的开括号,而另一个RNAME它放在了RNAME ,但没有function上的区别。

“IN”指定了“internet”类,这是默认的,所以你可以不用。

推荐的语法:按照维基百科的例子 ,使用像digdnsq这样的工具来显示你的名字服务器实际上在告诉世界,而不是花费太多的精力来猜测绑定是如何parsing你的区域文件的。

精确的语法:BIND源代码。 (只有当你真的试图迂腐 – 如果你只是想使你的区域文件工作,没有必要。)

官方语法(或者至less官方的互联网相当于):

每个区域都应该有一个SOA。 如果你服务的区域(“权威”或不),你应该有SOA以及区域中的所有其他logging。 实际上,如果你正在编写一个区域文件,把SOA放在那里 – 如果你从别人那里复制整个区域文件,那么你就可以用这种方式获得SOA,所以你不需要担心。