• DNS解析


    DNS域名解析过程

    1. 一般来说,有需要提供DNS域名解析的地方就会有DNS缓存存在。
    2. 浏览器、操作系统、Local DNS、根域名服务器等,它们都会对DNS域名系统解析的结果做一定程度的缓存。
    3. DNS查询顺序:浏览器缓存→系统缓存→路由器缓存→ISP DNS 缓存→递归搜索。
    4. DNS在浏览器缓存的作用是:加快网页的加载速度。
    5. 浏览器对DNS解析结果的处理:如果一个域名的DNS解析结果有多个的话,Chrome浏览器会优先向域名对应的第一个IP地址发起HTTP请求,如果不通,再向后面的IP地址发起HTTP请求。

    先来普及一些概念:

    域名解析TTLTime To Live,翻译过来是生存时间,TTL是指DNS解析记录在DNS服务器上的生存时间(区别于请求包的TTL)。
    一般通过 域名服务商 或者 DNS服务提供商 设置,如腾讯云、阿里云就可以设置解析后的IP的缓存时间;又或者本地服务器(一般是路由)。

    在这里插入图片描述

    1. 本地电脑会检查浏览器缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就结束;chrome 可通过 chrome://net-internals/#dns 进行查看浏览器缓存。
    2. 如果浏览器缓存中没有数据,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果;操作系统也有一个域名解析的过程,在Linux中可以通过 /etc/hosts 文件来设置,而在windows中可以通过配置 C:\Windows\System32\drivers\etc\hosts 文件来设置,用户可以将任何域名解析到任何能够访问的IP地址。
    3. 前两个过程无法解析时,就要用到我们网络配置中的"DNS服务器地址"了;操作系统会把这个域名发送给这个本地DNS服务器;一般设置的本地DNS服务器是指向路由器,一般都会缓存域名解析结果,缓存时间是受到域名的失效时间控制的。windows在这配置:控制面板 => 网络和共享中心 => 更改适配器设置 => 选中目标适配器右键选择属性 => Internet协议版本4(TCP/IPv4) => 配置DNS地址。Linux在这设置:/etc/resolv.conf
    4. 如果本地DNS服务器仍然没有命中,就直接到 根DNS服务器(即 . 服务器,全球IPV4仅有13台,IPV6有25台) 请求解析; DNS 协议是应用层协议,大多数情况下依赖传输层的 UDP 协议 进行数据的传输(仅在重试的情况下可能使用 TCP 协议)。
    5. 根DNS服务器返回给本地DNS域名服务器一个顶级DNS服务器地址,例如.com;顶级DNS服务器包括通用顶级域(.com、.net、.org)、国家代码顶级域(.no、.se、.uk)和国际化的顶级域名。
    6. 本地DNS服务器再向上一步获得顶级DNS服务器发送解析请求。
    7. 接受请求的顶级DNS服务器查找并返回此域名对应的Name Server域名服务器的地址,这个Name Server服务器就是我要访问的网站域名提供商的服务器,其实该域名的解析任务就是由域名提供商的服务器来完成。 比如我要访问www.baidu.com,而这个域名是从A公司注册获得的,那么A公司上的服务器就会有www.baidu.com的相关信息。
    8. 本地DNS服务器再向上一步获得的Name Server服务器发送解析请求。
    9. Name Server服务器会查询存储的域名和IP的映射关系表,再把查询出来的域名和IP地址等等信息,连同一个TTL值返回给本地DNS服务器。
    10. 把解析的结果返回给本地电脑,本地电脑根据TTL值缓存在本地系统缓存中,域名解析过程结束在实际的DNS解析过程中,可能还不止这10步,如Name Server可能有很多级,或者有一个GTM来负载均衡控制,这都有可能会影响域名解析过程。

    查询方式

    1. 递归:客户端只发一次请求,要求对方给出最终结果。

    2. 迭代:客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其它名称服务器列表,客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它得到最终结果。

    授权回答:向dns服务器查询一个域名,刚好这个域名是本服务器负责,返回的结果就是授权回答。

    从递归和迭代查询可以看出:

    客户端-本地dns服务端:这部分属于递归查询。(定义)

    本地dns服务端—外网:这部分属于迭代查询。

    递归查询时,返回的结果只有两种:查询成功或查询失败.

    迭代查询,又称作重指引,返回的是最佳的查询点或者主机地址.

    域名解析记录

    主要分为A记录、MX记录、CNAME记录、NS记录和TXT记录,其中我们了解A是代表Address,用来指定域名对应的IP地址即可

    IPV4和IPV6

    谈论IPv4和IPv6之间的差异

  • 相关阅读:
    NATAPP使用详细教程(免费隧道内网映射)
    Elasticsearch集群部署
    【通信】基于PUMA实现 DOA 估计附matlab代码
    专业技能篇---计算机网络
    【软件工程之美 - 专栏笔记】31 | 软件测试要为产品质量负责吗?
    链路聚合和VRRP链路聚合
    多线程(线程池,读者写者,自旋锁)
    技术实践|高斯集群服务器双缺省网关故障分析
    解密JavaScript的异步机制:打破单线程限制,提升性能与用户体验
    Cygwin安装
  • 原文地址:https://blog.csdn.net/haonan_z/article/details/133274596