DNS解析过程

随笔1周前发布 李海海
3 0 0

勘误一些没有说浏览器、os缓存的

检查浏览器缓存,有且没过期的话就用
如果上面失败, 就查操作系统中的DNS缓存(不一定有)和hosts文件,如果有则直接调用这个IP的映射进行访问
如果操作系统没有DNS缓存、或DNS缓存中没有、或 hosts文件(/etc/hosts、C:WindowsSystem32driversetchosts)中也没有,则会去找当前网络中设置的本地DNS服务器(/etc/resolv.conf),如果所找的网址在本地DNS服务器的授权管理的子域名范围内则返回解析给主机,一般的网址到这一步就可以找到对应IP了,此解析具有权威性
如果不在本地DNS服务器的授权管理的子域名范围内,但该服务器已经缓存了该网址的IP,那么返回缓存中的解析结果,此解析不具有权威性
如果本地DNS服务器的解析失败并且缓存中没有对应的映射关系。那么就有两种情况

本地DNS服务器开启转发模式。则向上一级请求,若上一级也不能解析就找上上一级依次类推,最终把解析返回给本地DNS,本地DNS缓存的同时返回给主机。
如果本地DNS服务器未开启转发模式。就去找根域名服务器,根DNS服务器收到请求返回顶级域名服务器的IP(.com、.cn、.org),本地DNS服务器再去找顶级域名服务器,顶级域名服务器返回权威服务器IP,本地DNS服务器再去权威服务器找,如此一级一级往下直到找到xx的主机。

os dns 缓存测试

[mifen@hp ~]$ systemctl status systemd-resolved
○ systemd-resolved.service - Network Name Resolution
     Loaded: loaded (/usr/lib/systemd/system/systemd-resolved.service; disabled; preset: enabled)
     Active: inactive (dead)
       Docs: man:systemd-resolved.service(8)
             man:org.freedesktop.resolve1(5)
             https://www.freedesktop.org/wiki/Software/systemd/writing-network-configuration-manage>
             https://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients
[mifen@hp ~]$ systemctl status dnsmasq
○ dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
     Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; disabled; preset: disabled)
     Active: inactive (dead)
       Docs: man:dnsmasq(8)
[mifen@hp ~]$ systemctl status nscd
Unit nscd.service could not be found.
[mifen@hp ~]$ resolvectl
Failed to get global data: Could not activate remote peer: activation request failed: unknown unit.

refer

【计算机网络】2023校招计网八股汇总(附答案~)
查看浏览器DNS缓存 2023-02-15
DNS域名详细解析过程(最全面,看这一篇就够) bangshao1989 2021-12
什么是DNS?
正确清除 DNS 缓存( 附全平台详细教程 ) 奋斗的工程师 2022-08-30

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...