DNS(域名系统)解析

DNS(域名系统)解析

DNS解析器

DNS解析器是DNS查找的第一站,负责处理发出初始请求的客户端
最终会导致URL被转换为必要的IP地址

DNS查找

浏览器查找域名的IP地址。
浏览器DNS查找顺序一般是这样的:浏览器缓存→系统缓存→路由器缓存→ISP DNS 缓存→递归搜索。

  1. 浏览器缓存
    不同的浏览器会存储各自一个固定时间,时长为2~30分钟不等

  2. 系统缓存
    浏览器会做一个操作系统调用(windows里是gethostname)

  3. 路由器缓存
    浏览器将前面的查询请求发给路由器,它一般有自己的DNS缓存

  4. 若没有,检查ISP(网络服务提供商)有没有
    每个ISP都会有自己的本地域名服务器,他会在url第一次访问时缓存该域名的指向

  5. 递归搜索
    递归查询: 主机向本地域名服务器的查询
    迭代查询: 本地域名服务器向根域名服务器的查询

递归搜索方式

  • hosts文件:以静态映射的方式提供IP地址与主机名的对照表,类似ARP表
  • 域:abc.com是一个域,它可以划分为多个区域,如abc.com和xyz.abc.com

递归查询

  1. 在hosts静态文件、DNS解析器缓存中查找某主机的ip地址
  2. 上一步无法找到,去DNS本地服务器(即域服务器)查找,其本质是去区域服务器、服务器缓存中查找
  3. 本地DNS服务器查不到就根据‘根提示文件’向负责*域‘.com’的DNS服务器查询
  4. ‘根DNS服务器’根据查询域名中的‘xyz.com’,再向xyz.com的区域服务器查询
  5. www.xyz.abc.com的DNS服务器直接解析该域名,将查询到的ip再原路返回给请求查询的主机

迭代查询

  1. 在hosts静态文件、DNS解析器缓存中查找某主机的ip地址
  2. 上一步无法找到,在DNS本地服务器(即域服务器)查找所有本层次的区域服务器
  3. 本地DNS服务器查不到就查询上一层次的所有区域服务器,以此类推直至根域名DNS服务器‘.’
  4. 到达根域名服务器后又向下查询,直至查到结果为止。

迭代查询与递归查询结合

  1. 在hosts静态文件、DNS解析器缓存中查找某主机的ip地址
  2. 上一步无法找到,去DNS本地服务器(即域服务器)查找,其本质是去区域服务器、服务器缓存中查找
  3. 本地DNS服务器查不到就根据‘根提示文件’向负责*域‘.com’的根DNS服务器查询
  4. 根DNS服务器直接将其区域DNS服务器的ip地址返回给本地服务器,而不用再向xyz.com的区域服务器查询
  5. 本地DNS服务器将结果返回给请求的主机

查询过程

  1. 主机先向其本地域名服务器进行递归查询,如果缓存中没有,继续下一步。
  2. 本地域名服务器采用迭代查询,先向一个根域名服务器查询。
  3. 根域名服务器告诉本地域名服务器,下一次查询的*域名服务器 dns.net
  4. 本地域名服务器向*域名服务器 dns.net
  5. *域名服务器 dns.net,下一次应查询的权限域名服务器dns.xxsilence.net的IP地址。
  6. 本地域名服务器向权限域名服务器dns.xxsilence.net进行查询。
  7. 权限域名服务器dns.xxsilence.net告诉本地域名服务器,所查询的主机的IP地址。
  8. 本地域名服务器最后把查询结果告诉主机。

DNS(域名系统)解析

若有错误,希望大佬们指点指点,谢谢 ????

参考链接: