DNS自述:我是如何为域名找到家的

网友投稿 693 2023-05-16

DNS自述:我是如何为域名找到家的

DNS自述:我是如何为域名找到家的

浏览器DNS缓存

当我们在浏览器地址栏输入域名后,浏览器首先会去其本身的 DNS 缓存中查找是否有对应域名的记录。如果有,那么直接访问对应的服务器。

不同浏览器会设置不同的 DNS 缓存时间,一般来说是 2-30 分钟之间。如果当你修改了系统 DNS 缓存后,发现访问还是没生效,你可以尝试清除下浏览器的 DNS 缓存。

系统DNS缓存

当浏览器在其自身的缓存中找不到对应域名的记录时,其将会去系统的 DNS 缓存中寻找记录。在 Windows 系统中,DNS 缓存信息存储在 C:/windows/system32/drivers/etc/hosts中。而在 Mac OSX 系统中,DNS 缓存信息存储在 /etc/hosts 文件中。

但无论在哪个系统,该文件的格式都是域名的 IP 地址的映射。每一行是一个映射,前面是域名对应的 IP 地址,后面是对应的域名。

所以很多时候,当我们在本地调试时我们可以设置任意的域名,只要该域名对应的 IP 存在对应的服务即可。例如像我这样喜爱写文章的程序员,我可以写这样设置一个域名的映射:

本地DNS服务器

如果在系统 DNS 也找不到域名的记录,那么浏览器就会去本地的 DNS 服务器(LDNS)上寻找该域名的记录。在这里的 LDNS 一般是指本机所设置的 DNS 服务器地址。例如在我的电脑上,其对应的 DNS 地址为:10.xxx.xxx.253。那么浏览器就会去这个 DNS 服务器上寻找域名对应的记录。

如果在 LDNS 服务器上找到了记录,那么就直接返回就可以。但如果还是没找到记录,那么就得进一步深入查找了。

根DNS服务器

当 LDNS 服务器还是招不到域名对应的记录时,那么其就会去根 DNS 服务器去寻找域名对应的记录。根 DNS 服务器全球只有 13 台,所以在 LDNS 服务器建立的时候,其会写死一个根 DNS 服务器的 IP 地址列表。

顶级DNS服务器

域名DNS服务器

总结

看到这里,相信大家都清楚了 DNS 寻址的整个流程了。总的来说,DNS 寻址的顺序为:

浏览器 DNS 缓存系统 DNS 缓存本地 DNS 服务器根 DNS 服务器顶级 DNS 服务器域名 DNS 服务器

如果到最后还是找不到解析记录,那么就直接报域名解析错误。在这个过程中,我们还可以学到两个重要的知识点,即:

第一,域名 DNS 服务器就是 NS 记录设置的地址。 我们在域名服务商可以设置 NS 记录,将域名托管给另外一台 DNS 服务器进行解析,这个时候顶级 DNS 服务器注册的域名 DNS 服务器,就是我们 NS 记录配置的值。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:这个比 Redis 快 5 倍的中间件,怎么做到的?
下一篇:MySQL千万级大表优化,看这一篇就忘不掉了!
相关文章