Linux学习70 DNS服务解析过程精讲

一、总结

1、一次完整的查询请求经过的流程

  a、首先是客户端有应用程序期望通过主机名的方式连上另一台主机的话他首先会查本地的hosts文件,如果文件中没有的话他就会查本地的DNS缓存,如果命中就结束,如果没命中就去找我们配置的DNS服务器发送请求,这个DNS服务器有可能是一个DNS服务器,也有可能是一个缓存服务器。他向DNS服务器发起的请求叫做recursion请求,也叫递归请求。

  b、DNS服务器收到请求后

    (1)、如果对方请求的就是自己负责的域,那么就直接查询数据库并返回答案

    (2)、如果不是自己负责解析的域,他会先找自己的缓存,如果缓存命中到此也就结束了,如果没有命中,那么就会以迭代(iteration)的方式找根,然后由根去找一级域,然后再去找二级域等  

  c、返回的解析答案有可能会有如下几种

    (1)、肯定答案,有,并且有结果,这种是可以缓存的。

    (2)、否定答案:不存在查询的键,因此,不存在与其查询键对应的值,这种也是可以缓存的,我们可以指定缓存时长

    (3)、权威答案:由直接负责的DNS服务器返回的答案

    (4)、非权威答案

二、DNS服务器主从,即主-辅DNS服务器

1、