DNS 运行在 UDP 之上,使用 53 端口。从概念上将 DNS 分成三部分:层次域名空间、域名服务器和解析器。

层次域名空间

域名服务器

根域名服务器

所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。

根域名不直接把待查询的域名转换成 IP 地址,而是告诉本地域名服务器指明下一步应查找的顶级域名服务器。

顶级域名服务器

管理在该顶级域名服务器注册的所有二级域名。顶级域名服务器指明下一步应查找的域名服务器的 IP 地址。

权限域名服务器

管理每个域名的域名服务器,例如管理cassiel.cc 的域名服务器就是权限域名服务器。

本地域名服务器

位于一个特定网络或组织内部的用于解析域名和转换为对应IP地址的服务器。当一台主机发出 DNS 查询请求时,这个请求就发送给该主机的本地域名服务器。

域名解析过程

域名解析有两种方式:递归查询和迭代查询

递归查询

主机向本地域名服务器的查询都采用递归查询。 也就是客户端向本地服务器查询域名,然后就由本地 DNS 服务器代查询,查询完成后返回给客户端。

迭代查询

本地域名服务器向根域名服务器的查询通常采用迭代查询。 本地域名服务器先向根域名服务器查询,根域名服务器指明顶级域名服务器的 IP 地址,然后由本地域名服务器向顶级域名服务器直接查询;顶级域名服务器也返回下一级域名服务器的地址,由本地域名服务器亲自查询;重复过程,直到查到 IP 地址。

迭代查询中每一级域名服务器都是由本地域名服务器亲自查询。

高速缓存

在域名服务器中设置高速缓存,用来缓存最近查询过的域名的相关信息,若查询时命中域名,则可以直接提供所需信息。