DNS 解析

根域名

DNS 解析过程

电脑先 拿着域名 去找 DNS 服务器, DNS 把域名对应的 IP 地址返回给电脑,电脑拿着这个 IP 地址再取访问网站。

DNS服务器的结构

典型的 DNS 解析过程

解析 www.163.com网址。
这里的www其实就是主机名,也就是163.com 提供 web服务的主机。

过程

  1. 先查看本机的 host 文件,如果有,直接返回,没有去本地DNS服务器查询。

  2. 本地DNS服务器 会先查看本地的缓存里面有没有,有直接返回,没有就会向根域名服务器发送一次请求.(根域名服务器全球一共有13台)。

  3. 根域名服务器 会告诉你,你要查的顶级域名服务器的 IP地址

  4. 然后你再去顶级域名服务器地址中查找,顶级域名服务器会告诉你权威域名服务器的 IP地址,然后你再去 权威域名服务器上查找,

  5. 权威域名服务器 上存有你要查询网址的 IP 地址,他就回给他返回过来。

在整个上面的过程中,对于电脑用户来说,他只发送了一次请求,所有的DNS迭代查询过程。都是由本地DNS解析器完成的。

迭代查询和递归查询

一、主机向本地域名服务器的查询一般都是采用递归查询。

所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,
向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。
因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。

二、本地域名服务器向根域名服务器的查询的迭代查询。
迭代查询的特点:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。
然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。
顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。
最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机

全局负载均衡器

比如百度,在全国有很多的机房,但是他的域名只有一个,但是让山东的用户访问山东的服务器,北京的用户访问北京的服务器。

过程

授权DNS服务器返回一条NS记录给本地DNS服务器。根据授权DNS服务器上的不同设置,这条NS记录可能是指向随机一个GSLB设备的接口地址或者是所有GSLB设备的接口地址。
本地DNS服务器向其中一个GSLB地址发出域名查询请求,如果请求超时会向其它地址发出查询;
GSLB设备选出最优解析结果,返回一条A记录给本地DNS服务器。根据全局负载均衡策略设定的不同可能返回一个或多个VIP地址;
本地服务器将查询结果通过一条A记录返回给用户,并将缓存这条记录。

参考文献

  1. https://www.cnblogs.com/qingdaofu/p/7399670.html
  2. https://www.bilibili.com/video/BV1Q4411G7zt?share_source=copy_web
posted @ 2021-09-08 11:18  沧海一声笑rush  阅读(651)  评论(0编辑  收藏  举报