一、域名的层级结构
根域名
域名的尾部都有一个根域名。www.baidu.com 真正的域名是 www.baidu.com.root,简写为www.baidu.com.,又因为根域名 .root 对于所有域名都是一样的,所以平时是省略的。
子域名
mail.example.com和calendar.example.com是example.com的两个子域,而example.com则是一级域名又称为顶级域.com的子域。
域名可分为不同级别,从右到左依次是一级域名、二级域名、…、多级域名。
顶级域名又分为两类:一是国家顶级域名,例如中国是.cn,美国是.us,日本是.jp等;二是国际顶级域名,例如表示工商企业的 .com,表示网络提供商的.net,表示顶级标杆、个人的.top,表示非盈利组织的.org等。
一般来说我们购买一个域名就是购买一个二级域名的管理权,有了这个管理权我们就可以随意设置三级、四级域名了。
主机名
主机名就是域名前缀,比如 www.baidu.com 的 www 就是主机名。
一个域名只能对应一个IP,一个IP可以对应多个域名。
二、域名解析的过程
域名系统(DNS):用来将域名解析成ip地址,域名只是一个ip地址的别名。
与域名的分级结构对应,DNS 系统也是一个树状结构,不同级别的域名由不同的域名服务器来解析,整个过程是一个「层级式」的。层级式域名解析体系的第一层就是根域名服务器,全世界 IPv4 根域名服务器只有 13 台(名字分别为 A 至 M),1 个为主根服务器在美国,其余 12 个均为辅根服务器,它们负责管理世界各国的域名信息。根服务器下面是顶级域名服务器,即相关国家域名管理机构的数据库,如中国互联网络信息中心(CNNIC)。然后是再下一级的权威域名服务器和 ISP 的缓存服务器。
一个域名必须首先经过根数据库的解析后,才能转到顶级域名服务器进行解析。
三、分级查询的实例
现在我们来看一个实际的例子。如果我们在浏览器中输入 https://news.qq.com
,那浏览器会从接收到的 URL 中抽取出域名字段(news.qq.com),然后将它传给 DNS 客户端(操作系统提供)来解析。
本机 DNS 配置(就是 /etc/resolv.conf 文件,里面指定了本地 DNS 服务器的地址,Windows 系统可能会有所不同):
$ cat /etc/resolv.conf
nameserver 202.106.0.20
nameserver 202.106.196.115
实际的流程里面,本地 DNS 服务器相当于门卫大爷,根域名服务器相当于局长同志,其余以此类推。客户端与本地 DNS 服务器之间的查询叫递归查询,本地 DNS 服务器与其他域名服务器之间的查询就叫迭代查询。
四、域名记录
域名服务器之所以能知道域名与 IP 地址的映射信息,是因为我们在域名服务商那里提交了域名记录。购买了一个域名之后,我们需要在域名服务商那里设置域名解析的记录,域名服务商把这些记录推送到权威域名服务器,这样我们的域名才能正式生效。