DNS:尾随句点

Unk*_*own 37 domain-name-system bind

当我编辑绑定 dns 记录时,我需要添加一个尾随句点才能使其工作。这有什么意义?

为什么当我使用 everydns.net 时,他们不需要我添加尾随句点?

这是一个实现怪癖吗?

Kev*_*lby 28

DNS 本身有一个根区域。这个区域被字面称为“.”。绑定要求您完全限定 DNS 名称(这包括 . 或根区域)。其他 UI 通过为您假设根区域来简化此操作。

在 Bind 中,您可以定义一个变量ORIGIN,如果您未指定 FQDN(完全限定域名,包括尾随 .),该变量将自动附加。 Alnitak有一个很好的例子,说明了它的语法和各种用法。

  • 根区域不称为“.”。这是一个空标签。 (2认同)

Aln*_*tak 23

尾随的 '.' 使名称成为“完全限定域名”,即绝对域名。

在标准的“主文件格式”文件中,如果不添加尾随 '.' 然后假定名称是相对于当前区域文件的$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
Run Code Online (Sandbox Code Playgroud)

  • 还请记住,如果区域文件中未指定 ORIGIN,则由所服务区域的名称隐式定义。 (3认同)

Zor*_*che 10

使名称相对于根,没有它,名称将相对于当前区域。标准区域格式rfc1035rfc1034 中定义。

为什么当我使用 everydns.net 时,他们不需要我添加尾随句点?

这是一个实现怪癖吗?

是的,听起来 easydns.net 做得有点古怪。

  • 严格来说,它被称为“完全合格”,而不是“相对于根”。 (2认同)

Rus*_*ing 6

如果不输入尾随的“.” 然后服务器会将 $ORIGIN 的值添加到记录的末尾。这可能是一个非常有用的快捷方式,如果使用得当,可以节省大量输入。

不幸的是,也很容易忘记“。” 这可能导致难以诊断的问题。

从技术上讲,“。” 在记录的末尾,例如 www.serverfault.com。表示“com”gTLD 和“”根区域之间的分隔符。