鉴于:
domain.com resolves to some IP and
www.domain.com would resolve (usually) to the same IP
为什么 abc.www.domain.com 或 abcddomain.com 默认不解析为下一个较低的可用 N 部分名称?
答案1
因为区域中的主机名与委派区域或子区域中的主机名之间存在差异。
假设 www.example.comwww
是 example.com 区域中的主机名。是的,example.com 中有一台计算机为该区域提供服务,但 DNS 系统明确配置为“www 是此处的主机”,而不是“有一个名为 www 的子区域”。
当然,一些 DNS 服务器软件支持使用通配符,因此可以将它们配置为在 有一个区域www.example.com
,然后在 处使用通配符*.www.example.com
并使其全部指向同一个 IP。
当然,没有什么可以阻止任何人创建自己的 DNS 服务器软件,只要它“遵循”DNS 协议,它就可以按照他们想要的任何方式做出响应。
答案2
这里的实际关系与您的想法完全相反。Domain.com 不是 www.domain.com 的后备地址。Domain.com 是以 domain.com 结尾的所有可能地址的名称和已在 DNS 记录中明确链接到 www.domain.com。万维网并不是使用互联网的唯一服务,甚至也不是最古老的服务,如果拥有 domain.com 的组织没有网站,他们也可以很容易地将其链接到 mail.domain.com 或 ftp.domain.com。对于没有明确只拥有网站的组织,域名通常是其网络内所有计算机的后缀,链接可以分配给其中任何一台或一组计算机。
提升 DNS 级别通常意味着跨越组织边界。在这种情况下,domain.com 由假设的示例公司所有,因此将尝试访问该网站的人引导至其网站是合理的。另一方面,com. 域名由 DNS 的主要参与者 Verisign 所有,它无法知道您真正感兴趣的是它的众多客户中的哪一个。
答案3
即使名称“machine”的一部分恰好解析为单个IP(例如通过本地主机条目),我也会期望abcmachine解析为同一个IP。
/etc/hosts 条目不是 DNS;我认为它们实际上早于DNS 和多级点名的概念。在发明 DNS 之前,大多数系统只使用单词名称,并a.b.c.machine
没有真正形成。
至于 DNS 本身,它只是其发明者做出的一个选择,默认情况下只有明确创建的名称才可解析,而没有自动扩展等“神奇”功能。
因此,当您看到www.example.com
解析到某个地址时,这是因为域名所有者实际上添加了将单个子域“www”添加到其 DNS 区域 – 并不是因为 DNS 会自动复制它。
请注意,DNS实际上做将其作为选择参加功能。如果您为(在任何级别)创建 DNS 条目*.example.com
,则同一级别(例如foo.example.com
)的所有未知子域将自动解析为与*
条目相同的数据。这实际上用于许多网站托管系统;例如,GitHub 有一个*.github.io
条目可以自动捕获所有用户名。
但在实践中,它确实让事情恼人的在许多情况下(在网络之外)。如果域名选择使用通配符,那么每次您在子域名中输入错误时,您都不会再收到一条实际的错误消息,提示您弄错了名称 - 相反,它会悄悄地转到与您想要的完全不同的地方。