什么是dns缓存

什么是dns缓存,第1张

DNS即域名系统,是互联网的一项服务,对于电脑新人来说什么是dns缓存有点难费解,下面就具体的说说什么是dns缓存?

1、 DNS缓存是指在正常访问ip之后,系统会将这个ip存储起来,当再次访问的时候,系统就会直接把本地的DNS缓存提取显示,等于是加速了网址的解析。

2、 DNS记录存储在区域文件中,用于将域名转换为IP地址,还包括域名的服务器名称和邮件服务器信息,例如域名前面常用的“www”,则这些别名也将列在DNS记录中。

3、 由于DNS记录完全由文本组成,因此在需要时可以进行修改。但是,一个错误可能会将域名重定向到错误的Web服务器,这就是为什么在保存区域文件之前准确输入DNS信息并仔细检查更改条目的原因。

4、 怎么清理dns缓存。使用cmd命令修改,打开电脑中的运行,在输入框中输入cmd,点击确定,在窗口中输入ipconfig/flushdns,按下回车,就刷新dns缓存了。

5、 消除DNS缓存有什么好处。很多人遇到突然就上不了网了,这时候可能就是dns指向不对了,只要清理一下dns缓存,重新分配IP就可以了。

以上的就是关于什么是dns缓存的内容介绍了。

多数人认知的dns解析次序:

浏览器缓存->操作系统dns cache ->hosts文件->非权威域名服务器->根域名服务器->顶级域名服务器->二级域名服务器->权威域名服务器。

实际次序:

浏览器缓存->操作系统dns cache【包含hosts】 ->->非权威域名服务器->根域名服务器->顶级域名服务器->二级域名服务器->权威域名服务器。

主要区别在hosts,Win10会在启动时加载hosts中的条目到操作系统dns缓存,win10还会监视hosts文件的变化,并动态更新,如新加或删除条目,都会更新操作系统dns缓存。如果尝试解析一个未知的域名,win10并不会访问hosts,观察依据是hosts的访问时间不会更新。

Windows  hosts文件路径: C:\WINDOWS\system32\drivers\etc\hosts

chrome://net-internals/#dns

 ipconfig /displaydns                                                             显示已有缓存

 ipconfig /displaydns >C:\Users\SDWQ\Desktop\dns.txt     导出到再查看

 ipconfig /flushdns                                                                  强制更新缓存

我们在使用浏览器访问互联网资源时,想获取指定的服务和信息。首先就要了解浏览器是如何定位到我们的站点的。输入一个域名(如:www.jd.com)浏览器会首先从自身的缓存中查询是否有历史域名对应的IP并且有效,如果有就使用该缓存通过IP直接访问到指定的站点。如果没有则查询本地的Host缓存,如果有就使用本地的缓存直接访问站点,没有则向本地DNS服务器发起请求查询,如果本地DNS服务也没有找到,则向公网DNS服务发起查询请求获取对应的有效IP,并返回缓存到浏览器和本地缓存中,供后续请求使用。

DNS记录会有一个ttl值(time to live),单位是秒,意思是这个记录最大有效期是多少。操作系统缓存会参考ttl值,但是不完全等于ttl值,而浏览器DNS缓存的时间跟ttl值无关,每种浏览器都使用一个固定值。

DNS查询请求类型:

1、权威答复:权威答复是返回给客户的正向答复,并且设置了DNS消息中的权威位。此答复代表从具有权威的DNS服务器处发出。

2、正向答复:正向答复包含了匹配客户端解析请求的资源记录。

3、参考答复:参考答复只在DNS服务器工作在迭代模式下使用,包含了其他有助于客户端解析请求的信息。例如,当DNS服务器不能为客户端发起的解析请求找到某个匹配值时,则向DNS客户端发送参考回复,告诉它有助于解析请求的信息。

4、否定答复:否定答复指出权威服务器在解析客户端的请求时可能遇到了以下两种情况之一:

权威DNS服务器报告客户端查询的名字不存在;

权威DNS服务器报告存在对应的名字,但是不存在指定类型的资源记录。

DNS服务器解析返回IP分配策略与客户端对域名IP选择策略,无论正向答复还是否定答复,DNS客户端都将结果保存在自己的本地缓存中

浏览器缓存:

浏览器在获取网站域名的实际IP地址后会对其IP进行缓存,减少网络请求的损耗。每种浏览器都有一个固定的DNS缓存时间。

参考浏览器DNS缓存时间:

本地缓存:

每种操作系统都有自己的DNS缓存时间控制。

1、Windows DNS默认值是MaxCacheTTL,它的默认值是86400s,也就是一天。

2、MacOS遵循DNS协议中的TTL,根据各种网络协议不同对不同的域名采用不同的缓存时间策略。在IPv4包头中TTL是一个8 bit字段,它位于IPv4包的第9个字节。

参考本地DNS缓存时间:

在命令行执行nslookup指令可以看到一个域名对应的IP地址,并且可以帮助我们判断是否有DNS劫持。随便解析一个网站,比如

www.jd.com 应该返回的是正常的地址

然后再解析一个不存在的网站,比如123123.aaaa.com.cn如果返回的结果是

DNS request timed out.

timeout was 2 seconds.

那么证明你的DNS没有被劫持。

如果返回的结果是一个IP地址,比如说网通的返回地址是230.xxx.xxx.xxx,那么证明你的DNS被劫持了。

通过了解浏览器、本地缓存可以帮助我们更好的为用户服务。

1、大型的互联网公司都有IP流量监控,当发生网络故障或劫持时可以第一时间发现。

2、页面是我们与用户面对面沟通的渠道和方式,当我们的网页和服务呈现在用户面前时,我们要了解我们提供的服务是如何影响到用户的体验的,比如我们前端页面的JS、CSS等文件的动态版本号处理方式结合缓存是如何变化的,每次发版会对什么样的用户有影响,都需要严谨。

3、机房内部的各个应用程序服务,比如Zookeeper、Redis、RPC、DB在DNS缓存变化时,可能引起的网络抖动,是否会对用户请求造成影响,也是我们必须要注意的问题。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/181348.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-28
下一篇2023-03-28

发表评论

登录后才能评论

评论列表(0条)

    保存