域名解析详解

2019-11-26 12:13:06 浏览数 (1)

我们知道网络通讯基本上是基于TCP/IP的,而TCP/IP以IP地址为基础,而域名仅仅是为了方便人类的记忆而设计的名称,计算机在网络中进行通讯时不能识别域名,只能识别IP地址,所以计算机在进行网络通讯之前需要先完成域名到IP的转化,我们称之为域名解析。

域名相关机构角色的关系

ICANN,全称是互联网名称与数字地址分配机构,一个非营利性的国际组织,负责在全球范围内对互联网唯一标识符系统及其安全稳定的运营进行协调,包括IP地址的空间分配、通用顶级域名以及国家和地区顶级域名系统的管理、根服务器系统的管理。

IANA,互联网数字分配机构,早期代表美国政府行使ICANNA的职能,后来工作交由ICANN负责。

域名注册局,是顶级域名下注册的域名的数据库。注册操作者是域名系统(NIC)的一部分,它保存了域名的数据。每个NIC都是一个组织,它管理顶级域名下的域名注册,负责控制域名分配政策。比如.com注册局则保存.com域名的数据,成为注册局需要向ICANN申请。

域名注册商,是经认证可向公众销售域名的组织,如 godaddy。

域名解析商,是提供域名解析服务的组织,比如dnspod。

此外,CNINIC和通信管理局是两个具有中国特色的组织,分别负责域名的实名和备案,这两个环节是域名使用过程中最为耗时最为繁琐的环节。

DNS解析架构的演变

早期接入互联网的设备很少,IP的管理比较简单,最开始是是通过本地Hosts文件的方式对域名和IP的映射关系进行管理;后来为了解决本地Host带来的配置不一致的问题,改为Hosts文件由Ftp统一发布,各个设备定时从Ftp更新Hosts 文件;再到后来出现了中心化的DNS服务集群提供域名解析服务;但随着接入互联网的设备增加,域名解析的请求量暴增,中心化的DNS服务集群开始暴露出明显的缺陷。客户机直接将所有查询请求发往中心化的DNS服务器,同时DNS服务器直接对所有查询客户机做出响应,出现了有单点故障,通信容量,远距离通信延迟,维护开销大等问题。为了解决中心化DNS服务存在的问题,出现了分布式DNS层次架构。

DNS解析架构的演变

DNS服务器一般分三种,根DNS服务器,顶级DNS服务器,权威DNS服务器。

DNS解析过程

  1. 当在浏览器中输入URL时,浏览器会先检查自己的缓存是否有域名IP的映射关系,有则直接使用IP进行通信;
  2. 如果浏览器没有缓存,则操作系统会检查本地Hosts文件是否有域名IP的映射关系,有责使用IP进行通信;
  3. 如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有映射关系,有则直接返回完成域名解析;
  4. 如果至此还未找到映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,也就是常称的本地DNS服务器,如果服务器已缓存了映射关系,则使用这个IP地址映射返回完成域名解析,此时解析不具有权威性;
  5. 如果本地DNS服务器缓存已经失效(以转发模式为例),本地DNS服务器就把请求发至13组根DNS服务器,根DNS服务器收到请求后会判断这个.com域名是谁管理,并会返回一个负责该顶级域名服务器。本地DNS服务器收到顶级域名服务器信息后,将会联系负责.com域的服务器。该.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级.tencent.com域DNS服务器给本地DNS服务器。当本地DNS服务器收到该服务器的信息后,就会找向.tencent.com域服务器查询cloud.tencent.com域名指向的主机地址,返回给浏览器并将映射关系缓存,至此完成域名解析的过程。

整个迭代查询的过程均通过本地DNS服务器进行,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。

下一篇分享我们将给大家介绍如何通过实用的 dig 命令洞察 DNS 解析过程。

0 人点赞