资源描述
早期早期因特网的名字系统采用因特网的名字系统采用主机文件主机文件。主机文件包括主机文件包括两个字段两个字段:主机名和:主机名和IP地址。地址。每台主机都存有一个主机文件,并周期性地进每台主机都存有一个主机文件,并周期性地进行行更新更新,网络中所有需要与本机进行通信的主,网络中所有需要与本机进行通信的主机的名字及其机的名字及其IP地址都应该存在于该文件中。地址都应该存在于该文件中。通过主机文件实现主机名字与通过主机文件实现主机名字与IP地址的映射地址的映射。目前目前因特网上采用的是因特网上采用的是域名系统域名系统DNS。在域名系统中,名字在域名系统中,名字IP地址地址映射表被分为多映射表被分为多个较小的子表个较小的子表存放在不同的负责进行名字解析存放在不同的负责进行名字解析的的服务器服务器中,当主机需要进行名字解析时,可中,当主机需要进行名字解析时,可以请求服务器为他完成解析。以请求服务器为他完成解析。1.第第9章章 域名系统域名系统(DNS)9.1 命名机制与名字管理命名机制与名字管理9.2 因特网域名因特网域名9.3 DNS服务器服务器9.4 域名解析域名解析 9.5 DNS报文格式报文格式 9.6 DNS资源记录资源记录 9.7 DNS配置及数据库文件配置及数据库文件2.9.1 命名机制与名字管理命名机制与名字管理因特网的因特网的命名机制命名机制要求主机名字具有:要求主机名字具有:全局惟一性全局惟一性便于管理便于管理便于映射便于映射网络中网络中通常采用的命名机制有两种通常采用的命名机制有两种:无层次命名机制:无层次命名机制和层次型命名机制。和层次型命名机制。无层次无层次(flat)命名机制:命名机制:早期因特网采用,主机名用一早期因特网采用,主机名用一个个字符串字符串表示,表示,没有任何结构没有任何结构。所有的无结构主机名。所有的无结构主机名构成构成无层次名字空间无层次名字空间。为了保证无层次名字的全局惟一性,命名采用为了保证无层次名字的全局惟一性,命名采用集中式集中式管理方式管理方式,名字,名字地址映射通常通过主机文件完成。地址映射通常通过主机文件完成。3.问题问题:无层次命名不适合具有大量对象的网络,随着:无层次命名不适合具有大量对象的网络,随着网络中对象的增加,中央网络中对象的增加,中央管理管理机构的工作量也会增加,机构的工作量也会增加,映射效率映射效率降低,而且容易出现降低,而且容易出现名字冲突名字冲突。层次型命名机制层次型命名机制将层次结构引入主机名字,该结构对将层次结构引入主机名字,该结构对应于管理机构的层次。应于管理机构的层次。层次型命名机制层次型命名机制将名字空间分成若干子空间将名字空间分成若干子空间,每个机每个机构负责一个子空间的管理构负责一个子空间的管理。授权管理机构可以将其管。授权管理机构可以将其管理的理的子名字空间进一步划分子名字空间进一步划分,授权给下一级机构管理,授权给下一级机构管理,而下一级又可以继续划分他所管理的名字空间。这样而下一级又可以继续划分他所管理的名字空间。这样一来,一来,名字空间呈一种树形结构名字空间呈一种树形结构,树上的每一个节点,树上的每一个节点都有一个相应的标号。都有一个相应的标号。4.5.根是惟一的,所以不需要标号。树的叶结点是那些需根是惟一的,所以不需要标号。树的叶结点是那些需要根据名字去寻址的主机(通常是网络上提供服务的要根据名字去寻址的主机(通常是网络上提供服务的服务器)。服务器)。惟一性惟一性:每个机构或子机构向上申请自己负责管理的:每个机构或子机构向上申请自己负责管理的名字空间,并向下分配子名字空间。在给结点命名标名字空间,并向下分配子名字空间。在给结点命名标号时(分配子名字空间),每个机构或子机构只要号时(分配子名字空间),每个机构或子机构只要保保证自己所管理的名字的下一级标号不发生重复证自己所管理的名字的下一级标号不发生重复就可以就可以保证所有的名字不重复。保证所有的名字不重复。管理管理:通过层次化的名字结构,将名字空间的管理工:通过层次化的名字结构,将名字空间的管理工作作分散分散到多个不同层次的管理机构去进行管理,减轻到多个不同层次的管理机构去进行管理,减轻了单个管理机构的管理工作量,提高了效率。了单个管理机构的管理工作量,提高了效率。映射映射:很多的名字解析工作可以在:很多的名字解析工作可以在本地本地完成。极大地完成。极大地提高了系统适应大量且迅速变化的对象的能力。提高了系统适应大量且迅速变化的对象的能力。当前当前因特网采用的是层次型命名机制因特网采用的是层次型命名机制。返回返回6.9.2 因特网域名因特网域名主机名主机名 IP地址地址主机文件主机文件域名系统域名系统DNS用主机文件进行名字解析时,每个需要进行名用主机文件进行名字解析时,每个需要进行名字解析的主机都拥有一个字解析的主机都拥有一个HOSTS文件。现在,文件。现在,小型网络仍然可以采用这种方式进行名字解析。小型网络仍然可以采用这种方式进行名字解析。下面是下面是Windows系统中的系统中的HOSTS文件。文件。7.#ThisisasampleHOSTSfileusedbyMicrosoft#TCP/IPforWindows.#ThisfilecontainsthemappingsofIPaddressesto#hostnames.#Eachentryshouldbekeptonanindividualline.The#IPaddressshouldbeplacedinthefirstcolumn#followedbythecorrespondinghostname.#TheIPaddressandthehostnameshouldbe#separatedbyatleastonespace.#Additionally,comments(suchasthese)maybe#insertedonindividuallinesorfollowingthemachine#namedenotedbya#symbol.#Forexample:##sourceserver##xclienthost127.0.0.1localhost8.随着因特网上主机数量的不断增加,主机文件的变更随着因特网上主机数量的不断增加,主机文件的变更越来越频繁。越来越频繁。域名系统域名系统DNS是在是在1984年为取代年为取代HOSTS文件而创建文件而创建的层次型名字系统。的层次型名字系统。域名系统层次结构域名系统层次结构从高到低的组织:从高到低的组织:根域根域(Root)位于)位于DNS的最高层,一般不出现在域的最高层,一般不出现在域名中。如果确实需要指明根,那么它将出现在名中。如果确实需要指明根,那么它将出现在FQDN的最后面,以一个句点的最后面,以一个句点“”表示。表示。顶级域顶级域又称为又称为一级域一级域,顶级域按照组织类型和国家划,顶级域按照组织类型和国家划分,可以分为三个主要的域:分,可以分为三个主要的域:通用顶级域名通用顶级域名gTLD、国家代码顶级域名国家代码顶级域名ccTLD和和反向域反向域。gTLD:com、org和和net是向所有用户开放的三个通是向所有用户开放的三个通用顶级域名,也称为全球域名,任何国家的用户都可用顶级域名,也称为全球域名,任何国家的用户都可申请注册它们下面的二级域名。申请注册它们下面的二级域名。mil、gov和和edu三个三个通用顶级域名只向美国专门机构开放。通用顶级域名只向美国专门机构开放。int是适用于国是适用于国际化机构的国际顶级域名(际化机构的国际顶级域名(iTLD)。)。9.上述上述7个传统的通用顶级域供不应求,后来又个传统的通用顶级域供不应求,后来又新增了新增了7个顶级域:个顶级域:biz、info、name、pro、aero、coop和和museum(新的顶级域名新的顶级域名)。其中前其中前4个是非限制性域,后个是非限制性域,后3个是限制性域,个是限制性域,限制性域只能用于专门的领域。限制性域只能用于专门的领域。ccTLD:目目前前有有240240多多个个国国家家代代码码顶顶级级域域名名,由由二二个个字字母母缩缩写写来来表表示示。ukuk代代表表英英国国,hkhk代代表表香港香港(地区地区),sg sg代表新加坡。代表新加坡。反向域:反向域:的顶级域名为的顶级域名为arpa,用于实现,用于实现IP地址地址到域名的反向解析。到域名的反向解析。次级域次级域又叫又叫二级域二级域,次级域与具体的公司或组,次级域与具体的公司或组织相关联。织相关联。子域子域是次级域下面的域,子域是各个组织将名是次级域下面的域,子域是各个组织将名字空间进行的进一步划分。字空间进行的进一步划分。10.中国顶级域名下的行政区域名中国顶级域名下的行政区域名(34(34个个):适用于我:适用于我国的各省、自治区、直辖市,分别为:国的各省、自治区、直辖市,分别为:BJ-北京市;北京市;SH-上海市;上海市;TJ-天津市;天津市;CQ-重庆市;重庆市;HE-河北省;河北省;SX-山西省;山西省;NM-内蒙古自治区;内蒙古自治区;LN-辽宁省;辽宁省;JL-吉林省;吉林省;HL-黑龙江省;黑龙江省;JS-江苏省;江苏省;ZJ-浙江省;浙江省;AH-安徽省;安徽省;FJ-福建省;福建省;JX-江西省;江西省;SD-山东省;山东省;HA-河南省;河南省;HB-湖北省;湖北省;HN-湖南省;湖南省;GD-广东省;广东省;GX-广西壮族自治区;广西壮族自治区;HI-海南省;海南省;SC-四川省;四川省;GZ-贵州省;贵州省;YN-云南省;云南省;XZ-西藏自治区;西藏自治区;SN-陕西省;陕西省;GS-甘肃省;甘肃省;QH-青海省;青海省;NX-宁夏回族自治区;宁夏回族自治区;XJ-新疆维吾尔自治区;新疆维吾尔自治区;TW-台湾;台湾;HK-香港;香港;MO-澳澳门。门。主机名主机名(Host Name)是最末级的名字。是最末级的名字。11.每个域每个域/子域对应图子域对应图9-1中的一棵子树,而在实际的名中的一棵子树,而在实际的名字空间的管理中采用的是字空间的管理中采用的是区域区域(Zone)的概念,)的概念,区区域是域是DNS的管理单元的管理单元,通常是指一个,通常是指一个DNS服务器所管服务器所管理的名字空间。区域和域是不同的概念,理的名字空间。区域和域是不同的概念,域是一个完域是一个完整的子树整的子树,而,而区域可以是子树中的任何一部分区域可以是子树中的任何一部分,区域,区域可以是一个域,也可以不是一个域,区域不一定包含可以是一个域,也可以不是一个域,区域不一定包含那部分那部分DNS树中的所有子域。图树中的所有子域。图9-2描述了区域和域描述了区域和域的不同。的不同。12.DNSDNS主要由主要由3 3个部分个部分构成:构成:名字解析器名字解析器(resolver)(resolver)名字解析器请求名字解析器请求名字服务器的服务,获得待查主机的名字服务器的服务,获得待查主机的IPIP地址。地址。解析器位于应用程序中或主机的例行程序库解析器位于应用程序中或主机的例行程序库中。中。域名空间域名空间(domain name space)(domain name space)用树形结用树形结构组织的构组织的DNSDNS数据库。数据库。名字服务器名字服务器(name server)(name server)名字服务器用名字服务器用于保存域名空间各部分的信息,响应名字解于保存域名空间各部分的信息,响应名字解析请求。析请求。返回返回13.9.3 DNS服务器服务器DNS服务器可以通过服务器可以通过多种方法获取域名空间的部分信息多种方法获取域名空间的部分信息:可以由管理员编辑一个原始区域文件可以由管理员编辑一个原始区域文件从其他名字服务器那里复制区域文件从其他名字服务器那里复制区域文件通过向其他通过向其他DNS服务器查询来获取具有一定时效的服务器查询来获取具有一定时效的缓存信息缓存信息 名字服务器名字服务器的三种主要的三种主要类型类型:主(主(primary)名字服务器)名字服务器次(次(secondary)名字服务器)名字服务器惟高速缓存(惟高速缓存(caching-only)名字服务器)名字服务器主名字服务器主名字服务器是拥有一个区域文件的原始版本的服务是拥有一个区域文件的原始版本的服务器。关于该区域文件的任何变更都在这个主名字服务器。关于该区域文件的任何变更都在这个主名字服务器的原始版本上进行。器的原始版本上进行。14.次名字服务器次名字服务器从其他主名字服务器那里从其他主名字服务器那里复制一个区复制一个区域文件域文件。该区域文件是主名字服务器的原始区域文。该区域文件是主名字服务器的原始区域文件的一个件的一个只读版本只读版本。关于区域文件的任何改动都在。关于区域文件的任何改动都在主名字服务器那里进行,次名字服务器通过主名字服务器那里进行,次名字服务器通过区域传区域传输输(zone transfer)跟随主名字服务器上区域文件)跟随主名字服务器上区域文件的变化。的变化。惟高速缓存名字服务器惟高速缓存名字服务器上没有区域文件,它的职责上没有区域文件,它的职责是帮助名字解析器完成名字解析,并是帮助名字解析器完成名字解析,并缓存解析结果缓存解析结果。惟高速缓存名字服务器对名字解析请求的响应惟高速缓存名字服务器对名字解析请求的响应是非是非授权的授权的。惟高速缓存名字服务器在启动之后,。惟高速缓存名字服务器在启动之后,通过通过缓存查询的结果来逐渐建立缓存查询的结果来逐渐建立DNS信息信息。缓存条目的。缓存条目的生存期生存期TTL由提供授权解析结果的名字服务器决定。由提供授权解析结果的名字服务器决定。返回返回15.9.4 域名解析域名解析TCP/IP的域名系统的域名系统DNS是一个是一个有效的、可靠的、通用有效的、可靠的、通用的、分布式的的、分布式的名字名字地址映射系统。地址映射系统。域名解析包括正向解析和反向解析:域名解析包括正向解析和反向解析:正向解析正向解析是根据域名查询其对应的是根据域名查询其对应的IP地址或其他相地址或其他相关信息关信息反向解析反向解析是根据是根据IP地址查询其对应的域名地址查询其对应的域名DNS服务器和客户端属于服务器和客户端属于TCP/IP模型的模型的应用层应用层,DNS既可以使用既可以使用UDP,也可以使用,也可以使用TCP来进行通信来进行通信。DNS服务器使用服务器使用UDP/TCP的的53号熟知端口号熟知端口。DNS服务器能够接收两种类型的解析:服务器能够接收两种类型的解析:递归解析递归解析(Recursive resolution)反复解析反复解析(iterative resolution)。)。16.9.4.1 递归解析递归解析递归解析要求名字服务器系统一次性完成名字递归解析要求名字服务器系统一次性完成名字地址变换地址变换。递归查询强迫指定的。递归查询强迫指定的DNS服务服务器对请求做出响应,该响应或者是一个失败响器对请求做出响应,该响应或者是一个失败响应,或者是一个包含相应的解析结果的成功响应,或者是一个包含相应的解析结果的成功响应。应。客户端计算机的解析器通常会发出递归查客户端计算机的解析器通常会发出递归查询询。17.9.4.2 反复解析反复解析反复解析要求客户端本身反复寻求名字服务器的服务反复解析要求客户端本身反复寻求名字服务器的服务来获得最终的解析结果。来获得最终的解析结果。在反复解析中,名字服务器在反复解析中,名字服务器收到请求后,若能够给出解析结果,则向客户端发回收到请求后,若能够给出解析结果,则向客户端发回最终结果,若本名字服务器无法给出解析结果,则应最终结果,若本名字服务器无法给出解析结果,则应向查询者提供它认为能够给出解析结果的服务器的向查询者提供它认为能够给出解析结果的服务器的IP地址。请求者收到该地址。请求者收到该IP地址后,将向该地址发解析请地址后,将向该地址发解析请求,直到获得最终解析结果或失败响应。求,直到获得最终解析结果或失败响应。当一个名字服务器试图找到它的本地域之外的名字时,当一个名字服务器试图找到它的本地域之外的名字时,往往会发送反复查询。为了解析名字,它可能必须查往往会发送反复查询。为了解析名字,它可能必须查询许多外面的询许多外面的DNS服务器,一般从根域服务器开始服务器,一般从根域服务器开始自自顶向下查找顶向下查找。18.19.下图给出了一个递归解析与反复解析相结下图给出了一个递归解析与反复解析相结合,以转换名字合,以转换名字的全过程。的全过程。20.9.4.3 反向解析反向解析名字解析中的名字解析中的反向解析是指由主机的反向解析是指由主机的IP地址求地址求得其域名的过程得其域名的过程。DNS在名字空间中设置了一在名字空间中设置了一个称为个称为in-addr.arpa的特殊域,专门用于反向的特殊域,专门用于反向解析。为了能够将反向解析与正向解析用相同解析。为了能够将反向解析与正向解析用相同的方法进行解析,反向解析将的方法进行解析,反向解析将IP地址的字节颠地址的字节颠倒过来写,构成反向解析的倒过来写,构成反向解析的“名字空间名字空间”。地址。地址为为202.119.80.126的主机的域名为的主机的域名为126.80.119.202.in-addr.arpa.。21.22.9.4.4 解析效率解析效率解决:两步名字解析机制和高速缓存技术。解决:两步名字解析机制和高速缓存技术。采用采用两步名字解析机制两步名字解析机制解析时,第一步先通过解析时,第一步先通过本地名字服务器进行解析,若不行,再采用自本地名字服务器进行解析,若不行,再采用自顶向下的方法搜索。两步法既顶向下的方法搜索。两步法既提高了效率提高了效率又又保保证了域名管理的层次结构证了域名管理的层次结构。在名字服务器中采用在名字服务器中采用高速缓存技术高速缓存技术,存放最近,存放最近解析过的名字解析过的名字地址映射和描述解析该名字的地址映射和描述解析该名字的服务器位置的信息,可避免每次解析非本地名服务器位置的信息,可避免每次解析非本地名字时都进行自顶向下的搜索,减小非本地名字字时都进行自顶向下的搜索,减小非本地名字解析带来的开销。解析带来的开销。23.有效性问题:有效性问题:若授权名字服务器中的名字若授权名字服务器中的名字地址映射地址映射已发生变化而高速缓存未能作相应刷新,则会带来有已发生变化而高速缓存未能作相应刷新,则会带来有效性问题,高速缓存内容的失效会导致解析错误。效性问题,高速缓存内容的失效会导致解析错误。解决方法解决方法:服务器向解析器报告缓冲信息时,必须服务器向解析器报告缓冲信息时,必须注明该信息注明该信息是非授权的信息是非授权的信息,同时还指出能够给出授权解析结,同时还指出能够给出授权解析结果的名字服务器的地址。若解析器仅注重效率,它果的名字服务器的地址。若解析器仅注重效率,它可以立即使用非授权的结果,若解析器注重解析的可以立即使用非授权的结果,若解析器注重解析的准确性,则可以立即向授权服务器发出解析请求,准确性,则可以立即向授权服务器发出解析请求,以便获得准确的结果。以便获得准确的结果。高速缓存中的高速缓存中的每一个映射条目都有一个生存时间每一个映射条目都有一个生存时间TTL,一旦某条目的,一旦某条目的TTL时间到,便将它从缓冲区时间到,便将它从缓冲区中删除。中删除。事实上,由于域名事实上,由于域名地址映射的稳定性,名字缓冲机地址映射的稳定性,名字缓冲机制还是非常有效的。制还是非常有效的。返回返回24.9.5 DNS报文格式报文格式DNS报文包括报文包括请求报文请求报文和和响应报文响应报文。请求报文和响应。请求报文和响应报文的报文的格式是相同的格式是相同的。DNS报文的首部由报文的首部由6个字段构成:个字段构成:标识字段标识字段长度为长度为16比特,用于匹配请求和响应。比特,用于匹配请求和响应。标志字段标志字段长度为长度为16比特,划分为如图比特,划分为如图9-7所示的若干子所示的若干子字段。字段。QR子字段子字段(1比特比特):用来区别请求和响应。:用来区别请求和响应。0表示请表示请求报文,求报文,1表示响应报文。表示响应报文。OpCode子字段子字段(4比特比特):用来定义操作类型。:用来定义操作类型。0表示标准查询(正向解析)表示标准查询(正向解析)1表示反向查询(反向解析)表示反向查询(反向解析)2表示服务器状态请求。表示服务器状态请求。25.26.AA子字段子字段(1比特):比特):授权回答标志授权回答标志,1表示给出回表示给出回答的服务器是该域的授权服务器。答的服务器是该域的授权服务器。TC子字段子字段(1比特):比特):截断标志截断标志,1表示报文长度超表示报文长度超过了过了512字节,并被截断成了字节,并被截断成了512字节。字节。RD子字段子字段(1比特):比特):希望递归标志希望递归标志,1表示请求服表示请求服务器进行递归解析,务器进行递归解析,0表示反复解析。表示反复解析。RA子字段子字段(1比特):可以递归标志,该子字段在服比特):可以递归标志,该子字段在服务器的响应中有效,务器的响应中有效,1表示服务器支持递归解析。表示服务器支持递归解析。RA子字段后面是子字段后面是3比特保留位比特保留位,必须置为,必须置为0。rCode子字段子字段(4比特):用来表示比特):用来表示错误状态错误状态。0表示表示没有错误,没有错误,1表示格式错,表示格式错,2表示服务器故障,表示服务器故障,3表示表示查询的域名不存在,查询的域名不存在,4表示是不支持的解析类型,表示是不支持的解析类型,5表表示管理上禁止。示管理上禁止。27.四个四个“数数”域,分别指出域,分别指出“问题记录问题记录”、“回答记回答记录录”、“授权记录授权记录”和和“附加信息记录附加信息记录”的数目。的数目。问题记录数问题记录数:问题部分所包含的域名解析查询的:问题部分所包含的域名解析查询的个数,在一个请求报文中,可以包含若干个数,在一个请求报文中,可以包含若干(最多最多2161)个。个。回答记录数回答记录数:回答部分所包含的回答记录个数。:回答部分所包含的回答记录个数。请求报文中该字段被置请求报文中该字段被置“0”。授权记录数授权记录数:授权部分所包含的授权记录的个数。:授权部分所包含的授权记录的个数。请求报文中该字段被置请求报文中该字段被置“0”。附加信息记录数附加信息记录数:附加信息部分所包含的附加信:附加信息部分所包含的附加信息记录个数。请求报文中该字段被置息记录个数。请求报文中该字段被置“0”。28.DNS报文首部的后面是可变部分,包括四个小部分。报文首部的后面是可变部分,包括四个小部分。问题部分问题部分由一组问题记录组成。问题记录格式如图。由一组问题记录组成。问题记录格式如图。询问名询问名字段可字段可变长变长,询问名由,询问名由标号序列标号序列构成,每个构成,每个标号前有一个字节指出该标号的字节长度。标号前有一个字节指出该标号的字节长度。询问类询问类(query class)16比特,比特,1表示因特网协表示因特网协议议(IN)。询问类型询问类型(query type)16比特,定义比特,定义询问希望询问希望得到的回答类型得到的回答类型。域名虽然主要针对主机而言,但。域名虽然主要针对主机而言,但由于域名系统的由于域名系统的通用性通用性,域名解析既可以用于获取,域名解析既可以用于获取IP地址,也可以用于获取名字服务器和主机信息等。地址,也可以用于获取名字服务器和主机信息等。为了区分这些不同类型的对象,域名系统中每一命为了区分这些不同类型的对象,域名系统中每一命名条目都被赋予类型属性。名条目都被赋予类型属性。(表表9-3)29.表表9-3 常用的类型常用的类型A 1 IPv4地址地址 用于域名到用于域名到IPv4地址的转换地址的转换NS 2 名字服务器名字服务器 标识区域的授权名字服务器标识区域的授权名字服务器CNAME 5 正规名正规名 定义主机正规名的别名定义主机正规名的别名SOA 6 授权开始授权开始 标识授权的开始标识授权的开始PTR 12 指针指针 指向其他域名空间的指针指向其他域名空间的指针HINFO 13 主机信息主机信息 标识主机使用的标识主机使用的CPU和和OSMX 15 邮件交换邮件交换 标识用于域的邮件交换资源标识用于域的邮件交换资源AAAA 28 IPv6地址地址 用于域名到用于域名到IPv6地址的转换地址的转换AXFR 252 区域传输区域传输 请求传输整个区域请求传输整个区域ANY 255 全记录请求全记录请求 请求所有的记录请求所有的记录记录别名记录别名 数值数值 记录类型记录类型描描 述述30.DNS报文的报文的其余三个部分其余三个部分是回答部分、授权部是回答部分、授权部分和附加信息部分,附加信息包含回答部分和分和附加信息部分,附加信息包含回答部分和授权部分返回的资源所要求的附加信息(如授权部分返回的资源所要求的附加信息(如IP地地址)。址)。这三部分均由一组这三部分均由一组资源记录资源记录组成,而且仅在应组成,而且仅在应答报文中出现。一条资源记录答报文中出现。一条资源记录描述一个域名描述一个域名,格式如图。格式如图。31.域名域名、类型类型和和类类与问题部分的三个字段的含义与问题部分的三个字段的含义相同。相同。生存时间生存时间:缓存该资源记录的:缓存该资源记录的秒秒数。数。资源数据长度资源数据长度:资源数据的:资源数据的字节字节数。数。资源数据根据类型的不同,可以是资源数据根据类型的不同,可以是IP地址地址、域域名名、指针指针或其他字符串。或其他字符串。域名字段是变长的,域名字段是变长的,DNS报文采取特殊约定的报文采取特殊约定的方式来表达域名。方式来表达域名。请求和响应报文的域名的表请求和响应报文的域名的表达方式不同达方式不同。32.在响应报文中,回答的域名往往与问题中的域在响应报文中,回答的域名往往与问题中的域名相同。为了节省响应报文的空间,服务器对名相同。为了节省响应报文的空间,服务器对回答的域名采用回答的域名采用压缩格式压缩格式,对相同的域名只存,对相同的域名只存放一个拷贝,其他放一个拷贝,其他采用指针表示采用指针表示。若开始的两个二进制位为若开始的两个二进制位为“11”,则接下去的,则接下去的14比特为指针,该指针指向存放在报文中另比特为指针,该指针指向存放在报文中另一位置的域名字符串。一位置的域名字符串。若开始的两个二进制位为若开始的两个二进制位为“00”,则接下去的,则接下去的6比特指出紧跟在计数字节后面的标号的长度。比特指出紧跟在计数字节后面的标号的长度。33.解析域名解析域名的的请求报文请求报文34.解析域名解析域名的的响应报文响应报文返回返回35.9.6 DNS资源记录资源记录DNS响应报文中的回答部分、授权部分和附加信息部响应报文中的回答部分、授权部分和附加信息部分由资源记录构成,资源记录存放在名字服务器的数分由资源记录构成,资源记录存放在名字服务器的数据库中。据库中。DNS具有具有20多种不同类型的资源记录,下面多种不同类型的资源记录,下面给出给出几种常用的资源记录的格式几种常用的资源记录的格式。授权开始授权开始(SOA)资源记录定义在域中充当)资源记录定义在域中充当主名字服主名字服务器务器的主机及相关参数。语法如下:的主机及相关参数。语法如下:IN SOA ()36.符号指明名字服务器所负责的域,通过引导文件可符号指明名字服务器所负责的域,通过引导文件可以查到域名。以查到域名。IN和和SOA分别指明资源记录的类和类型。分别指明资源记录的类和类型。名字服务器名字服务器(NS)资源记录指明哪一个资源记录指明哪一个DNS服务器对于服务器对于域是授权服务器。要确保在主名字服务器和次名字服域是授权服务器。要确保在主名字服务器和次名字服务器内包含务器内包含NS资源记录。语法:资源记录。语法:IN NS 指明名字服务器所对应的域的名称。指明名字服务器所对应的域的名称。指定域名的授权名字服务器的完全合指定域名的授权名字服务器的完全合格域名格域名FQDN。地址地址(A)资源记录指明主机的资源记录指明主机的IP地址。语法:地址。语法:IN A 指明主机名。指明主机名。定义主机的定义主机的IPv4地址。地址。IPv6的资源记录类型为的资源记录类型为AAAA。37.正规名(正规名(CNAME)资源记录提供为主机创建别名的能力。资源记录提供为主机创建别名的能力。通过使用别名,可以使提供多种服务的主机以不同的名字提通过使用别名,可以使提供多种服务的主机以不同的名字提供不同的服务。语法:供不同的服务。语法:IN CNAME :主机的别名。:主机的别名。:实际主机名。:实际主机名。邮件交换邮件交换(MX)资源记录描述该域的邮件服务器。一个域可资源记录描述该域的邮件服务器。一个域可以有以有多个多个MX资源记录,以便实现指定域的资源记录,以便实现指定域的email服务的服务的负载负载均衡和容错均衡和容错。语法:。语法:IN MX 是邮件交换服务器处理邮件的域名。是邮件交换服务器处理邮件的域名。是邮件交换服务器的代价值,代价值代表服务器的是邮件交换服务器的代价值,代价值代表服务器的优先级。代价值越小,优先级越高。相同的代价值:进行负优先级。代价值越小,优先级越高。相同的代价值:进行负载均衡。仅当低代价值的邮件交换服务器不可达时,邮件才载均衡。仅当低代价值的邮件交换服务器不可达时,邮件才被送往高代价的邮件交换服务器。被送往高代价的邮件交换服务器。字段代表字段代表邮件交换服务器的主机名。邮件交换服务器的主机名。返回返回38.9.7 DNS配置及数据库文件配置及数据库文件BIND(Berkeley Internet Name Daemon)软件是一软件是一个客户个客户/服务系统,服务系统,客户端客户端称为称为解析器解析器或或转换程序转换程序(resolver),解析器,解析器产生产生域名信息的查询请求,并将域名信息的查询请求,并将信息信息发送发送给服务器,服务器回答解析器的查询。给服务器,服务器回答解析器的查询。BIND的的服务器服务器是一个称为是一个称为named的守护进程。的守护进程。BIND DNS服务器的配置依赖于几个文本文件。可以服务器的配置依赖于几个文本文件。可以用文本编辑器直接生成这些文件或者是从基本模板修用文本编辑器直接生成这些文件或者是从基本模板修改而得到。改而得到。DNS必须配置的文件包括必须配置的文件包括DNS配置文件配置文件(又称引导文件)、(又称引导文件)、DNScache文件文件、DNS正向查询正向查询文件文件和和DNS反向查询文件反向查询文件。39.9.7.1 DNS配置文件配置文件BIND的的DNS服务器用配置文件服务器用配置文件named.conf来来包含如下的包含如下的信息信息:(1)其他)其他DNS文件所在的文件所在的路径路径。(2)包含因特网)包含因特网根服务器映像根服务器映像的的cache文件的文件的名字。名字。(3)DNS服务器授权的任何服务器授权的任何主域域名主域域名以及包含以及包含那个域的资源记录的那个域的资源记录的数据库文件名数据库文件名。(4)DNS服务器授权的任何服务器授权的任何次域域名次域域名、包含那、包含那个域的资源记录的个域的资源记录的数据库文件名数据库文件名以及对应的以及对应的主主名字服务器的名字服务器的IP地址地址。40.optionsdirectory“/etc/db”;zone“.”typehint;file“named.cache”;zone“”typemaster;file“named.hosts”;BIND-8.x配置文件配置文件named.conf的一个例子。的一个例子。zone“0.0.127.in-addr.arpa”typemaster;file“named.local”;zone“85.119.202.in-addr.arpa”typemaster;file“named.rev”;zone“”typeslave;file“slavenet.njust”;masters202.119.85.10;41.9.7.2 DNScache文件文件;lastupdate:Aug22,1997;relatedversionofrootzone:1997082200;formerlyNS.INTERNIC.NET3600000INNSA.ROOT-SERVERS.NET.A.ROOT-SERVERS.NET.3600000A198.41.0.4;formerlyNSl.ISI.EDU3600000NSB.ROOT-SERVERS.NET.B.ROOT-SERVERS.NET.3600000A128.9.0.1073600000NSC.ROOT-SERVERS.NET.C.ROOT-SERVERS.NET.3600000A192.33.4.123600000NSD.ROOT-SERVERS.NET.D.ROOT-SERVERS.NET.3600000A128.8.10.90DNScache文件包含一系列的根域名服务器。该文件文件包含一系列的根域名服务器。该文件应该随根域名服务器的不断更新而更新。以下是应该随根域名服务器的不断更新而更新。以下是DNScache文件文件(named.cache)的一个版本。的一个版本。42.3600000NSE.ROOT-SERVERS.NET.E.ROOT-SERVERS.NET.3600000A192.230.230.103600000NSF.ROOT-SERVERS.NET.F.ROOT-SERVERS.NET.3600000A192.5.5.2413600000NSG.ROOT-SERVERS.NET.G.ROOT-SERVERS.NET.3600000A192.112.36.43600000NSH.ROOT-SERVERS.NET.H.ROOT-SERVERS.NET.3600000A128.63.2.533600000NSI.ROOT-SERVERS.NET.I.ROOT-SERVERS.NET.3600000A192.36.148.173600000NSJ.ROOT-SERVERS.NET.J.ROOT-SERVERS.NET.3600000A198.41.0.103600000NSK.ROOT-SERVERS.NET.K.ROOT-SERVERS.NET.3600000A193.0.14.1293600000NSL.ROOT-SERVERS.NET.L.ROOT-SERVERS.NET.3600000A192.32.64.123600000NSM.ROOT-SERVERS.NET.M.ROOT-SERVERS.NET.3600000A202.12.27.33;EndofFile43.9.7.3 DNS正向查询文件正向查询文件正向查询是指根据主机名查询其正向查询是指根据主机名查询其IP地址和其他信息。相关的资地址和其他信息。相关的资源记录数据保存在源记录数据保存在DNS正向查询文件中。一个典型的正向查正向查询文件中。一个典型的正向查询区域文件询区域文件named.hosts的例子:的例子:IN SOA .(1998030501 ;serial 10800 ;refresh 3 hours 3600 ;retry 1 hour 604800 ;expire 7 days 86400 ;TTL 1 day )IN NS .IN NS .IN A .IN A 202.119.80.127msrv1 IN A 202.119.80.128www IN CNAME .ftp IN CNAME .mail IN CNAME .IN MX 10 .IN MX 20 .44.9.7.4 DNS反向查询文件反向查询文件DNS反向查询文件提供将一个反向查询文件提供将一个IP地址转换为主机名地址转换为主机名的功能。的功能。反向查询区域的区域文件是根据反向查询区域的区域文件是根据IP网络的网络地址网络的网
展开阅读全文