我试图在互联网上searchFQDN的定义。 维基百科说,一个FQDN
指定它在域名系统(DNS)的树层次结构中的确切位置,我会解释这一点,它是明确可parsing的(在DNS中)。
在WP的例子(很难,我不想用这个作为参考)陈述使用hostname.example.com.
我发现的RFC( RFC 1035是我发现的唯一不是协议特定的)没有提供FQDN符合条件的信息。
我认为只有像hostname.example.com这样的标识符是一个有效的FQDN(包括单独的所有主机名,域和TLD),但是这似乎是错误的。
是否需要FQDN始终在域名旁边包含主机名,即使该域只包含一个主机? 或者是FQDN应该可以通过DNSparsing的唯一定义? 例如域.tk是明确可解的,这是一个FQDN?
如果您不必附加任何进一步的标识符来明确parsing主机,我会认为一个名称是完全限定的。 如果不是这样,那么这个名字就会被认为是相对的。
RFC1535讨论了一个重要的观点:
绝对“根”FQDN格式为{name} {。}非“根”域名格式为{name}
在你上面的例子中,你可以将.tkparsing为tk. 以确保它毫不含糊。 有趣的是,这确实有一个有效的Alogging。
$ dig tk. ; <<>> DiG 9.8.3-P1 <<>> tk. ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 812 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;tk. IN A ;; ANSWER SECTION: tk. 20 IN A 217.119.57.22
编辑:RFC1535有另一个有趣的报价:
此外,在任何情况下,“。” 以指定名称存在时,应该假定它是一个完全限定的域名(FQDN),应该首先尝试作为根名称。
在ACM队列中 ,我定义了FQDN,如下所示:
DNS名称空间有一个树形结构,每个节点都有一个父节点,除了它自己的父节点。 节点的标签长度为1到63个字符,标签为空的根节点除外。 一个域是上下文中的一个节点,一个完全合格的域名有一个表示forms,只是节点名称,自下而上,每个名称后面跟一个句点(。)。 例如,www.google.com是名称为www的节点的完全限定名,父节点为google,祖父母为com,祖父母为DNS根。
任何时候,如果您使用“主机名称”或“主机部分”或“域名部分”等术语,您就会发现杂草中没有FQDN的定义,这完全符合您的目的。 FQDN的含义,而不是定义,可以通过考虑其反义词:非完全合格的域名来阐明。 为了完全合格,意味着你要指定所有域名到顶层,在这种情况下你可以附加一个最后一个点(。)来表示你已经这样做了。 less于完全限定意味着您正在查看的名称仅在search列表或默认域的上下文中有意义。
RFC 1535很有趣,因为我们当中有很多人使用多标签本地名称,但仍然期望search列表的行为 – 这使得其他许多事情都被破坏了,所以被取缔了。 但是,当我在1988-1993 [email protected]时,可以将邮件从[email protected]发送到matt @ decvax,并将其扩展到[email protected]和[email protected] .com,这一切只是工作。 原来,我们不得不放弃。 现在,如果您的演示文稿级名称中有一个点(即,您键入了该文件或显示该文件的程序),则世界上所有软件都假定为FQDN。
我的Sendmail书 (在我们都离开DEC.COM之后与Fred Avolio合着)也有一个关于这个主题的章节,这是一个有趣的阅读,因为它是与RFC 1535同时编写的。
我的2美分:
从最严格的意义上说,FQDN就是你在例子中所写的。
即hostname.example.com。
包括最后的点。
我不认为它必须通过DNSparsing,这只是一个语法的定义。