根域名

DNS 解析_域名服务器

DNS 解析过程

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

DNS 解析_域名服务器_02

DNS服务器的结构

DNS 解析_计算机网络_03

典型的 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.bilibili.com/video/BV1Q4411G7zt?share_source=copy_web​