DNS的工作原理及递归和迭代解析过程

点击了解更多技术资料和免费学习视频,加入讨论群:662736393

技术交流,添加企鹅:167748928

 

什么是DNS?

DNS(Domain Name System)域名系统,简单点来说,就是当我们在浏览器输入一个网址,需要有一台DNS服务器帮我们解析成IP地址,我们才能打开这个网站。

dns解析的过程是这样的

第一步:输入域名后,电脑首先看自己有没有对应域名的缓存,有缓存就直接用缓存里的ip访问。

在windows的命令行下可以看到现有的dns缓存

C:\Users\hubaixin>ipconfig /displaydns

其中1条缓存

第二步,如果缓存中没有,则去查询hosts文件,hosts文件在这里

c:\windows\system32\drivers\etc\hosts

如图,现在这台电脑的hosts文件里有两个记录,那么这两个域名可以直接从hosts文件里读取

 

第三步,如果hosts文件里也没找到想解析的域名,则将域名发往自己配置的dns服务器,也叫本地dns服务器

在windows命令行ipconfig/all可以看到自己的本地dns服务器,如图

 

第四步,如果本地dns服务器有相应域名的记录,则返回记录。

电脑的dns服务器一般是各大运营商如电信联通提供的,或者像180.76.76.76,223.5.5.5,4个114等知名dns服务商提供的,本身缓存了大量的常见域名的ip,所以常见的网站,都是有记录的。不需要找根服务器。

 

第五步,如果电脑自己的服务器没有记录,会去找根服务器。根服务器全球只要13台,回去找其中之一。

找了根服务器后,根服务器会根据请求的域名,返回对应的“顶级域名服务器”,如:

如果请求的域名是http://xxx.com,则返回负责com域的服务器

如果是http://xxx.cn,则发给负责cn域的服务器

如果是http://xxx.ca,则发给负责ca域的服务器

常见的顶级域有

抓包分析

客户端是192.168.1.34,本地dns服务器是192.168.1.221,当客户端向服务器请求http://www.hunau.edu.cn

本地服务器向根服务器199.7.91.13转发,这是其中一台根服务器

在iana上可看到所有的根服务器地址和管理者

第六步,顶级域服务器收到请求,会返回二级域服务器的地址。

比如一个网址是http://www.xxx.edu.cn,则顶级域名服务器再转发给负责.http://edu.cn域的二级服务器

抓包分析

 

这是由根服务器返回的结果,负责cn域的服务器有这么多,接下来将选择其中一台

然后负责cn的服务器,返回负责http://edu.cn

。。。

 

第七步,以此类推,最终会发到负责锁查询域名的,最精确的那台dns,可以得到查询结果。

抓包分析,这是http://www.hunau.edu.cn的解析结果

 

最后一步,本地dns服务器,把最终的解析结果,返回给客户端,对客户端来讲,只是一去一回的事,客户端并不知道本地dns服务器经过了千山万水。

 

迭代解析:本地服务器,一步步,经过多个步骤得到域名结果的过程

递归解析:客户端和本地服务器之间,一去一回得到域名结果的过程

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值