DNS 运行在 UDP 之上,使用 53 端口。从概念上将 DNS 分成三部分:层次域名空间、域名服务器和解析器。
层次域名空间
域名服务器
根域名服务器
所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。
根域名不直接把待查询的域名转换成 IP 地址,而是告诉本地域名服务器指明下一步应查找的顶级域名服务器。
顶级域名服务器
管理在该顶级域名服务器注册的所有二级域名。顶级域名服务器指明下一步应查找的域名服务器的 IP 地址。
权限域名服务器
管理每个域名的域名服务器,例如管理cassiel.cc 的域名服务器就是权限域名服务器。
本地域名服务器
位于一个特定网络或组织内部的用于解析域名和转换为对应IP地址的服务器。当一台主机发出 DNS 查询请求时,这个请求就发送给该主机的本地域名服务器。
域名解析过程
域名解析有两种方式:递归查询和迭代查询
递归查询
主机向本地域名服务器的查询都采用递归查询。 也就是客户端向本地服务器查询域名,然后就由本地 DNS 服务器代查询,查询完成后返回给客户端。
迭代查询
本地域名服务器向根域名服务器的查询通常采用迭代查询。 本地域名服务器先向根域名服务器查询,根域名服务器指明顶级域名服务器的 IP 地址,然后由本地域名服务器向顶级域名服务器直接查询;顶级域名服务器也返回下一级域名服务器的地址,由本地域名服务器亲自查询;重复过程,直到查到 IP 地址。
迭代查询中每一级域名服务器都是由本地域名服务器亲自查询。
高速缓存
在域名服务器中设置高速缓存,用来缓存最近查询过的域名的相关信息,若查询时命中域名,则可以直接提供所需信息。