域名解析详解

  公司新闻     |      2023-09-07
域名解析详解

我们知道网络通信基本上是基于TCP/IP的,而TCP/IP是基于IP地址的,而域名只是为了人类记忆方便而设计的名称。计算机在网络中通信时无法识别域名,只能识别IP地址,因此计算机在进行网络通信之前需要完成从域名到IP的转换,我们称之为域名解析。

域名相关机构角色的关系

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

IANA,即互联网号码分配机构,早期代表美国政府履行ICANN的职能,后来工作移交给ICANN。

域名注册机构是在顶级域名下注册的域名数据库。注册管理运行机构是域名系统(NIC) 的一部分,负责保存域名数据。每个NIC都是一个管理顶级域下域名注册的组织,负责控制域名分配政策。例如,com 注册表存储.com 域名的数据。要成为注册管理机构,您需要向ICANN 提出申请。

域名注册商(例如godaddy)是经过认证可以向公众出售域名的组织。

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

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

DNS解析架构的演变

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

DNS解析架构的演变

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

DNS解析过程

当在浏览器中输入一个URL时,浏览器会首先检查自身缓存是否有域名IP映射关系,如果有,则直接使用该IP进行通信;如果浏览器没有缓存,操作系统会检查本地Hosts文件是否有域名的IP映射关系,负责使用IP进行通信;如果hosts中没有该域名的映射,则会查找本地DNS解析器缓存,看是否有映射关系,如果有则直接返回,完成域名解析;如果到目前为止还没有找到映射关系,首先会寻找TCP/IP参数中设置的首选DNS服务器,也就是俗称的本地DNS服务器。如果服务器缓存了该映射关系,就会使用这个IP地址映射返回并完成域名解析。此时,该决议并不具有权威性;如果本地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解析过程。