答案1
域名末尾的点表示 DNS 根。如果您不指定点,DNS 解析器可以将其默认域附加到您提供的域。例如,如果您查询example.org
,结果可能会返回example.org.example.com.
(example.com.
即默认域)。但是,如果您查询example.org.
DNS 解析器,则始终会返回example.org.
。
答案2
单独的“.”表示“DNS 根域”,由知名的 DNS 根服务器提供服务,其地址随操作系统一起提供。它们将使用 TLD 服务器的 NS 记录进行回复,依此类推。
域名末尾的“.”表示“绝对地址”。不带点的域名表示“相对名称”。具体含义取决于上下文。
- 在用户环境上下文中,您有所谓的“DNS 后缀”,已配置到系统解析器中。它也可以通过 DHCP 接收。可以配置多个后缀;解析器首先尝试将它们附加到实际的相关查询中并解析它;只有在附加后缀时未找到任何内容时,它才会将相关查询视为绝对查询。
在 Linux 中,该后缀在 /etc/resolv.conf 中配置为“搜索”选项。在 Windows 中,您可以使用 ipconfig /all 查看它们并在“计算机身份”对话框中更新(连同本地系统名称、AD 域或某些工作组参与等)。
因此,nslookup domain.com 将首先尝试解析 domain.com.local.suffix.,并且仅当第一个未找到时才查询 domain.com.。
- 在区域文件上下文中,末尾的点是语法元素。当您为 BIND 编写区域文件时,您将有一个 ORIGIN 设置,可以是隐式设置(如您配置区域名称一样),也可以是显式设置,使用“$ORIGIN some.name.tld”指令。然后,所有不带点的名称都被视为已附加该来源。
例如考虑区域文件的这一部分:
$ORIGIN foo-bar.com.
www A 1.2.3.4
example.com A 2.1.3.4
xam CNAME www
exam CNAME example.com
alam CNAME example.com.
这部分相当于这个扩展部分:
$ORIGIN .
www.foo-bar.com. A 1.2.3.4
example.com.foo-bar.com. A 2.1.3.4
xam.foo-bar.com. CNAME www.foo-bar.com.
exam.foo-bar.com. CNAME example.com.foo-bar.com.
alam.foo-bar.com. CNAME example.com.
请注意,它在每个没有点的地方附加了 origin,并且在最后一个 CNAME 记录中没有附加 origin,因为已经有一个绝对名称。