DNS服务器类型及查询过程

什么是DNS

  DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。

DNS域名称

  域名系统作为一个层次结构和分布式数据库,包含各种类型的数据,包括主机名和域名。DNS数据库中的名称形成一个分层树状结构称为域命名空间。域名包含单个标签分隔点,例如:im.qq.com。

d1.jpg

  • FQDN:(Fully Qualified Domain Name)完全合格域名/全称域名,唯一地标识在 DNS 分层树中的主机的位置,通过指定的路径中点分隔从根引用的主机的名称列表。

下图显示与主机称为 im 内 qq.com DNS 树的示例。 主机的 FQDN 是 im.qq.com。

DNS域的名称层次结构

d2.jpg

  • 根域:dns域名中使用时,规定有尾部句点(.)来指定名称位于根或更高级别的域层次结构

  • 顶级域:用来指示某个国家/地区或组织使用的名称的类型名称,例如:.com

  • 二级域:个人或组织在Internet上使用的注册名称,例如:qq.com

  • 子域:已注册的二级域名衍生的域名,通俗的讲就是网站名,例如:www.qq.com

  • 主机名:通常情况下,DNS域名的最左侧的标签标识网络上的特定计算机,例如:h1.www.qq.com

DNS服务器的类型:

  DNS域名服务器是用来存储主机-域名映射信息的,这些服务器具体又可以分为以下几类:

1、主域名服务器(primary name server)

  它是特定域所有信息的权威性信息源。它从域管理员构造的本地磁盘文件中加载域信息,该文件(区文件)包含着该服务器具有管理权的一部分域结构的最精确信息。主服务器是一种权威性服务器,因为它以绝对的权威去回答对其管辖域的任何查询。

2、从域名服务器(secondary name server)

  它可从主服务器中复制一整套域信息。区文件是从主服务器中复制出来的,并作为本地磁盘文件存储在辅助服务器中。这种复制称为"区文件复制"。在辅助域名服务器中有一个所有域信息的完整拷贝,可以有权威地回答对该域的查询。因此,辅助域名服务器也称作权威性服务器。配置辅助域名服务器不需要生成本地区文件,因为可以从主服务器中下载该区文件。

3、缓存名称服务器(caching-only server)

  可运行域名服务器软件,但是没有域名数据库软件。它从某个远程服务器取得每次域名服务器查询的结果,一旦取得一个,就将它放在高速缓存中,以后查询相同的信息时就用它予以回答。高速缓存服务器不是权威性服务器,因为它提供的所有信息都是间接信息。对于高速缓存服务器只需要配置一个高速缓存文件,但最常见的配置还包括一个回送文件,这或许是最常见的域名服务器配置。

4、转发域名服务器

  负责所有非本地域名的本地查询。转发域名服务器接到查询请求时,在其缓存中查找,如找不到把请求依次转发到指定的域名服务器,直到查询到结果为止,否则返回无法映射的结果。

DNS查询过程

  当客户端程序要通过一个主机名称来访问网络中的一台主机时,它首先要得到这个主机名称所对应的IP地址,因为IP数据报中允许放置的是目地主机的IP地址,而不是主机名称。可以从本机的hosts文件中得到主机名称所对应的IP地址,但如果hosts文件不能解析该主机名称时,只能通过向客户机所设定DNS服务器进行查询了。

可以以不同的方式对DNS查询进行解析:

  • 第一种是本地解析,就是客户端可以使用缓存信息就地应答,这些缓存信息是通过以前的查询获得的。

  • 第二种是直接解析,就是直接由所设定的DNS服务器解析,使用的是该DNS服务器的资源记录缓存或者其权威回答(如果所查询的域名是该服务器管辖的)。

  • 第三种是递归查询,即设定的DNS服务器代表客户端向其他DNS服务器查询,以便完全解析该名称,并将结果返回至客户端。

  • 第四种是迭代查询,即设定的DNS服务器向客户端返回一个可以解析该域名的其他DNS服务器,客户端再继续向其他DNS服务器查询。

1、本地解析
  本地解析的过程如图所示。客户机平时得到的DNS查询记录都保留在DNS缓存中,客户机操作系统上都运行着一个DNS客户端程序。当其他程序提出DNS查询请求时,这个查询请求要传送至DNS客户端程序。DNS客户端程序首先使用本地缓存信息进行解析,如果可以解析所要查询的名称,则DNS客户端程序就直接应答该查询,而不需要向DNS服务器查询,该DNS查询处理过程也就结束了。

d4.png

2、直接解析
  如果DNS客户端程序不能从本地DNS缓存回答客户机的DNS查询,它就向客户机所设定的局部DNS服务器发一个查询请求,要求局部DNS服务器进行解析。如图所示,局部DNS服务器得到这个查询请求,首先查看一下所要求查询的域名是不是自己能回答的,如果能回答,则直接给予回答,如是不能回答,再查看自己的DNS缓存,如果可以从缓存中解析,则也是直接给予回应。

d5.png

3、递归解析
       当局部DNS服务器自己不能回答客户机的DNS查询时,它就需要向其他DNS服务器进行查询。此时有两种方式,如图所示的是递归方式。局部DNS服务器自己负责向其他DNS服务器进行查询,一般是先向该域名的根域服务器查询,再由根域名服务器一级级向下查询。最后得到的查询结果返回给局部DNS服务器,再由局部DNS服务器返回给客户端。

d6.png

4、迭代解析
       当局部DNS服务器自己不能回答客户机的DNS查询时,也可以通过迭代查询的方式进行解析,如图所示。局部DNS服务器不是自己向其他DNS服务器进行查询,而是把能解析该域名的其他DNS服务器的IP地址返回给客户端DNS程序,客户端DNS程序再继续向这些DNS服务器进行查询,直到得到查询结果为止。

d7.png

一次完整的DNS解析过程图解

DNS域名解析过程.gif 

原创文章,作者:641348038@qq.com,如若转载,请注明出处:http://www.178linux.com/67736

(6)
641348038@qq.com641348038@qq.com
上一篇 2017-02-08 16:15
下一篇 2017-02-08 17:08

相关推荐

  • 架构师第一天之:Nginx

    nginx: 诞生背景: prefork机制不能支持过大的并发请求, C10K问题的解决 官方站点: http://nginx.org 二次开发版: tengine,openresty 特性: 模块化设计,较好的拓展性 高可靠性:master/worker架构 支持热部署:不停机更新配置文件,更换日至文件,更新服务器版本 低内存消耗:10000个keep-a…

    Linux干货 2016-10-29
  • ftp服务器介绍与配置

    一、 ftp服务,File Transfer Protocal 文件传输协议      1. ftp基于tcp协议,C/S架构          Server: wu-ftpd, proftpd ,pureftp,vsf…

    Linux干货 2015-06-21
  • 运维监控大数据的提取与分析

    本文内容整理来自【敏捷运维大讲堂】蒋君伟老师的线上直播分享。分别从以下3个维度来分享:1、云时代监控分析的窘境;2、使用标签标记监控数据的维度;3、监控数据应用场景。 云时代监控分析的窘境 在虚拟化与容器技术广泛应用的情况下,运维对象大规模地增长,监控平台每天存储的指标都以亿计,所以监控数据如今已经成了大数据。传统的监控工具在这种场景下,对于数据的提取分析,…

    系统运维 2017-01-09
  • 早安

    既来之,则安之。好好学习,努力奋斗!!!#linux#

    Linux干货 2017-07-11
  • 第三周作业

      1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 who | cut -d" " -f1 | sort -u who | cut -d" " -f1 | uniq 2、取出最后登录到当前系统的用户的相关信息。    who | tail -1 …

    Linux干货 2016-11-19
  • 第六周作业

    一、Vim编辑器练习: 用Vim编辑器做下面的练习,我的Linux系统(CentOS 6.9)安装了精简版系统,没有Vim编辑器。 a、设置Yum源为网易开源镜像站。 b、选择对应“镜像名”,到对应的“CentOS使用说明”里面查看内容 c、看着CentOS说明操作就可以了 d、使用说明 首先备份/etc/yum.repos.d/CentOS-Base.re…

    Linux干货 2017-08-22

评论列表(1条)

  • luoweiro
    luoweiro 2017-02-23 07:22

    对dns原理和解析过程整理的非常详细