在 resolv.conf 中,为什么我的搜索域后面有一个句点?

在 resolv.conf 中,为什么我的搜索域后面有一个句点?

文件的搜索部分server.com和有什么区别?server.com./etc/resolv.conf

user@host /etc/sysconfig/network-scripts $ head -n 3 /etc/resolv.conf
# Generated by NetworkManager
domain sub.company.com
search sub.company.com sub.company.com. company.com. company.com

答案1

.是 DNS 层次结构中的最顶端。com、、等都在 之下。您看不到人们在浏览器或其他应用程序中键入的原因是,随着时间的推移,应用程序已经开发出来“帮助”您org,而不需要它。正确的 FQDN 仍然以句号结尾,尽管在net.http://google.com.最多現在的案件。

当您有多个可附加到 DNS 查询的搜索后缀时,在末尾指定一个句点将阻止您的客户端尝试通过附加其他后缀来“帮助”您。它基本上是在说“这是完整的地址。不要尝试附加任何其他内容。”

答案2

因为完全合格的域名末尾总是有一个句点。

RFC 1034

Since a complete domain name ends with the root label, this leads to a
printed form which ends in a dot.  We use this property to distinguish between:

   - a character string which represents a complete domain name
     (often called "absolute").  For example, "poneria.ISI.EDU."

   - a character string that represents the starting labels of a
     domain name which is incomplete, and should be completed by
     local software using knowledge of the local domain (often
     called "relative").  For example, "poneria" used in the
     ISI.EDU domain.

答案3

如果末尾没有“.”,则搜索路径中的其他内容可能会附加到主机名中。但是,我通常不会在 /etc/resolv.conf 文件中的搜索路径上看到这种情况,因为末尾的“.”用于主机名规范。

如果您在请求解析 qqq 时 /etc/resolv.conf 中的搜索包含 aaa.domain.com 和 bbb.domain.com,则解析器将尝试 qqq,如果失败,则尝试 qqq.aaa.domain.com,然后尝试 bbb.domain.com,直到其中一个成功或完全失败。

在同一个例子中,如果您输入 ddd.domain.com,解析器将尝试 ddd.domain.com,然后以类似的方式尝试 ddd.domain.com.aaa.domain.com 和 ddd.domain.com.bbb.domain.com。

如果您输入 ddd.domain.com。(请注意最后一个句点),解析器仅搜索 ddd.domain.com,并且不会从 /etc/resolv.conf 搜索路径附加任何内容。

相关内容