DNS服务器如何解析域名
最近更新:2020-06-08
域名系统(Domain Name System,DNS)是互联网上的一项基础服务,可以将它理解为一个域名与IP地址相互映射的分布式数据库,使我们能够更方便的访问互联网。DNS服务器查询一个域名的IP地址通常采用在自己的数据库中查询、递归查询或迭代查询三种方式之一或它们之间的组合,下面将依次介绍。
在自己的数据库中查询
这种查询方式最为简单、直接,也最易懂,就不在做过多赘述了。
递归查询
递归查询在DNS服务器上并不是最常见的查询方式,在这种方式下,DNS服务器会向预先设置的另一台DNS服务器发起查询请求,最后得到对应的应答。
上文中的”另一台DNS服务器“通常也需要根据自身的配置进行查询并返回结果。
想查询域名example.com
的IP地址,于是向DNS服务器B发送请求后得到回应。
迭代查询
在介绍迭代查询之前,首先要介绍一下域名的层次。
位于最根部的域称为根域,根域的DNS服务器地址是固定且公开的,根域的DNS服务器的数据库中记录着一些域名的IP地址以及所有顶级域(例如:com
、org
)的DNS服务器地址;
在根域的DNS服务器中也可以有二级域、三级域或更多级子域的DNS服务器地址,但我们通常不这样做,下同。
在顶级域的DNS服务器的数据库中记录着一些对应顶级域下的IP地址以及对应顶级域下的所有二级域名(例如:example-1.com
、example-2.com
)的DNS服务器地址;
在二级域的DNS服务器的数据库中记录着一些对应顶级域下的IP地址以及对应二级域名下的所有三级域名(例如:a.example-1.com
、b.example-1.com
)的DNS服务器地址;
在三级域的DNS服务器的数据库中记录着一些对应顶级域下的IP地址以及对应三级域名下的所有四级域名(例如:a.a.example-1.com
、b.a.example-1.com
)的DNS服务器地址;
(以此类推)
上述这些DNS服务器通常是由域名的所有方设立的(根域除外),这些服务器决定了对应的域名指向那个IP地址,所以这些DNS服务器称为权威DNS服务器。
还有一些DNS服务器他们没有任何域名的管理权限,只是根据用户发起的不同请求,向对应的权威DNS服务器请求IP地址并返回给用户,这些DNS服务器称为local DNS服务器,用户向local DNS服务器查询都是通过诋毁查询的方式进行,所以这些DNS服务器又被称为递归DNS服务器。
DNS服务器通过迭代查询的方式查询时,按照如下步骤执行:
- 设A为根域的DNS服务器;
- 向A发起查询请求;
- 若A的数据库中有要查询域名的IP地址,则返回此IP地址,查询结束;
- 若A的数据库中没有要查询域名的IP地址,则返回要查询域名的父级域的DNS服务器地址;
- 设A为返回的DNS服务器;
- 转向2继续执行。
想查询www.example.com
的IP地址
- 向根域的DNS服务器发起查询请求;
- 根域的DNS服务器返回了
com
域的DNS服务器地址; - 向
com
域的DNS服务器地址发起查询请求; com
域的DNS服务器返回了example.com
域的DNS服务器地址;- 向
example.com
域的DNS服务器地址发起查询请求; example.com
域的DNS服务器返回了www.example.com
的IP地址。
(正文完)
如果您认为本文中存在问题或有不足之处,欢迎您通过如下方式留言:
1.在反馈社区中发帖。
2.在工单系统中提交工单。