DNS域名解析流程

安全咨询 0 8441

DNS 即域名系统(Domain Name Server),其主要用于将域名解析为对应的 IP 地址。人们记住ip地址是很不方便的,所以需要域名来帮助记忆。

了解DNS服务器

QQ截图20230506132121.png

DNS域名解析的过程

解析的过程就是寻找哪台机器上有你需要资源的过程。当你在浏览器中输入一个地址时,例如http://www.baidu.com,其实不是百度网站真正意义上的地址。互联网上每一台计算机的唯一标识是它的IP地址,但是IP地址并不方便记忆。


大致的DNS解析的流程


查找 浏览器缓存

因为浏览器一般会缓存DNS记录一段时间,不同浏览器的时间可能不一样,一般2-30分钟不等,浏览器去查找这些缓存,如果有缓存,直接返回IP,否则下一步。


查找系统缓存

浏览器缓存中找不到IP之后,浏览器会查看本地硬盘的 hosts 文件,看看其中有没有和这个域名对应的规则,如果有的话就直接使用 hosts 文件里面的 ip 地址。如果在本地的 hosts 文件没有能够找到对应的 ip 地址,浏览器会发出一个 DNS请求到本地DNS服务器


主机A先去本地服务器进行递归查询;

本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果,此过程是递归的方式进行查询。如果没有,本地DNS服务器还要向DNS根服务器进行查询


本地服务器采用迭代查询,向一个根域名服务器查查询;

根DNS服务器没有记录具体的域名和IP地址的对应关系,而是告诉本地DNS服务器,你可以到域服务器上去继续查询,并给出域服务器的地址。这种过程是迭代的过程( 根域名服务器告诉本地服务器,我这里查不到, 然后发给他下一步应该查询的顶级域名服务器的IP地址;)


本地域名服务器再去顶级域名服务器查询

顶级域名服务器告诉本地服务器,我这里也查不到,然后发给他下一步应该查询的权限域名服务器的IP地址;


本地域名服务器向权限域名服务器查询;

由于求的对象是.com域服务器。.com域服务器收到请求之后,也不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,你的域名的解析服务器的地址。


权限域名服务器告诉本地服务器,所查询域名对应的IP


本地域名服务器最后再把查询结果告诉主机A;


浏览器查询 DNS,获取域名对应的IP地址:具体过程包括浏览器搜索自身的DNS缓存、搜索操作系统的DNS缓存、读取本地的Host文件和向本地DNS服务器进行查询等。对于向本地DNS服务器进行查询,如果要查询的域名包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析(此解析具有权威性);如果要查询的域名不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析(此解析不具有权威性)。如果本地域名服务器并未缓存该网址映射关系,那么将根据其设置发起递归查询或者迭代查询;


DNS查询的两种方式

现在使用的是两种方式的结合

QQ截图20230506132237.png

递归查询

局部DNS服务器自己负责向其他DNS服务器进行查询,一般是先向该域名的根域服务器查询,再由根域名服务器一级级向下查询。最后得到的查询结果返回给局部DNS服务器,再由局部DNS服务器返回给客户端。

简单的说,就是你交给我一个任务,然后我去帮你搞定结果,最后我返回结果给你。别关心我里面如何不断的细化这个任务,不断的递归最后返回


如果是单纯的递归查询 负载过大,现在不使用了。

迭代查询

局部DNS服务器不是自己向其他DNS服务器进行查询,而是把能解析该域名的其他DNS服务器的IP地址返回给客户端DNS程序,客户端DNS程序再继续向这些DNS服务器进行查询,直到得到查询结果为止。也就是说,迭代解析只是帮你找到相关的服务器而已,而不会帮你去查。




也许您对下面的内容还感兴趣:

留言0

评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。