DNS解析过程及原理
DNS 解析过程及原理DNS 的角色在互联网上,最终确定访问主机位置的不是域名,也不是计算机的MAC 地址,而是IP 地址。而DNS 服务,或者叫域名服务、域名解析服务,就是提供域名与IP 地址的相互
DNS 解析过程及原理
DNS 的角色
在互联网上,最终确定访问主机位置的不是域名,也不是计算机的MAC 地址,而是IP 地址。而DNS 服务,或者叫域名服务、域名解析服务,就是提供域名与IP 地址的相互转换,也可以说是一种对应(映射)关联。在DNS 服务器中通常会有一个域名与IP 地址的映射表,以便用户无论是输入服务器名(相当于域名),还是服务器的IP 地址都可以及时得到转换,查找到相应的服务器。DNS 服务器所提供的服务是完成将主机名和域名转换为IP 地址的工作。
网络上的计算机之间实现连接却是通过每台计算机在网络中拥有的惟一的IP 地址来完成的,这样就需要在用户容易记忆的地址和计算机能够识别的IP 地址之间有一个解析,DNS 服务器便充当了地址解析的重要角色。
DNS 工作原理
域名解析有正向解析和反向解析之说,正向解析就是将域名转换成对应的IP 地址的过程,它应用于在浏览器地址栏中输入网站域名时的情形;而反向解析是将IP 地址转换成对应域名的过程,但在访问网站时无须进行反向解析,即使在浏览器地址栏中输入的是网站服务器IP 地址,因为互联网主机的定位本身就是通过IP 地址进行的,只是在同一IP 地址下映射多个域名时需要。另外反向解析经常被一些后台程序使用,用户看不到。
除了正向、反向解析之外,还有一种称为“递归查询”的解析。“递归查询”的基本含义就是在某个DNS 服务器上查找不到相应的域名与IP 地址对应关系时,自动转到另外一台DNS 服务器上进行查询。通常递归到的另一台DNS 服务器对应域的根DNS 服务器。因为对于提供互联网域名解析的互联网服务商,无论从性能上,还是从安全上来说,都不可能只有一台DNS 服务器,而是由一台或者两台根DNS 服务器(两台根DNS 服务器通常是镜像关系),然后再在下面配置了多台子DNS 服务器来均衡负载的(各子DNS 服务器都是从根DNS 服务器中复制查询信息的),根DNS 服务器一般不接受用户的直接查询,只接受子DNS 服务器的递归查询,以确保整个域名服务器系统的可用性。
当用户访问某网站时,在输入了网站网址(其实就包括了域名)后,首先就有一台首选子DNS 服务器进行解析,如果在它的域名和IP 地址映射表中查询到相应的网站的IP 地址,则立即可以访问,如果在当前子DNS 服务器上没有查找到相应域名所对应的IP 地址,它就会自动把查询请求转到根DNS 服务器上进行查询。如果是相应域名服务商的域名,在根DNS 服务器中是肯定可以查询到相应域名IP 地址的,如果访问的不是相应域名服务商域名下的网站,则会把相应查询转到对应域名服务商的域名服务器上。 DNS 解析过程
DNS 服务器解析的过程如下所示:
第一步:客户机提出域名解析请求, 并将该请求发送给本地的域名服务器。
第二步:当本地的域名服务器收到请求后, 就先查询本地的缓存, 如果有该纪录项, 则本地的域名服务器就直接把查询的结果返回。 第三步:如果本地的缓存中没有该纪录, 则本地域名服务器就直接把请求发给根域名服务器, 然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。
第四步:本地服务器再向上一步返回的域名服务器发送请求, 然后接受请求的服务器查询自己的缓存, 如果没有该纪录, 则返回相关的下级的域名服务器的地址。
第五步:重复第四步, 直到找到正确的纪录。
第六步:本地域名服务器把返回的结果保存到缓存, 以备下一次使用, 同时还将结果返回给客户机。
让我们举一个例子来详细说明解析域名的过程。假设我们的客户机如果想要访问站点:www.linejet.com , 此客户本地的域名服务器是dns.company.com ,一个根域名服务器是NS.INTER.NET ,所要访问的网站的域名服务器是dns.linejet.com, 域名解析的过程如下所示:
(1)客户机发出请求解析域名www.linejet.com 的报文。
(2)本地的域名服务器收到请求后, 查询本地缓存, 假设没有该纪录, 则本地域名服务器dns.company.com 则向根域名服务器NS.INTER.NET 发出请求解析域名www.linejet.com 。
(3)根域名服务器NS.INTER.NET 收到请求后查询本地记录得到如下结果:linejet.com NS dns.linejet.com (表示linejet.com 域中的域名服务器为:dns.linejet.com ), 同时给出dns.linejet.com 的地址, 并将结果返回给域名服务器dns.company.com 。
(4)域名服务器dns.company.com 收到回应后, 再发出请求解析域名www.linejet.com 的报文。
(5)域名服务器 dns.linejet.com收到请求后, 开始查询本地的记录,找到如下一条记录:www.linejet.com A 211.120.3.12 (表示linejet.com 域中域名服务器dns.linejet.com 的IP 地址为:211.120.3.12), 并将结果返回给客户本地域名服务器dns.company.com 。
(6)客户本地域名服务器将返回的结果保存到本地缓存,同时将结果返回给客户机。
这样就完成了一次域名解析过程。
,

A

B
C