• 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. 迭代查询:本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询。
  • 相关阅读:
    Unity调用C++ dll的那些坑
    flutter面试题
    【RuoYi-Vue-Plus】学习笔记 33 - Redisson(八)RedissonMapCache 缓存流程分析(上)(Lua 脚本)
    Python在工作中适用的方方面面,看看哪个适合你?
    【深度学习】You Only Segment Once: Towards Real-Time Panoptic Segmentation,YOSO全景分割
    【QT】QRadioButton的使用(17)
    SDN核心技术与内容
    一个或多个筛选器启动失败。完整的详细信息将在相应的容器日志文件中找到
    DeepMind 的新强化学习系统是迈向通用 AI 的一步吗?
    Linux防火墙之iptables(上)
  • 原文地址:https://blog.csdn.net/m0_52012606/article/details/125882184