DNS解析过程

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

  1. 检查浏览器缓存,有且没过期的话就用
  2. 如果上面失败, 就查操作系统中的DNS缓存(不一定有)和hosts文件,如果有则直接调用这个IP的映射进行访问
  3. 如果操作系统没有DNS缓存、或DNS缓存中没有、或 hosts文件(/etc/hosts、C:\Windows\System32\drivers\etc\hosts)中也没有,则会去找当前网络中设置的本地DNS服务器(/etc/resolv.conf),如果所找的网址在本地DNS服务器的授权管理的子域名范围内则返回解析给主机,一般的网址到这一步就可以找到对应IP了,此解析具有权威性
  4. 如果不在本地DNS服务器的授权管理的子域名范围内,但该服务器已经缓存了该网址的IP,那么返回缓存中的解析结果,此解析不具有权威性
  5. 如果本地DNS服务器的解析失败并且缓存中没有对应的映射关系。那么就有两种情况
    1. 本地DNS服务器开启转发模式。则向上一级请求,若上一级也不能解析就找上上一级依次类推,最终把解析返回给本地DNS,本地DNS缓存的同时返回给主机。
    2. 如果本地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

posted @ 2024-04-12 15:03  沙滩炒花蛤  阅读(9)  评论(0编辑  收藏  举报