DNS域名解析过程
dns 即是 domain name system 域名系统的缩写,将域名和 ip 的映射关系保存在一个分布式数据库中。
首先我们要明确一个观点。运行浏览器或者任何应用程序的主机和服务器之间,或者主机和主机之间,只能使用IP进行链接通讯,只使用域名是无法经行通讯的。
但是用户通过浏览器访问网站,一般情况下在浏览器中输入网站的域名,这个时候浏览器会向 DNS 服务器发送 DNS 请求,请求域名对应的 IP 地址。DNS 服务器查询到 IP 地址以后,将 IP 地址返回给浏览器,浏览器通过该 IP 地址访问网站。
下面以一个简单的物联网设备访问testing.lorex.com为例讲解域名解析。
上图中几个步骤介绍了域名解析的流程,每个步骤如下:
-
设备需要访问域名为testing.lorex.com的服务器,则会发起查询该域名的 IP 地址的 DNS 请求。该请求首先被发送到了本地 DNS 服务器上。本地 DNS 服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果。如果没有,本地 DNS 服务器还要向 DNS 根服务器进行查询。
-
本地 DNS 服务器向根服务器发送 DNS 请求,请求域名为 testing.lorex.com的 IP 地址。
-
根服务器经过查询,不会直接返回域名和 IP 地址的对应关系。但是会告诉本地 DNS 服务器,可以到"xxx.com"顶级域名服务器上继续查询,并返回"xxx.com"顶级域名服务器的IP地址。
-
本地 DNS 服务器根据根域名服务器返回的IP地址向 “xxx.com” 顶级域名服务器发送 DNS 请求,请求域名testing.lorex.com 的 IP 地址。
-
xxx.com 顶级域名解析服务器收到请求后,也不会直接返回域名和 IP 地址的对应关系,而是告诉本地 DNS 服务器,该域名可以在 “xxx.lorex.com” 权威域名服务器上进行解析获取 IP 地址,并返回 “xxx.lorex.com” 权威域名服务器的地址。
-
本地 DNS 服务器向 “xxx.lorex.com” 权威域名服务器发送 DNS 请求,请求域名testing.lorex.com 的 IP 地址。
-
“xxx.lorex.com” 权威域名服务器收到请求后,在自己的缓存表中发现了testing.lorex.com该域名和 IP 地址的对应关系,并将IP地址返回给本地 DNS 服务器。
-
本地 DNS 服务器将获取到与域名对应的 IP 地址返回给设备端,并且将域名和 IP 地址的对应关系保存在缓存中,以备下次别的用户查询时使用。
9)设备端收到本地域名服务器返回的testing.lorex.com对应的IP地址之后通过IP地址经行数据访问。