网站导航:首页-网络知识-DNS服务器如何解析域名

DNS服务器如何解析域名

最近更新:2020-06-08

域名系统(Domain Name System,DNS)是互联网上的一项基础服务,可以将它理解为一个域名与IP地址相互映射的分布式数据库,使我们能够更方便的访问互联网。DNS服务器查询一个域名的IP地址通常采用在自己的数据库中查询、递归查询或迭代查询三种方式之一或它们之间的组合,下面将依次介绍。

在自己的数据库中查询

这种查询方式最为简单、直接,也最易懂,就不在做过多赘述了。

递归查询

递归查询在DNS服务器上并不是最常见的查询方式,在这种方式下,DNS服务器会向预先设置的另一台DNS服务器发起查询请求,最后得到对应的应答。

注释

上文中的”另一台DNS服务器“通常也需要根据自身的配置进行查询并返回结果。

例子

想查询域名example.com的IP地址,于是向DNS服务器B发送请求后得到回应。

迭代查询

在介绍迭代查询之前,首先要介绍一下域名的层次。

位于最根部的域称为根域,根域的DNS服务器地址是固定且公开的,根域的DNS服务器的数据库中记录着一些域名的IP地址以及所有顶级域(例如:comorg)的DNS服务器地址;

在根域的DNS服务器中也可以有二级域、三级域或更多级子域的DNS服务器地址,但我们通常不这样做,下同。

在顶级域的DNS服务器的数据库中记录着一些对应顶级域下的IP地址以及对应顶级域下的所有二级域名(例如:example-1.comexample-2.com)的DNS服务器地址;

在二级域的DNS服务器的数据库中记录着一些对应顶级域下的IP地址以及对应二级域名下的所有三级域名(例如:a.example-1.comb.example-1.com)的DNS服务器地址;

在三级域的DNS服务器的数据库中记录着一些对应顶级域下的IP地址以及对应三级域名下的所有四级域名(例如:a.a.example-1.comb.a.example-1.com)的DNS服务器地址;

(以此类推)

上述这些DNS服务器通常是由域名的所有方设立的(根域除外),这些服务器决定了对应的域名指向那个IP地址,所以这些DNS服务器称为权威DNS服务器

还有一些DNS服务器他们没有任何域名的管理权限,只是根据用户发起的不同请求,向对应的权威DNS服务器请求IP地址并返回给用户,这些DNS服务器称为local DNS服务器,用户向local DNS服务器查询都是通过诋毁查询的方式进行,所以这些DNS服务器又被称为递归DNS服务器

DNS服务器通过迭代查询的方式查询时,按照如下步骤执行:

  1. 设A为根域的DNS服务器;
  2. 向A发起查询请求;
  3. 若A的数据库中有要查询域名的IP地址,则返回此IP地址,查询结束;
  4. 若A的数据库中没有要查询域名的IP地址,则返回要查询域名的父级域的DNS服务器地址;
  5. 设A为返回的DNS服务器;
  6. 转向2继续执行。
例子

想查询www.example.com的IP地址

  1. 向根域的DNS服务器发起查询请求;
  2. 根域的DNS服务器返回了com域的DNS服务器地址;
  3. com域的DNS服务器地址发起查询请求;
  4. com域的DNS服务器返回了example.com域的DNS服务器地址;
  5. example.com域的DNS服务器地址发起查询请求;
  6. example.com域的DNS服务器返回了www.example.com的IP地址。

(正文完)

如果您认为本文中存在问题或有任何不足之处,欢迎您在Github:Rivalsa/comment中提交issue

到底线啦,请:返回目录页|返回首页