DNS解析

DNS域名解析过程

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

先来普及一些概念:

域名解析TTL 即 Time 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之间的差异

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值