DNS基本教程

1 DNS 原理1.1 DNS 简介DNS (Domain Name System )域名系统,在TCP/IP网络中有非常重要的地位,能够提供域名与IP 地址的解析服务。1.2 域名空间DNS 是一个

1 DNS 原理

1.1 DNS 简介

DNS (Domain Name System )域名系统,在TCP/IP网络中有非常重要的地位,能够提供域名与IP 地址的解析服务。

1.2 域名空间

DNS 是一个分布式数据库,命名系统采用层次的逻辑结构,如同一棵倒置的树,这个逻辑的树形结构称为域名空间,由于DNS 划分了域名空间,所以各机构可以使用自己的域名空间创建DNS 信息。

注:DNS 域名空间中,树的最大深度不得超过127层,树中每个节点最长可以存储63个字符。

1)域和域名

DNS 树的每个节点代表一个域,通过这些节点,对整个域名空间进行划分,成为一个层次结构。域名空间的每个域的名字,通过域名进行表示。域名通常由一个完全正式域名(FQDN )标识。F QDN 能准确表示出其相对于DNS 域树根的位置,也就是节点到DNS 树根的完整表述方式,从节点到树根采用反向书写,并将每个节点用“.”分隔,对于DNS 域google 来说,其完全正式域名(FQDN )为google.com 。

一个DNS 域可以包括主机和其他域(子域),每个机构都拥有名称空间的某一部分的授权,负责该部分名称空间的管理和划分,并用它来命名DNS 域和计算机。例如,google 为com 域的子

,

域,其表示方法为google.com ,而www 为google 域中的Web ,可以使用表示。

注意:通常,FQDN 有严格的命名限制,长度不能超过256字节,只允许使用字符a-z,0-9,A-Z 和减号(-)。点号(. )只允许在域名标志之间(例如“google.com”)或者FQDN 的结尾使用。域名不区分大小。

2.Internet 域名空间

Internet 域名空间结构为一棵倒置的树,并进行层次划分。由树根到树枝,也就是从DNS 根到下面的节点,按照不同的层次,进行了统一的命名。域名空间最顶层,DNS 根称为根域(root )。根域的下一层为顶级域,又称为一级域。其下层为二级域,再下层为二级域的子域,按照需要进行规划,可以为多级。所以对域名空间整体进行划分,由最顶层到下层,可以分成:根域、顶级

,

域、二级域、子域。并且域中能够包含主机和子域。主机www 的FQDN 从最下层到最顶层根域进行反写,表示为。

Internet 域名空间的最顶层是根域(root ),其记录着Inter net 的重要DNS 信息,由Internet 域名注册授权机构管理,该机构把域名空间各部分的管理责任分配给连接到Internet 的各个组织。

DNS 根域下面是顶级域,也由Internet 域名注册授权机构管理。共有3种类型的顶级域。

组织域:采用3个字符的代号,表示DNS 域中所包含的组织的主要功能或活动。比如com 为商业机构组织,edu 为教育机构组织,gov 为政府机构组织,mil 为军事机构组织,net 为网络机构组织,org 为非营利机构组织,int 为国际机构组织。

,

地址域:采用两个字符的国家或地区代号。如cn 为中国,kr 为韩国,us 为美国。

反向域:这是个特殊域,名字为in-addr.arpa ,用于将IP 地址映射到名字(反向查询)。

对于顶级域的下级域,Internet 域名注册授权机构授权给Inte rnet 的各种组织。当一个组织获得了对域名空间某一部分的授权后,该组织就负责命名所分配的域及其子域,包括域中的计算机和其他设备,并管理分配的域中主机名与IP 地址的映射信息。

1.3 区(Zone)

区是DNS 名称空间的一个连续部分,其包含了一组存储在DNS 服务器上的资源记录。每个区都位于一个特殊的域节点,但区并不是域。DNS 域是名称空间的一个分支,而区一般是存储在文件中的DNS 名称空间的某一部分,可以包括多个域。一个域可以再分成几部分,每个部分或区可以由一台DNS 服务器控制。使用区的概念,DNS 服务器回答关于自己区中主机的查询,它是哪个区的授权服务器。

1.4 主域名服务器与辅助域名服务器

DNS 服务器可以不存储任何区的信息或者存储一个或多个区的信息。当DNS 服务器接收到DNS 查询时,它检索它的本地区以定位所请求的信息。如果因为服务器不是所DNS 域的授权服务器,从而没有所请求域的数据而使用检索失败,服务器就检查它

,

的高速缓存并与其他DNS 服务器通信以解析该请求,或者把客户机提交给另一个可能知道答案的DNS 服务器。

DNS 服务器可以管理主区和辅助区。用户可以把服务器配置成管理多个不同的主区和辅助区,以尽量接近实际情况,这意味着服务器可能管理一个区的主拷贝和另一个区的辅助拷贝,或只管理一个区的主拷贝和辅助拷贝。对每个区,管理其主区的计算机是该区的主服务器,管理其辅助区的服务器是该区的辅助服务器。 主区是本地更新的,在区数据改变时,例如把该区的某个部分授权给另一台DNS 服务器,或在区中添加资源记录,这些改动必须在该区的主DNS 服务器上进行,以便新信息能加进本地区。 相反,辅助区是从其他服务器复制的。在辅助服务器上定义区时,区配置有服务器的IP ,辅助区就是从该地址复制信息。复制区文件的服务器可以是该区的主服务器或辅助服务器,有时称为辅助区的主控服务器。

当区的辅助服务器启动时,它与该区的主控服务器进行连接并启动一次区传输,区辅助服务器定期与区主控服务器通信,查看区数据是否改变。如果改变了,它就启动一次区传输。

每个区必须有主服务器,另外每个区至少要有一台辅助服务器,否则如果该区的主服务器崩溃了,就无法解析该区的名称。 辅助服务器的优点:

1)容错能力

,

配置辅助服务器后,在该区主服务器崩溃的情况下,客户机仍能解析该区的名称。一般把区的主服务器和区的辅助服务器安装在不同子网上,这样如果到一个子网的连接中断,DNS 客户机还能直接查询另一个子网上的名称服务器。

2)减少广域链路的通信量

如果某个区在远程有大量客户机,用户就可以在远程添加该区的辅助服务器,并把远程的客户机配置成先查询这些服务器,这样就能防止远程客户机通过慢速链路通信来进行DNS 查询。

3)减轻主服务器的负载

辅助服务器能回答该区的查询,从而减少该区主服务器必须回答的查询数。

1.6 DNS 查询原理及流程

1)DNS 相关概念

(1)DNS 服务器

运行DNS 服务器程序的计算机,储存DNS 数据库信息。DNS 服务器会尝试解析客户机的查询请求。在解答查询时,如果DNS 服务器能提供所请求的信息,就直接回应解析结果,如果该DNS 服务器没有相应的域名信息,则为客户机提供另一个能帮助解析查询的服务器地址,如果以上两种方法均失败,则回应客户机没有所请求的信息或请求的信息不存在。

(2)DNS 缓存

,

DNS 服务器在解析客户机请求时,如果本地没有该DNS 信息,则可以会询问其他DNS 服务器,当其他域名服务器返回查询结果时,该DNS 服务器会将结果记录在本地的缓存中,成为DNS 缓存。当下一次客户机提交相同请求时,DNS 服务器能够直接使用缓存中的DNS 信息进行解析。

(3)资源记录

DNS 服务器的信息数据,按照分类进行存储,能够解析客户端的DNS 请求。

(4)区文件

包含区资源记录的文件,选择DNS 服务器为授权服务器,管理该区域。在大部分DNS 实现中,用文本文件实现区。

2)递归查询和迭代查询

(1)递归查询

递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。

(2)迭代查询

DNS 服务器另外一种查询方式为迭代查询,DNS 服务器会向客户机提供其他能够解析查询请求的DNS 服务器地址,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客

,

户机另一台DNS 服务器地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果为止。

3)DNS 查询流程

(1)DNS 域名解析工作原理

<1> 客户机提交域名解析请求,并将该请求发送给本地的域名服务器。

<2> 当本地的域名服务器收到请求后,就先查询本地的缓存。如果有查询的DNS 信息记录,则直接返回查询的结果。如果没有该记录,本地域名服务器就把请求发给根域名服务器。

<3> 根域名服务器再返回给本地域名服务器一个所查询域的顶级域名服务器的地址。

<4> 本地服务器再向返回的域名服务器发送请求。

<5> 接收到该查询请求的域名服务器查询其缓存和记录,如果有相关信息则返回客户机查询结果,否则通知客户机下级的域名服务器的地址。

,

<6> 本地域名服务器将查询请求发送给返回的DNS 服务器。

<7> 域名服务器返回本地服务器查询结果(如果该域名服务器不包含查询的DNS 信息,查询过程将重复<6>、<7>步骤,直到返回解析信息或解析失败的回应)。

<8> 本地域名服务器将返回的结果保存到缓存,并且将结果返回给客户机。

(2)域名解析实例

假设客户机使用电信ADSL 接入Internet ,电信为其分配的D NS 服务器地址为219.141.140.10,域名解析过程如下

~

,

<1> 客户机向本地的域名服务器219.141.140.10发送解析

<2> 当本地的域名服务器收到请求后,就先查询本地的缓存。如果有查询的DNS 信息记录,则直接返回查询的结果。如果没有该记录,本地域名服务器就把解析请求发给根域名服务器。

<3> 根域名服务器收到请求后,根据完全正式域名FQDN ,判断该域名属于com 域,查询所有的com 域DNS 服务器的信息,并返回给本地域名服务器。

<4> 本地域名服务器219.141.140.10收到回应后,先保存返回的结果,再选择一台com 域的域名服务器,向其提交解析域名

<5> com 域名服务器接收到该查询请求后,判断该域名属于g oogle.com 域,通过查询本地的记录,列出管理google 域的域名服务器信息,然后将查询结果返回给本地的域名服务器219. 141.140.10。

<6> 本地域名服务器219.141.140.10收到回应后,先缓存返回的结果,再向google.com 域的服务器发出请求解析域名

<7> 域名服务器google.com 收到请求后,查询DNS 记录中的www 主机的信息,并将结果返回给本地服务器219.141.140.10。

标签: