当我编辑绑定 DNS 记录时,我需要添加一个结尾句点才能使其正常工作。这有什么意义?
为什么当我使用 everydns.net 时,他们不要求我添加尾随句点?
这是一个实施上的怪癖吗?
答案1
DNS 本身有一个根区域。这个区域被字面称为“。”。绑定要求您完全限定 DNS 名称(这包括 . 或根区域)。其他 UI 通过为您假设根区域来简化此过程。
在 Bind 中,您可以定义一个变量,ORIGIN
如果您未指定 FQDN(完全限定域名,包括尾随的 .),则该变量将自动附加。 参宿一有一个关于语法和各种用法的优秀示例。
答案2
尾随的‘.’使名称成为“完全限定域名”,即绝对域名。
在标准的“主文件格式”文件中,如果您不添加尾随的“。”,则假定名称与当前区域文件相关$ORIGIN
(该名称可以在区域文件中指定,如下所示,也可以从其他zone
语句中获取named.conf
)。
IE
$ORIGIN example.com.
mail IN A 192.168.1.1
mail2 IN A 192.168.1.2
server IN A 192.168.1.3
@ IN MX 10 mail ; not FQDN - example.com. appended
IN MX 20 mail2.example.com. ; FQDN
IN MX 30 mail.example.net. ; FQDN in another domain
IN MX 40 mail2.example.net ; ERROR - not FQDN - example.com appended
www IN CNAME server ; not FQDN - example.com. appended
答案3
答案4
尾随的点告诉 DNS 服务器这是一个完全限定名称。点是 DNS 层次结构的根。如果您不使用点,DNS 服务器将假定它是当前区域中的记录并为您附加它。例如,如果您在 exmaple.com 中有一个指向 host.example.org 的 CNAME,当您查询它时,您将得到 host.example.org.example.com,这可能不是您想要的。
您不需要使用 everydns.net 的原因是他们可能编写了自己的 UI,因此您不需要担心这个技术细节。