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

相关推荐

  • 编译安装httpd-2.2.27.tat.gz及配置常见参数

    一、编译安装的整体步骤  1、在官网下载源码,并解压 2、切换到其目录中  3、执行./configure 4、编译   二、编译中及安装后配置常见的参数及其说明 编译中配置 1)指定安装路径 –prefix=/usr/local/Pacakage_name  指定安装路径 –sysc…

    Linux干货 2016-08-24
  • 自动化系统安装之DHCP服务实现

    DHCP服务实现 dhcp的工作过程是基于UDP协议的,其中用到了UDP的67(服务器),68(客户端)端口 使用场景 自动化安装系统 解决IPV4资源不足的问题 同网段多dhcp服务 dhcp服务必须基于本地 先到先得 跨网段 RFC 1542 dhcpclient客户端向dhcpsercer服务器请求续约时,中间相隔多网段时,如果路由器是 RFC1542…

    2018-01-29
  • 防火墙

    iptables笔记整理

    Linux干货 2018-03-05
  • MySQL优化大全

     1. 优化SQL   1)通过show status了解各种sql的执行频率         show status like 'Com_%'        了解 Com_select,Com_in…

    Linux干货 2015-04-13
  • Linux第二周总结

    1、Linux上的文件管理命令都有哪些,其常用的使用方法及其相关示例演示。 Cp、mv、rm cp命令: copy 单源复制:cp [OPTION]… [-T] SOURCE DEST 如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中; 如果DEST存在: 如果DESST是非目录文件;则覆盖目标文件; 如果DEST是目录文件…

    2017-07-09
  • ansible

    运维工具介绍 Ansible Ansible优点:  Agentless       (去中心化)  Stupied Simple (上手简单,学习曲线平滑)  SSH by default (安全,无需安装客户端)  YAML no code,定制剧本 (语法简单,维护方便) 自动工具衍…

    Linux干货 2017-05-23

评论列表(1条)

  • luoweiro
    luoweiro 2017-02-23 07:22

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