DNS工作流程
DNS,中文名为域名系统。它将域名和各种信息(如:IP地址)相互关联,使人们更方便地访问互联网。这个系统自1985年以来,一直作为整个互联网体系中不可或缺的基础设施之一。
DNS的体系
DNS的体系,本质上是一个层次化的、分布式的数据库系统。其中的域名空间由树状数据结构组成,从根域开始细分为多个区域。
根域(Root)是整个域名空间的顶端,用点号( . )表示。
其下一级为顶级域(TLD),有最常见的 .com 这一通用顶级域 (gTLD),也有如.cn这一类的国家/地区代码顶级域 (ccTLD)。
再下一级便是我们一般购买使用的二级域,如我们的域名 hypermoe.com 。
而子域是由二级域的所有者自行创建和管理的下层分支,如 www.hypermoe.com 中的 www. 便是 hypermoe.com 的子域。
早期的域名必须以英文句号( . )结尾,即为 www.hypermoe.com. 。如今系统会自动补充,因此已不再需要输入英文句号( . )结尾。
DNS的解析机制
递归查询与迭代查询
DNS的解析过程通常由本地DNS服务器代替客户端进行递归查询,而本地DNS服务器与根域、顶级域、权威域服务器之间则通过迭代查询完成交互。
在递归查询中,DNS解析器查询单个DNS服务器,而该服务器可能代表请求者查询其他DNS服务器。
而迭代查询是DNS解析器查询一条或多个DNS服务器链的过程。每个服务器将客户端转交给链中的下一个服务器,直到当前服务器能够完全解析请求。
解析流程
在本地DNS服务器与客户端没有缓存解析记录的情况下,解析过程开始对根域名服务器进行查询。
首先,本地DNS服务器会向根域名服务器查询要访问的域名其所属的顶级域服务器。
获得顶级域服务器的地址后,本地DNS服务器会再向顶级域服务器查询域名的权威域名服务器(即实际存储该域名最终解析记录的服务器,如DNSPod、Cloudflare)。
获得权威域名服务器的地址后,本地DNS服务器再向权威域名服务器查询域名的IP地址。
权威域名服务器返回对应的解析记录给本地DNS服务器,本地DNS服务器再返回给客户端后,便完成了整个解析查询流程。

DNS解析演示
首先,本地DNS服务器会查询根域名服务器的IP地址。但一般情况下,这个根域名服务器的IP地址都是有缓存在客户端或本地DNS服务器的,因此这一步我们跳过。
所有根域名服务器的IP都可以在 https://root-servers.org/ 查看。
获取到根域名服务器的IP后,我们使用根域名服务器的IP查询 www.hypermoe.com ,会返回该域名的顶级域服务器IP地址。

我们再向顶级域服务器查询 www.hypermoe.com ,会返回权威域名服务器的IP。

最后我们再向权威域名服务器查询 www.hypermoe.com ,就可以查询到域名的解析记录了。

参考文献
维基百科编者. 域名系统[G/OL]. 维基百科.
Cloudflare. What is DNS?[OL]. Cloudflare Learning Center.