简单理解DNS解析流程(一)

烂漫一生 提交于 2020-10-31 05:35:39

 

0x0 简单理解dns

DNS服务器里存着一张表

表中放着域名和IP地址,域名和IP地址以映射关系保存,即一对一

 

浏览器访问某个域名,实际上是访问它的ip地址

所以浏览器需要知道域名对应的ip地址

如何知道?

向知道的人查询,也就是向dns服务器查询

 

0x1 dns解析流程

 

-> 以客户端浏览器访问 www.rootkit.org 域名为例,首先,它会去检查当前浏览器缓存是否有对应IP,如果有,就直接响应,如果没有,就继续往下找

 

-> 接着,操作系统会去检查自己的host文件,如果从中没找到对应关系,会再到系统dns缓存中查,如果缓存中有,就直接返回该域名所对应的ip

 

-> 如果缓存中没有,则会向我们事先设置好的dns服务器 [ 一般有两个, 主 & 备 ] 去请求,即所谓的`递归查询`,dns服务器首先会到自身解析数据库中去查

 

-> 如果dns服务器在自己的解析库中也没找到,它就会自动帮我们向根服务器发送询问请求

 

-> 此时,根看到要请求的是org的后缀(.org),就会把org所在的dns服务器告诉我们的dns

 

-> 然后,我们的dns服务器就会去请求org所在的dns服务器

 

-> 当请求到达org dns服务器时,org一看域名是在rootkit这个域下的,就会把rootkit所在的dns服务器告诉我们的dns服务器

 

-> 再然后,我们的dns服务器就会去请求rootkit这个域名的dns服务器

 

-> rootkit这个域的dns服务器一看是要访问www就直接找到了www对应的A记录的ip,并把它丢给我们的dns,上面逐个询问的过程,即 `迭代查询`

 

-> 最后,我们的dns再把最终解析到的这个ip丢给我们的客户端,然后客户端就直接拿着去访问了

 

参考:

https://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650449761&idx=3&sn=9f322caabc30b71ac19833b63bda3163&chksm=83bbc285b4cc4b93bc23087a4121bd95dc5127138433fd99e281835add26d7d43be9c1abc681&mpshare=1&scene=23&srcid=0405vzdWwUbvmuklynVCmPOp#rd

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!