DNS工作原理及其过程

来源:互联网 发布:空气刘海定型喷雾知乎 编辑:程序博客网 时间:2024/06/06 04:13
 

DNS工作原理及其过程


DNS服务器所提供的服务是完成将主机名或域名转换为IP地址的工作。为什么需要将主机名或域名转换为IP地址的工作呢?这是因为,当网络上的一台客户机访问某一服务器上的资源时,用户在浏览器地址栏中输入的是便于识记的主机名或域名。而网络上的计算机之间实现连接却是通过每台计算机在网络中拥有的唯一的IP地址来完成的,这样就需要在用户需要容易记忆的地址和计算机能够识别的地址之间有一个解析,DNS服务器便充当了地址解析的重要角色。


1. DNS服务

    DNS是域名系统(Domain Name System)的缩写,是一种组织域层次结构的计算机和网络服务命名系统。当用户在应用程序中输入DNS名称时,DNS服务可以将此名称解析为与此名称相关的IP地址信息。

     用户在使用网络服务时喜欢在浏览器的地址栏中输入使用主机名和域名组成的名称,如computer.myblog.com,因为这样的名称更容易被用户记住。但是,计算机在网络上是使用IP地址来通信的。为了能够实现网络计算机之间通信,DNS服务器所提供的服务就是将用户所使用的计算机或服务名称映射为IP地址。


2. DNS服务的工作过程

     当DNS客户机需要查询程序中使用的名称时,它会查询DNS服务器来解析该名称。客户机发送的每条查询消息都包括3条信息,以指定服务器应回答的问题。

      1> 指定的DNS域名,表示为完整合格的域名(FQDN);

      2> 指定的查询类型,它可以根据类型指定资源记录,或作为查询操作的专门类型;

      3> DNS域名的指定类别。

     对于DNS服务器,它始终应指定为Internet类别。例如,指定的名称可以是计算机的完全合格的域名,如host.hello.myblog.com,并且指定的查询类型用于通过该名称搜索地址资源记录。系统将把DNS查询当做客户机向服务器提出的两部分问题,如“对于名为host.hello.myblog.com的计算机,你有没有地址资源记录?”当客户机从服务器接收应答时,它读取并解释应答的地址资源记录,以了解它通过名称提问的计算机的IP地址。

     DNS查询以各种不同的方式进行解析。客户机有时也可通过使用从以前查询获得的缓存信息就地应答查询。DNS服务器可使用其自身的资源记录信息缓存来应答查询,也可代表请求客户机来查询或联系其它DNS服务器,以完全解析该名称,并随后将应答返回至客户机,这个过程称为递归。

     另外,客户机自已也可以尝试联系其它的DNS服务器来解析名称。如果客户机这么做,它会使用基于服务器应答的独立和附加的查询,该过程称作迭代。

     总之,DNS的查询过程按两部分进行:首先,名称查询从客户机开始并传送至解析程序(DNS客户服务)进行解析;其次,不能就地解析查询时,可根据需要查询的DNS服务器来解析名称,如下图:


如查询过程的初始步骤所示,DNS域名由本机的程序使用。该请求随后传送至DNS客户服务,以通过使用就地缓存的信息进行解析。如果可以解析查询的名称,则查询将被应答,并且此过程完成。其中,本地解析程序的缓存可以从以下2个可能的来源获取名称信息:

     1> 如果主机文件就地配置,则来自该文件的任何主机名称到地址的映射都将在DNS客户服务启动时预先加载到缓存中;

     2> 从以前DNS查询应答的响应中获取的资源记录将被添加至缓存并保留一段时间。

     如果此查询不匹配缓存中的项目,则解析过程继续进行,客户机查询DNS服务器来解析名称。

     接下来查询DNS服务器,当本地的DNS不能就地解析查询时,可根据需要查询DNS服务器来解析名称,如图所示。客户机查询首选DNS服务器。在此过程中使用的实际服务器是从全局列表中选择的。当DNS服务器接收到查询时,首先检查它能否根据在服务器就地配置区域中获取的资源记录信息作出权威性的应答。如果查询的名称与本地区域信息中的相应资源记录匹配,则服务器作出权威性的应答,并且使用该信息来解析查询的名称。

     如果查询的名称没有区域信息,则服务器检查它能否通过本地缓存的先前查询信息来解析名称。如果从中发现匹配的信息,则服务器使用它应答查询。接着,如果首选服务器可以使用来自其缓存的肯定匹配响应来应答发出请求的客户机,则此次查询完成。

     如果查询名称在首选服务器中未发现来自缓存或区域信息的匹配应答,则查询过程继续进行,使用递归来完全解析名称,包括来自其它DNS服务器的支持,以帮助解析名称。在默认情况下,DNS客户服务要求服务器在返回应答前使用递归过程来代表客户机完全解析名称。在大多数情况下,DNS服务器的默认匹配支持递归过程。


     为了使DNS服务器正确执行,首先需要在DNS域名空间内存放其它DNS服务器的一些有用的联系信息。该信息以根线索的形式提供,它是记录初步资源的一个列表,可用来定位一些DNS服务器,这些服务器对DNS域名空间树的根具有绝对控制权。根服务器对DNS域名空间树中的根域和顶级域具有绝对控制权。DNS服务器可通过使用根线索搜索根服务器来完成递归过程。

     例如,当客户机查询单个DNS服务器时,考虑使用递归过程来定位名称host.example.microsoft.com。此过程在DNS服务器和客户机首次启动,并且没有可帮助解析名称查询的当地缓存信息时进行。

     首先,首选服务器分析全名并确定对于顶级域com具有绝对控制权的服务器的位置。随后,对com DNS服务器使用迭代查询,以获取microsoft.com服务器的参考信息。然后参考性应答从microsoft.com服务器传送到example.microsoft.com的DNS服务器。最后,与服务器example.microsoft.com联系上。因为该服务器包括作为其配置区域一部分的查询名称,所以,它向启动递归的源服务器作出权威性的应答。当源服务器接收到表明已获得对请求查询的权威性应答的响应时,它将此应答转发给发出请求的客户机,这样,递归查询过程就完成了。

0 0
原创粉丝点击