• DNS域名解析过程剖析


    DNS域名解析过程

     

    第一步:浏览器会检查缓存中有没有域名对应的ip地址,这个缓存是有过期时长的,一般是几分钟到几小时不等。

    第二步:如果浏览器缓存没有,那么就检查操作系统的hosts文件,linux在/etc/hosts文件中配置。

    windows在C:\Windows\System32\drivers\etc\hosts文件配置

    上面两个步骤若都不满足,则进行下面DNS域名服务器(LDNS)发起请求过程:

    第三步:如果本地也没有配置那么就会根据向本机配置的本地区DNS域名服务器(LDNS)发起请求,如果你是通过学校连接互联网的一般是你学校的DNS服务器,如果你是在小区连接互联网的一般是网络提供商比如电信,联通的DNS服务器,DNS服务器通常不会太远。如何查看本机的域名服务器,在Linux可以通过 cat /etc/resolv.conf查看。

    第四步:如果LDNS也不能解析,那么就直接到根域名服务器请求解析。

    第五步:根域名服务器会给本地域名服务器LDNS一个所查询的主域名服务器(gTLD)地址,gTLD是国际顶级域名服务器,比如.com,.cn,.org等。

    第六步:本地域名服务器LDNS再向上一步返回的gLTD服务器发送请求。

    第七步:gLTD服务器查询并返回域名对应的Name Server域名服务器的地址,通常是你注册的域名服务器,例如你在某个域名服务器提供商申请的域名,那么这个域名解析任务就由这个域名服务提供商来完成。

    第八步:Name Server域名服务器会查询存储的域名和ip的映射关系表,将ip连同一个TTL值返回给DNS Server域名服务器。

    第九步:LDNS拿到ip和TTL会缓存起来,缓存时间由TTL值控制。

    第十步:把解析的结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析过程结束

    总的来说,两种查询方式:递归查询和迭代查询

    1. 递归查询:本机向本地域名服务器发出一次查询请求,就静待最终的结果。如果本地域名服务器无法解析,自己会以DNS客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机。
    2. 迭代查询:本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询。
  • 相关阅读:
    [激光器原理与应用-6]:Q开关元件与Q驱动电路板
    Windows系统上安装MySQL 5.7详细步骤
    音视频技术-声反馈啸叫的产生与消除
    【Python】Locust持续优化:InfluxDB与Grafana实现数据持久化与可视化分析
    Kotlin第二弹:Kotlin基本数据类型
    CUDA小白 - NPP(6) 图像处理 Geometry Transforms (2)
    介绍 PIL+IPython.display+mtcnn for 音视频读取、标注
    LeetCode 75 part 06 栈
    影响软件质量的因素简析,看第三方软件测试机构如何提升测试效果?
    神经网络常用的训练方式,神经网络是怎么训练的
  • 原文地址:https://blog.csdn.net/m0_52012606/article/details/125882184