重新认识DNS解析服务

面试的时候遇到DNS服务器解析的问题,具体设计到了递归查询和迭代查询的问题没回答出来,在这里记录一下.

前言

互联网之间的通信主要通过32位的二进制ip地址,而就算是十进制的ip地址也很难记忆.于是,DNS域名解析服务出现了,DNS服务器之中记录了ip地址和域名的映射关系.

通过主机名获取主机的ip地址的流程就称为DNS解析流程.

首先,域名是分级的.最上层为根域,其次是顶级域(com,net,org等等),首先根DNS服务器将顶级域名按照后缀的区别分别授权到指定的DNS服务器,有利于管理.

根服务器的总数是13

顶级域名再授权给相关的区域管理自己的域名.

DNS解析流程

  • 终端用户DNS客户端向本地网关DNS服务器发送DNS解析请求,本地DNS服务器解析失败,则以DNS客户端的身份向根服务器查询DNS
  • 上一步,终端与本地DNS服务器之间的查询称为递归查询,返回的结果只有成功,出错或者失败.
  • 从此,本地DNS服务器作为客户端向根DNS服务器进行的查询称为迭代查询.
  • 根服务器通过解析顶级域名,返回可能存在DNS解析结果的DNS服务器ip列表.
  • 本地DNS服务器于是继续迭代查询下去,一级一级的查询直到得到结果,或者返回查询失败的消息.

DNS服务器会有一个缓存机制,为了防止短时间内重复查询DNS解析结果.

知之为知之不知为不知.