tcp/ip 基本原理 第十一章 dns 域名解析

26
11-1 中中中中中中中中 中中中中 TCP/IP TCP/IP 基基基基 基基基基 基基 基基 DNS DNS 基基基基 基基基基

Upload: echo-jensen

Post on 02-Jan-2016

72 views

Category:

Documents


2 download

DESCRIPTION

TCP/IP 基本原理 第十一章 DNS 域名解析. 本章学习要求 : 掌握: DNS 域名系统、区、域、域名的概念 掌握:域名系统的两种解析方式 掌握:逆向解析原理 掌握:域名解析的原理 了解: IP v6 DNS 的工作原理. 11.1 两类名称转换方法. 人们认为,与其 1 强记 IP 地址,远不如起个好记的名称。网络管理员喜欢给计算机起些有意义的名称。比如, APPSERVR 。在 Internet 网上,人们给 Web 站点起个容易记忆的名称,如 www.myweb.com 。这样,我们可以记住我们网络上的主机名以及我们想访问的 Web 站点名。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: TCP/IP 基本原理 第十一章   DNS 域名解析

11-1中国科学技术大学 远程教育

TCP/IPTCP/IP 基本原理基本原理

第十一章 第十一章 DNSDNS 域名解析域名解析

Page 2: TCP/IP 基本原理 第十一章   DNS 域名解析

11-2中国科学技术大学 远程教育

本章学习要求:

掌握: DNS 域名系统、区、域、域名的概念掌握:域名系统的两种解析方式掌握:逆向解析原理掌握:域名解析的原理了解: IPv6 DNS 的工作原理

Page 3: TCP/IP 基本原理 第十一章   DNS 域名解析

11-3中国科学技术大学 远程教育

11.1 两类名称转换方法

人们认为,与其 1 强记 IP 地址,远不如起个好记的名称。网络管理员喜欢给计算机起些有意义的名称。比如, APPSERVR 。在 Internet网上,人们给 Web 站点起个容易记忆的名称,如 www.myweb.com 。这样,我们可以记住我们网络上的主机名以及我们想访问的 Web 站点名。

然而, TCP/IP 却不能用这些单词去寻找其他主机, TCP/IP 需要的是 IP 地址。于是,我们使用的名称必须先被转换为 IP 地址,然后, TCP/IP 才可以以使用。转换——或者翻译——名称为 IP 地址被称为名称转换。在把名称转换为 IP 地址之后,主机才能认出目的地在本地还是在远程,才能继续通信。这类似了你知道一个人名,想去找电话号码。 TCP/IP 选用下列两类名称转换方法之一:主机名转换方法或 NetBIOS 名称转换方法。主机名转换方法

把主机的普通名称转换为 IP 地址的最普通方法是主机名转换方法。大多数 TCP/IP 转换使用程序采用这类方法。主机名转换有 7 个方法完成对 IP 地址的转换。在报告有错之前, TCP/IP 将试用没一种方法。这 7 中主机名转换的方法是:

本主机:可用 HOSTNAME 命令获得本主机名称。主机 HOSTS 文件:位于 \SYSTEMROOT\SYSTEM32\DRIVERS\ETC目录下。

Page 4: TCP/IP 基本原理 第十一章   DNS 域名解析

11-4中国科学技术大学 远程教育

DNSNetBIOS 名称缓存器:位于本地主机 RAM 中,可用 nbtstat – c 来查看。WINS : Windows Internet Name Service ,是一个微软 NetBIOS 名称服务器。广播LMHOSTS 文件:与 HOSTS 文件位于相同的目录下。

使用主机名转换方法的普通使用工具和程序包括 Ping 、 FPT 和Web 浏览器 (HTTP) 。NetBIOS 名称转换

有些微软网络应用程序是为被称为 NetBIOS 的应用程序接口 (API) 而写的。程序员使用一个普通接口帮助应用程序更好地与网络上的其他计算机进行通信。这些程序被称为 NetBIOS 应用程序。

NetBIOS 应用程序使用 NetBIOS 名称,也称为计算机名称。在缺省情况下, NetBIOS 名主机名相同。 NetBIOS 有 6 中方法将 NetBIOS 名称转换为 IP 地址。如果这 6 种方法执行后仍不能转换,就向用户显示一个出错信息。 NetBIOS 的 6 种名称转换方法是:

NetBIOS 名称缓存器WINS

Page 5: TCP/IP 基本原理 第十一章   DNS 域名解析

11-5中国科学技术大学 远程教育

广播LMHOSTS 文件主机文件DNS

使用 NetBIOS 名称转换方法的应用程序有 Windows Explorer 、 NT Explorer 和微软的网络应用程序 ( 如 net use 和 net view 命令 ) 。NetBIOS 名称转换方法和主机名称转换方法的比较

在查找 TCP/IP 配置问题时,必须知道应用程序使用哪类名称转换。两种方法有类似的地方。但方法被使用的顺序不同,每种方法采取独特的路径将名称转变为 IP 地址。下表列出了两类转换使用方法的顺序。

每类转换使用发的顺序主机名转换 NetBIOS 名转换本主机 (HOSTNAME) NetBIOS 名缓存器HOSTS 文件 WINS

DNS 广播NetBIOS 名缓存器 LMHOSTS 文件WINS HOSTS 文件广播 DNS

LMHOSTS 文件

Page 6: TCP/IP 基本原理 第十一章   DNS 域名解析

11-6中国科学技术大学 远程教育

表中列出的某些方法只适用于试图转换的计算机正在使用微软的TCP/IP 客户机时。有可能客户机没有设置某种转换方法,如客户机没设置使用 WINS 作为转换方法,这个方法就被忽略。只有微软的客户机有 NetBIOS 名称。

总之,命名体系包括两种,一种是 NetBios 名称:包含 16个字符,前 15 个用户指定,第 16 个用作名称后缀。每个 NetBios名称必须唯一。另一种是 DNS 名称:两部分组成,前面是主机名,后面是域名。主机名最多可以有 255 个字符,可包含字母和数字符号、连字符和句点,可以对同一计算机分配多个主机名。

DNS 是当今 Internet 的基础架构,众多的网络服务(如 Http , Ftp , Email等等)都是建立在 DNS 体系基础之上的。权威人士指出: " 一旦你理解了 DNS ,你才真正懂得了 Internet" 。因此, DNS 的重要性是不言而喻的。

Page 7: TCP/IP 基本原理 第十一章   DNS 域名解析

11-7中国科学技术大学 远程教育

11.2 DNS 的引入

DNS( Domain Name System) 是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于 TCP/IP 网络,主要是用来命名计算机服务器, ( 如 netedu.ustc.edu.cn) 代替枯燥而难记的 IP 地址( 如“ 202.38.80.200”) 以定位相应的计算机和相应服务。因此,要想让名称能被网络所认识,需要在名称和 IP 地址之间有一位“翻译官”,能将相关的域名翻译成网络能接受的相应 IP 地址。 DNS 就起这样的作用。

11.2.1 域名系统域名系统是一个分布式数据库,它是本地负责控制整个分布式数据库

的部分段。每一段中的数据通过客户 / 服务器模式在整个网络上均可存取 , 通过采用复制技术和缓存技术使得整个数据库可靠的同时,又拥有良好的性能。

域名服务器包含数据库的部分段的信息 ,并可提供给被称之为解析器的客户来访问。 DNS 的数据库结构形成一个倒立的树状结构 ,根的名字用空字符串来表示,但在文本中用“ .” 来书写。树的每一个节点都表示整个分布式数据库中的一个区 (zone) ,每个区可再进一步划分成域 (domain) ,每个域都有一个标识 (LABEL) ,标明了它与父域的关系。域有一个域名 (domain name) ,给出它在整个分布式数据库中的位置。在 DNS 中,域名全称是从该域到根的标识序列,以“ .” 分隔这些标识。该标识最多可包含 63 个字符。树中每一节点的完整域名为从该节点到根之间路径上的标识序列。

Page 8: TCP/IP 基本原理 第十一章   DNS 域名解析

11-8中国科学技术大学 远程教育

如果根域在节点的域名中出现,该名字看起来就象以点结尾 (实际上是以点和空标签作结尾 ) 。这些以点结尾的域名被称之为绝对域名 (Absoulte Domain Name) ,不以点结尾的域名被称之为相对域名。

域 (Domains) 即为树状域名空间中的一棵子树,域的域名同该子树根节点的域名一样,也就是说 , 域的名字就是该域中最高层节点的名字。举例来说 ,zhuhai.gd.cn 域的顶端就是名为 zhuhai.gd.cn 的节点。

在 DNS 中,每个域分别由不同的组织进行管理。每个组织都可以将它的域再分成一定数量的子域并将这些子域委托给其他组织进行管理。域既能包括主机又能包括其他域 (它的子域 ) 。域名被用做 DNS 数据库中的索引 .子域中任何域名被认为是域的一部分。

事实上,主机即为域,域名仅是 DNS 数据库中的索引,“主机”可由指向相关主机信息的域名来索引,域包含所有其域名在该域的主机。

在域名树中,叶节点的域通常代表主机,它们的域名可指向网络地址,硬件信息和邮件路由信息。在树内的节点,其域名既可命名一台主机,也可指向有关该域的子孙或子域的结构信息。在域名树中的内部域名并不受唯一性限制 ,它们既可表示它们所对应的域 ,又可代表网络中某台特定的主机 .例如 ,sun.com既是 sun 的域 ,又是在 sun 和 internet间转发信件的邮件服务器的域名。

Page 9: TCP/IP 基本原理 第十一章   DNS 域名解析

11-9中国科学技术大学 远程教育

Internet域的部分示意图

Page 10: TCP/IP 基本原理 第十一章   DNS 域名解析

11-10中国科学技术大学 远程教育

11.2.2 域名服务器

存储有关域名空间信息的程序被称为域名服务器 (name server) 。通常域名服务器拥有部分域名空间 ( 称之为区 zone) 的完整信息。域名服务器可以拥有多个区的授权。区与域的关系

区包含了域中除了代理给别处的子域外所含有的所有域名和数据。如果域的子域没有被代理出去 ,则该区包含该子域名和子域中的数据。

DNS 定义了两类域名服务器: primary Master 和 secondary Master 。 PM 域名服务器从它所运行的主机上的文件获得它所负责的区的数据, SM 域名服务器则是从其它的具有该区授权的域名服务器上获得它的区的数据。 SM 域名服务器会定期查询 PM 域名服务器以保证区数据为最新版本。

一般情况下,最好设立一台 PM 域名服务器和若干台 SM域名服务器,这样可以分担负载 . 以及确保区中所有主机都有比较靠近的域名服务器,方便访问。

Page 11: TCP/IP 基本原理 第十一章   DNS 域名解析

11-11中国科学技术大学 远程教育

11.2.3 解析器

运行在主机上并需要域名空间信息的重新需要解析器 (Resolver) ,在 bind 中解析器仅仅是一组库例程,并编译进象 telnet 和 ftp 这样的程序中。它们并非独立的进程。解析器所做的工作是,汇集查询,发送查询并等待应答 ,未得到应答时重发查询。

11.2.4 地址到域名的映射在域名空间的数据是通过名字来进行索引的,找到一个给定域名

的地址相对容易。但是要找到映射给一定地址的域名就要在树上的每一个域名空间作穷尽搜索。如果这样的话,效率将相当低。为了解决这个问题,创建一个以地址为索引的域名空间,这部分名字空间被称为 in-addr.arpa域。

in-addr.arpa 域中的节点以 Doted-octet( 将 32bitIP 地址表示为由“ .” 分隔开的四个 8bit 的十进制形式的方法 ) 形式表示 IP 地址。 IP 地址在名字空间以相反的方向表示,因为名字从叶读到根。例如, www.zhuhai.gd.cn 的 IP 地址为 202.105.177.100 ,则相应的 in-addr.arpa子域为 177.105.202.in-addr.arpa ,使 IP 地址中的第一个字节出现在树的最高层使的管理员有能力沿着网络联接将 in-addr.arpa 域代理出去。例如 177.105.202.in-addr.arpa 可以被代理给网络 177.105.202 的管理员。

Page 12: TCP/IP 基本原理 第十一章   DNS 域名解析

11-12中国科学技术大学 远程教育

逆向解析实质上是将 IP 地址表达成一个域名 , 这样逆向解析的很大部分 ( 包括服务器通信端 , 算法甚至软件 ) 就可以纳入正向解析之中。即用正向解析的方法解决逆向解析的问题。

例如 ,  在 SUN 的 Solaris 2.4 版本中专门有一个逆向映射的文件 , 即 : host.rev, 用于逆向解。 其内容格式如下 :

120.128.in-addr.arpa  IN SOA integv.integralis.edu 

99.16 IN PTR integv.integralis.edu 

98.16 IN PTR issws.integralis.edu

......... ...... ....... ……...

11.2.5 缓存与生存期名字服务器在处理递归查询时,可能要进行多次查询才能得到信息 , 在这过程中,名字服务器可以获得很多有关域名空间的信息,名字服务器将所以这些信息都缓存起来以加速以后的查询 .除了加速查询外,缓存还使得我们不必再次查询根名字服务器 , 这样可使得我们不必过分依赖根名字服务器而大大减轻根名字服务器的负载。

生存期 (TTL) 为所容许的名字服务器对数据缓存的时间长度,一旦生存期到了,名字服务器必须丢弃缓存数据并从授权的名字服务器中重新获取新的数据 . 这样可以确保域数据在整个网络上的一致性。

Page 13: TCP/IP 基本原理 第十一章   DNS 域名解析

11-13中国科学技术大学 远程教育

11.3 DNS 服务的原理 11.3.1 工作过程

Internet 的域是一个树型结构,根接点由一个“ .” 表示,下面位高层域(例如: cn, jp, com, net, org....),在往下有第二层、第三层或更多的层次,例如 www.qysl.net 中 net 为高层, qysl 为第二层,就是主机名了。

DNS 是一个巨大的分布式数据库。它是通过名字服务器( name server)提供一个指定的域的信息来实现的。在每个区,至少有两个以上的保存其所在区的所有主机授权信息的名字服务器。所以为了获得 www.qysl.net 中 www 这台机器的 IP 地址,就必须与 qysl.net 区的名字服务器联系。 DNS 域名采用客户机 / 服务器模式进行解析。在 Windows 系列操作系统中都集成了 DNS 客户机软件。下面以 Web 访问为例介绍 DNS 的域名解析过程,如下图所示。

Page 14: TCP/IP 基本原理 第十一章   DNS 域名解析

11-14中国科学技术大学 远程教育

一个完整的域名解析过程如下。( 1)在 Web 浏览器中输入地址 http://www.qysl.net(为了说明原理而虚构的域名), Web 浏览器将域名解析请求提交给自己计算机上 DNS 客户机软件。( 2) DNS 客户机软件向指定 IP 地址的 DNS 服务器发出域名解析请求:“请问 www.qysl.net代表的 Web 服务器的 IP 地址是什么”。( 3) DNS 服务器在自己建立的域名数据库中查找是否有与“ www.qysl.net” 相匹配的记录。域名数据库存储的是 DNS 服务器自身能够解析的数据。( 4)域名数据库将查询结果反馈给 DNS 服务器。如果在域名数据库中存在匹配的记录“ www.qysl.net 对应的是 IP 地址为 192.168.1.2 的 Web 服务器”,则转入第( 9)步。( 5)如果在域名数据库中不存在匹配的记录, DNS 服务器将访问域名缓存。域名缓存存储的是从其他 DNS 服务器转发的域名解析结果。( 6)域名缓存将查询结果反馈给 DNS 服务器,若域名缓存中查询到指定的记录,则转入第( 9)步。( 7)若在域名缓存中也没有查询到指定的记录,则按照 DNS 服务器的设置转发域名解析请求到其他 DNS 服务器上进行查找。( 8)其他 DNS 服务器将查询结果反馈给 DNS 服务器。( 9) DNS 服务器将查询结果反馈回 DNS 客户机。( 10) DNS 客户机将域名解析结果反馈给浏览器。若反馈成功, Web 浏览器就按照指定的 IP

Page 15: TCP/IP 基本原理 第十一章   DNS 域名解析

11-15中国科学技术大学 远程教育

客户机由网络应用软件和 DNS 客户机软件构成。 DNS 服务器上有两部分数据,一部分是自己建立和维护的域名数据库,存储的是由本机解析的域名;一部分是为了节省转发域名解析请求的开销而设立的域名缓存,存储从其他 DNS 服务器解析的历史记录。

11.3.2 两种工作模式  有两种询问原理,分为 Recursive 和 Interactive 两种。前者是由 DNS代理去问,问的方法是用 Interactive 方式,后者是由本机直接做 Interactive 式的询问。由上例可以看出,我们一般查询名称的过程中,实际上这两种查询模式都是交互存在着的。递归式 (Recursive) : DNS 客户端向 DNS Server 的查询模式,这种方式是将要查询的封包送出去问,就等待正确名称的正确响应,这种方式只处理响应回来的封包是否是正确响应或是说是找不到该名称的错误讯息。交谈式 (Interactive) : DNS Server间的查询模式,由 Client端或是 DNS Server 上所发出去问,这种方式送封包出去问,所响应回来的资料不一定是最后正确的名称位置,但也不是如上所说的响应回来是错误讯息,他响应回来告诉你最接近的 IP 位置,然后再到此最接近的 IP 上去寻找所要解析的名称,反复动作直到找到正确位置。

Page 16: TCP/IP 基本原理 第十一章   DNS 域名解析

11-16中国科学技术大学 远程教育

11.4 DNS 资源记录

每个 DNS 数据库都由资源记录构成。一般来说,资源记录包含与特定主机有关的信息,如 IP 地址、主机的所有者或者提供服务的类型。

常用的 DNS资源记录类型资源记录类型 说明 解释

SOA 起始授权机构 此记录指定区域的起点。它所包含的信息有区域名、区域管理员电子邮件地址,以及指示辅 DNS 服务器如何更新区域数据文件的设置等。

A 地址 此记录列出特定主机名的 IP 地址。这是名称解析的重要记录。

CNAME 标准名称 此记录指定标准主机名的别名。MX 邮件交换器 此记录列出了负责接收发到域中的电子邮件的主机。NS 名称服务器 此记录指定负责给定区域的名称服务器。PTR 指针记录 帮助进行 IP 地址到主机名转换的记录。

Page 17: TCP/IP 基本原理 第十一章   DNS 域名解析

11-17中国科学技术大学 远程教育

11.5 IPv6 的域名系统

IPv6 具有很多优点。首先,它提供了巨大的地址空间,其次, IPv6 的地址结构和地址分配采用严格的层次结构,以便于进行地址聚合,从而大大减小了路由器中路由表的规模。再次, IPv6协议支持网络节点的地址自动配置,可以实现即插即用功能。而且,IPv6协议对主机移动性有较好的支持,适合于越来越多的互联网移动应用。另外, IPv6协议在安全性、对多媒体流的支持性等方面都具有超过 IPv4 的优势。

IPv6 网络中的 DNS非常重要,一些 IPv6 的新特性和 DNS的支持密不可分。本文从 IPv6 DNS 的体系结构、 IPv6 的地址解析、IPv6 地址自动配置和即插即用、 IPv4到 IPv6 的过渡等几方面对 IPv6 时代的 DNS 进行了分析和研究。

IPv6 网络中的 DNS 与 IPv4 的 DNS 在体系结构上是一致的,都是采用树型结构的域名空间。 IPv4协议与 IPv6协议的不同并不意味着需要单独两套 IPv4 DNS 体系和 IPv6 DNS 体系,相反的是,DNS 的体系和域名空间必须是一致的。即, IPv4 和 IPv6共同拥有统一的域名空间。在 IPv4到 IPv6 的过渡阶段,域名可以同时对应于多个 IPv4 和 IPv6 的地址。以后随着 IPv6 网络的普及, IPv6 地址将逐渐取代 IPv4 地址。

Page 18: TCP/IP 基本原理 第十一章   DNS 域名解析

11-18中国科学技术大学 远程教育

11.5.1 DNS 对 IPv6 地址层次性的支持

IPv6 可聚合全局单播地址是在全局范围内使用的地址,必须进行层次划分及地址聚合。它的层次结构如下表所示:

其中:FP( 001):用于可聚合全局单播地址的格式前缀( FP:Format Prefix)( 3 比特);TLA ID :顶级聚合标识符( Top-Level Aggregation Identifier);RES :为将来使用而保留;NLA ID :次级聚合标识符( Next-Level Aggregation Identifier);SLA ID :站点级聚合标识符( Site-Level Aggregation Identifier);INTERFACE ID : 接口标识符;

3 13 8 24 16 64 比特

FP TLAID RES NLAID SLAID Interface ID

Page 19: TCP/IP 基本原理 第十一章   DNS 域名解析

11-19中国科学技术大学 远程教育

IPv6全局单播地址的分配方式如下:顶级地址聚合机构 TLA(即大的 ISP 或地址管理机构)获得大块地址,负责给次级地址聚合机构 NLA(中小规模 ISP)分配地址, NLA 给站点级地址聚合机构 SLA(子网)和网络用户分配地址。 IPv6 地址的层次性在 DNS 中通过地址链技术可以得到很好的支持。下面从 DNS 正向地址解析和反向地址解析两方面进行分析。

11.5.2 正向解析IPv4 的地址正向解析的资源记录是“ A” 记录。 IPv6 地址的正向解

析目前有两种资源记录,即,“ AAAA” 和“ A6” 记录。其中,“ AAAA” 较早提出 [4] ,它是对“ A” 记录的简单扩展,由于 IP 地址由 32 位扩展到 128位,扩大了 4倍,所以资源记录由“ A”扩大成 4 个“ A” 。“ AAAA” 用来表示域名和 IPv6 地址的对应关系,并不支持地址的层次性。

“ A6” 在 RFC2874[5] 中提出,它是把一个 IPv6 地址与多个“ A6”记录建立联系,每个“ A6” 记录都只包含了 IPv6 地址的一部分,结合后拼装成一个完整的 IPv6 地址。“ A6” 记录支持一些“ AAAA”所不具备的新特性,如地址聚合,地址更改( Renumber)等。

首先,“ A6” 记录方式根据 TLA 、 NLA 和 SLA 的分配层次把 128位的 IPv6 的地址分解成为若干级的地址前缀和地址后缀,构成了一个地址链。每个地址前缀和地址后缀都是地址链上的一环,一个完整的地址链就组成一个 IPv6 地址。这种思想符合 IPv6 地址的层次结构,从而支持地址聚合。

Page 20: TCP/IP 基本原理 第十一章   DNS 域名解析

11-20中国科学技术大学 远程教育

其次,用户在改变 ISP 时,要随 ISP改变而改变其拥有的 IPv6 地址。如果手工修改用户子网中所有在 DNS 中注册的地址,是一件非常繁琐的事情。而在用“ A6” 记录表示的地址链中,只要改变地址前缀对应的 ISP 名字即可,可以大大减少 DNS 中资源记录的修改。并且在地址分配层次中越靠近底层,所需要改动的越少。

在下例中,节点 host.example.com 地址由 example.com( SLA)分配, example.com 的地址由 example1.net( NLA)分配,而 example1.net的地址则是由 ISP- A.net( TLA)分配。下面的多条记录就组成了一个完整的 IPv6 DNS 地址链。如果 example1.net改变 ISP ,需要改变其 DNS 中的ISP 地址前缀,而它的网络用户 example.com则无需改变 DNS 设置。例 1 : IPv6DNS 地址链:$ORIGIN example.com. host IN A6 64 0:0:0:0:42::1 company.example1.net.$ORIGIN example1.net.company IN A6 32 0:0:201:1860:: SUBSCRIBER- X.ISP- A.net$ORIGIN ISP- A.net.SUBSCRIBER- X IN A6 0 3ffe:8050::

例 2 :把例 1 中的地址翻译成 "AAAA" 记录表示的形式:$ORIGIN example.com.host IN AAAA 3ffe:8050:201:1860:0:0:0:0:42::1

Page 21: TCP/IP 基本原理 第十一章   DNS 域名解析

11-21中国科学技术大学 远程教育

11.5.3 反向解析

IPv6反向解析的记录和 IPv4 一样,是“ PTR” ,但地址表示形式有两种。一种是用 “ .” 分隔的半字节 16 进制数字格式( Nibble Format),低位地址在前,高位地址在后,域后缀是“ IP6.INT.” 。另一种是二进制串( Bit-string)格式,以“ \[”开头, 16进制地址(无分隔符,高位在前,低位在后)居中,地址后加“ ]” ,域后缀是“ IP6.ARPA.” 。半字节 16 进制数字格式与“ AAAA” 对应,是对 IPv4 的简单扩展。二进制串格式与“ A6” 记录对应,地址也象“ A6” 一样,可以分成多级地址链表示,每一级的授权用“ DNAME” 记录。和“ A6” 一样,二进制串格式也支持地址层次特性。

总之,以地址链形式表示的 IPv6 地址体现了地址的层次性,支持地址聚合和地址更改。但是,由于一次完整的地址解析分成多个步骤进行,需要按照地址的分配层次关系到不同的 DNS 服务器进行查询。所有的查询都成功才能得到完整的解析结果。这势必会延长解析时间,出错的机会也增加。因此,需要进一步改进 DNS地址链功能,提高域名解析的速度才能为用户提供理想的服务。

Page 22: TCP/IP 基本原理 第十一章   DNS 域名解析

11-22中国科学技术大学 远程教育

11.5.4 IPv6 中的即插即用与 DNS

IPv6协议支持地址自动配置 [6][7] ,这是一种即插即用的机制,在没有任何人工干预的情况下, IPv6 网络接口可以获得链路局部地址、站点局部地址和全局地址等,并且可以防止地址重复。 IPv6支持无状态地址自动配置和有状态地址自动配置两种方式。

在无状态地址自动配置方式下,需要配置地址的网络接口先使用邻居发现机制获得一个链路本地地址。网络接口得到这个链路本地地址之后,再接受路由器宣告的地址前缀,结合接口标识得到一个全局地址。而有状态地址自动配置的方式,如 DHCP(动态主机配置协议 ) ,需要一个 DHCP 服务器,通过客户机 / 服务器模式从 DHCP 服务器处得到地址配置的信息。

IPv6节点通过地址自动配置得到 IPv6 地址和网关地址。但是,地址自动配置中不包括 DNS 服务器的自动配置。如何自动发现提供解析服务的 DNS 服务器也是一个需要解决的问题。正在研究的 DNS 服务器的自动发现的解决方法可以分为无状态和有状态两类。

在无状态的方式下,需要为子网内部的 DNS 服务器配置站点范围内的任播地址。要进行自动配置的节点以该任播地址为目的地址发送服务器发现请求,询问 DNS 服务器地址、域名和搜索路径等 DNS 信息。这个请求到达距离最近的 DNS 服务器,服务器根据请求,回答 DNS 服务器单播地址、域名和搜索路径等 DNS 信息。节点根据服务器的应答配置本机 DNS 信息,以后的 DNS请求就直接用单播地址发送给 DNS 服务器。

Page 23: TCP/IP 基本原理 第十一章   DNS 域名解析

11-23中国科学技术大学 远程教育

另外,也可以不用站点范围内的任播地址,而采用站点范围内的多播地址或链路多播地址等。还可以一直用站点范围内的任播地址作为 DNS 服务器的地址,所有的 DNS 解析请求都发送给这个任播地址。距离最近的 DNS 服务器负责解析这个请求,得到解析结果后把结果返回请求节点,而不像上述做法是把 DNS 服务器单播地址、域名和搜索路径等 DNS 信息告诉节点。从网络扩展性,安全性,实用性等多方面综合考虑,第一种采用站点范围内的任播地址作为 DNS 服务器地址的方式相对较好。

在有状态的 DNS 服务器发现方式下,是通过类似 DHCP这样的服务器把 DNS 服务器地址、域名和搜索路径等 DNS 信息告诉节点。当然,这样做需要额外的服务器。

Page 24: TCP/IP 基本原理 第十一章   DNS 域名解析

11-24中国科学技术大学 远程教育

11.5.5 IPv6过渡阶段与 DNS 

在 IPv4到 IPv6 的过渡过程中,作为 Internet 基础架构的DNS 服务也要支持这种网络协议的升级和转换。 IPv4 和 IPv6 的 DNS 记录格式等方面有所不同,为了实现 IPv4 网络和 IPv6 网络之间的 DNS 查询和响应,可以采用应用层网关 DNS-ALG结合 NAT- PT 的方法 [9] ,在 IPv4 和 IPv6 网络之间起到一个翻译的作用。例如, IPv4 的地址域名映射使用“ A” 记录,而 IPv6 使用“ AAAA” 或“ A6” 记录。那么, IPv4 的节点发送到 IPv6 网络的 DNS 查询请求是“ A” 记录, DNS-ALG 就把“ A”改写成“ AAAA” ,并发送给 IPv6 网络中的 DNS 服务器。当服务器的回答到达 DNS-ALG 时, DNS-ALG修改回答,把“ AAAA”改为“ A” ,把 IPv6 地址改成 DNS-ALG 地址池中的 IPv4 转换地址,把这个 IPv4 转换地址和 IPv6 地址之间的映射关系通知 NAT- PT ,并把这个 IPv4 转换地址作为解析结果返回 IPv4 主机。 IPv4 主机就以这个 IPv4 转换地址作为目的地址与实际的 IPv6 主机通过 NAT- PT 通信。示意图如下页示。

Page 25: TCP/IP 基本原理 第十一章   DNS 域名解析

11-25中国科学技术大学 远程教育

对于采用双协议栈方式的过渡方法,在 DNS 服务器中同时存在“ A”记录和"AAAA"(或 "A6")记录。由于节点既可以处理 IPv4协议,也可以处理 IPv6协议,因此无需类似 DNS ALG的转换设备。无论 DNS 服务器回答“ A”记录还是"AAAA"记录,都可以进行通信。

Page 26: TCP/IP 基本原理 第十一章   DNS 域名解析

11-26中国科学技术大学 远程教育

本章习题

参见教师网页: http://staff.ustc.edu.cn/~leeyi