你在终端敲dig example.com,或是翻看DNS配置文件,见过www.example.com.这种末尾带点的写法。这个末尾圆点看着像输入失误,实际并不是错误,也不是多余字符。这个点代表DNS体系最顶层结构,根域。
域名系统是树形结构。树根处在最顶端,没有名称,或者说它的名字就是这一个点。我们熟知的.com、.cn、.org,全部是从这个根延伸出来的分支。写www.example.com的时候,完整无省略写法是www.example.com.,末尾的点就是根。平时软件会自动补上这个点,用户可以省略。但部分场景省略尾点,含义就会发生变化。

这类完整域名叫做完全限定域名,缩写FQDN。完全限定代表域名书写完整,解析器不会再追加后缀。相对域名则依赖上下文,解析器会依据当前配置补充域名后缀。举个例子,example.com区域文件写www,会被理解为www.example.com。可如果写www.example.com不带尾点,部分系统会解析成www.example.com.example.com.,引发解析错误。所以BIND这类DNS服务器配置文件,书写完整域名,末尾的点不能省略。
根域名本身不对外开放注册,无法购买,也不能指向服务器IP。它更像整个域名体系的坐标原点。DNS解析流程,就是从这个原点开始。电脑向本地DNS服务器询问www.example.com地址。本地服务器缓存无记录,就从根发起查询。根服务器不会直接返回最终IP,只会告知.com服务器地址,引导继续查询。之后.com服务器返回example.com权威服务器位置,逐层查询,最终拿到IP地址。末尾这个点,就是整套查询链路的起点。
全球一共有13个根服务器地址,编号A到M。这不代表只有13台物理服务器,是13组逻辑地址。每组逻辑地址背后部署大量物理服务器,依靠Anycast技术部署全球各地。在中国访问根服务器,和巴西用户访问,可能连接不同物理机器,但根区文件内容完全一致。根区文件记录全部顶级域名委派信息,例如.com、.cn的管理主体。IANA负责维护这份根区文件。
普通用户日常很难感知根域名存在。浏览器、操作系统会自动补齐尾点,地址栏不会显示这个符号。但dig命令输出里看到example.com.不用觉得奇怪,只是展示完整原始域名。部分网络过滤工具仅匹配不带尾点的example.com,忽略example.com.,用户就可以依靠末尾圆点绕过过滤,这类情况曾经真实出现。根域名就是DNS的底层基座,不起眼,所有域名都依托它运行。