绑定:zonefile SOA RR 语法是什么?

aug*_*tin 1 bind dns-zone

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

那里有很多 bind9 教程。但是,在将建议的解决方案与我能找到的 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

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

许多教程似乎提供了与此类似的语法:

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

在括号开始之前,我不太解释这两个域的存在。然而,没有第二个,named-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 postmaster@basiczone.com
      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
Run Code Online (Sandbox Code Playgroud)

注意没有 IN 类。此外,在左括号之前只存在一个域 (ns1)。

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

最后,何时使用 SOA 记录?我的理解是,对于我想要托管的任何域以及我想要成为权威名称服务器的域,我都需要一个 SOA 记录。

tom*_*egg 6

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

第二个名称 ,RNAME看起来像一个域名,但实际上不是。如果将“@”字符替换为“.”,则会得到字符串。在区域负责人的电子邮件地址中。(希望您的电子邮件地址在“@”之前没有“.”。)

对于这两个名称(以及区域文件中的其他名称),区域名称本身是隐式附加的,除非名称以句点结尾:foo意味着foo.example.com,而foo.意味着foo。一个常见的错误是 write foo.example.com,它foo.example.com.example.com在你应该写的时候绑定到世界foo.example.com.

括号允许您在文本文件中编写跨越多行的资源记录。您提供的一个示例将左括号放在MNAME和之间RNAME,而另一个将其放在 之后RNAME,但没有功能差异。

“IN”指定“internet”类,这是默认值,因此您可以将其省略。

推荐语法:遵循维基百科示例并使用类似dig或的工具dnsq来展示您的名称服务器实际上告诉世界的内容,而不是花费太多精力去猜测 bind 如何解析您的区域文件。

精确语法:BIND 源代码。(只有当你真的想学究气时——如果你只是想让你的区域文件工作,则没有必要。)

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

每个区域都应该有一个 SOA。如果您为该区域提供服务(“权威”与否),您应该拥有 SOA 以及该区域中的所有其他记录。实际上,如果您正在编写区域文件,请将 SOA 放入其中——如果您从其他人那里复制整个区域文件,那么您将通过这种方式获得 SOA,因此您不需要担心它。

  • 很高兴我能帮助你。至于括号,它们的唯一目的是表示多行记录。如果您采用任一示例,删除注释,删除括号之间的换行符,使 SOA 全部位于一行,然后删除括号本身,结果将是正确的。当然,移动括号会改变几乎所有其他语法的含义……但不是这个。 (2认同)