1、IPv6下的 DNS系统的分析摘 要 本文阐述了IPV6中DNS域名系统的体系结构,DNS对IPV6地址层次性和即插即用特性的支持,以及IPv4到IPv6过渡期DNS的升级和转换,重点对IPv4和IPv6 环境下的DNS系统中可能存在的安全问题进行了分析和比对。关键词 IPV6;DNS系统;DNS安全1 引 言IPv6 是新一代的网络协议,与IPv4协议相比它拥有巨大的地址空间;从地址结构和地址分配上支持地址聚合,从而大大减少路由表条目;具有方便的网络即插即用功能;具有良好的移动性支持等等新特性。域名系统Domain Name System,简称 DNS的主要功能是通过域名和 IP 地址之间的
2、相互对应关系,来定位网络资源,即根据域名查询 IP 地址,反之亦然。它是 Internet 的根底架构,众多的网络效劳如 ,Ftp, Email 等等都是建立在 DNS 效劳之上的。IPv6 协议是取代 IPv4 的下一代网络协议,它具有许多新的特性与功能。域名系统DNS是 Internet的根底架构,IPv6 的新特性也需要 DNS 的支持。因此,DNS 势必要升级以满足 IPv6 的需求。本文从 IPv6的地址空间、IPv6 地址自动配置和即插即用、IPv6 的移动性、IPv4 到 IPv6 的过渡以及安全性等几方面对 IPv6 对 DNS的需求及其解决方法进行了分析和研究。2 IPv6域
3、名系统2. 1 IPv6域名系统的体系结构IPv6网络中的DNS与IPv4的DNS在体系结构上是一致的,都采用树型结构的域名空间。IPv4协议与IPv6协议的不同并不意味着需要单独两套IPv4 DNS体系和IPv6 DNS体系,相反的是,DNS的体系和域名空间必须是一致的,即IPv4和IPv6共同拥有统一的域名空间。在IPv4到IPv6的过渡阶段,域名可以同时对应于多个IPv4和IPv6的地址。以后随着IPv6网络的普及,IPv6地址将逐渐取代IPv4地址。2.2 DNS对IPv6地址层次性的支持在RFC1886中定义了一种新的DNS资源记录类型,AAAA(4A),它用于将完全合格的域名解析为
4、IPV6地址。4A记录DNS记录类型28。4A记录相当于IPV4名称解析中的主机地址(A)资源记录。资源记录类型以AAAA来命名是因为128位的IPV6地址的长度是32位的IPV4地址长度的4倍。在DNS数据库文件中的AAAA资源记录通常具有如下结构:Name IN AAAA Address这里的Name是完全合格的域名,Address是与名称相关的IPV6地址。如以下:Host1.microsoft IN AAAA FEC0:1:2AA:FF:FE3F:2A1CIPv6可聚合全局单播地址是在全局范围内使用的地址,必须进行层次划分及地址聚合。FP001:用于可聚合全局单播地址的格式前缀FP:F
5、ormat Prefix3比特;TLA ID:顶级聚合标识符Top-Level Aggregation Identifier;RES:为将来使用而保存;NLA ID:次级聚合标识符Next-Level Aggregation Identifier;SLA ID:站点级聚合标识符Site-Level Aggregation Identifier;INTERFACE ID:接口标识符。IPv6全局单播地址的分配方式如下:顶级地址聚合机构 TLA(即大的ISP或地址管理机构)获得大块地址,负责给次级地址聚合机构NLA(中小规模ISP)分配地址,NLA给站点级地址聚合机构SLA(子网)和网络用户分配地
6、址。IPv6地址的层次性在DNS中通过地址链技术可以得到很好的支持。下面从DNS正向地址解析和反向地址解析两方面进行分析。a. 正向解析IPv4的地址正向解析的资源记录是“A记录。IPv6地址的正向解析目前有两种资源记录,即,“AAAA和“A6”记录。其中, “AAAA较早提出,它是对“A记录的简单扩展,由于IP地址由32位扩展到128位,扩大了4倍,所以资源记录由“A扩大成4 个“A。“AAAA用来表示域名和IPv6地址的对应关系,并不支持地址的层次性。“A6”在RFC2874中提出,它是把一个IPv6地址与多个“A6”记录建立联系,每个“A6”记录都只包含了IPv6地址的一局部,结合后拼装
7、成一个完整的IPv6地址。“A6”记录支持一些“AAAA所不具备的新特性,如地址聚合,地址更改(Renumber)等。首先,“A6”记录方式根据TLA、NLA和SLA的分配层次把128位的IPv6的地址分解成为假设干级的地址前缀和地址后缀,构成了一个地址链。每个地址前缀和地址后缀都是地址链上的一环,一个完整的地址链就组成一个IPv6地址。这种思想符合IPv6地址的层次结构,从而支持地址聚合。其次,用户在改变ISP时,要随ISP改变而改变其拥有的IPv6地址。如果手工修改用户子网中所有在DNS中注册的地址,是一件非常繁琐的事情。而在用“A6”记录表示的地址链中,只要改变地址前缀对应的ISP名字即
8、可,可以大大减少DNS中资源记录的修改。并且在地址分配层次中越靠近底层,所需要改动的越少。b. 反向解析IPv6反向解析的记录和IPv4一样,是“PTR,但地址表示形式有两种。一种是用 “.分隔的半字节16进制数字格式(Nibble Format),低位地址在前,高位地址在后,域后缀是“IP6.INT.。另一种是二进制串(Bit-string)格式,以“,域后缀是“IP6.ARPA.。半字节16进制数字格式与“AAAA对应,是对IPv4的简单扩展。二进制串格式与“A6”记录对应,地址也象“A6”一样,可以分成多级地址链表示,每一级的授权用“DNAME记录。和 “A6”一样,二进制串格式也支持地
9、址层次特性。 总之,以地址链形式表示的IPv6地址体现了地址的层次性,支持地址聚合和地址更改。但是,由于一次完整的地址解析分成多个步骤进行,需要按照地址的分配层次关系到不同的DNS效劳器进行查询。所有的查询都成功才能得到完整的解析结果。这势必会延长解析时间,出错的时机也增加。因此,需要进一步改良DNS地址链功能,提高域名解析的速度才能为用户提供理想的效劳。2.3 IPv6中的即插即用与DNSIPv6协议支持地址自动配置,这是一种即插即用的机制,在没有任何人工干预的情况下,IPv6网络接口可以获得链路局部地址、站点局部地址和全局地址等,并且可以防止地址重复。IPv6支持无状态地址自动配置和有状态
10、地址自动配置两种方式。IPv6节点通过地址自动配置得到IPv6地址和网关地址。但是,地址自动配置中不包括DNS效劳器的自动配置。如何自动发现提供解析效劳的DNS效劳器也是一个需要解决的问题。正在研究的DNS效劳器的自动发现的解决方法可以分为无状态和有状态两类。在无状态的方式下,需要为子网内部的DNS效劳器配置站点范围内的任播地址。要进行自动配置的节点以该任播地址为目的地址发送效劳器发现请求,询问DNS效劳器地址、域名和搜索路径等DNS信息。这个请求到达距离最近的DNS效劳器,效劳器根据请求,答复DNS效劳器单播地址、域名和搜索路径等 DNS信息。节点根据效劳器的应答配置本机DNS信息,以后的D
11、NS请求就直接用单播地址发送给DNS效劳器。另外,也可以不用站点范围内的任播地址,而采用站点范围内的多播地址或链路多播地址等。还可以一直用站点范围内的任播地址作为DNS效劳器的地址,所有的DNS解析请求都发送给这个任播地址。距离最近的DNS效劳器负责解析这个请求,得到解析结果后把结果返回请求节点,而不像上述做法是把DNS 效劳器单播地址、域名和搜索路径等DNS信息告诉节点。从网络扩展性,安全性,实用性等多方面综合考虑,第一种采用站点范围内的任播地址作为DNS效劳器地址的方式相对较好。在有状态的DNS效劳器发现方式下,是通过类似DHCP这样的效劳器把DNS效劳器地址、域名和搜索路径等DNS信息告
12、诉节点。当然,这样做需要额外的效劳器。2.4 IPv6过渡阶段与DNS在IPv4到IPv6的过渡过程中,作为Internet根底架构的DNS效劳也要支持这种网络协议的升级和转换。IPv4和IPv6的DNS记录格式等方面有所不同,为了实现IPv4网络和IPv6网络之间的DNS查询和响应,可以采用应用层网关DNS-ALG结合NATPT的方法,在 IPv4和IPv6网络之间起到一个翻译的作用。例如,IPv4的地址域名映射使用“A记录,而IPv6使用“AAAA或“A6”记录。那么, IPv4的节点发送到IPv6网络的DNS查询请求是“A记录,DNS-ALG就把“A改写成“AAAA,并发送给IPv6网络
13、中的DNS效劳器。当效劳器的答复到达DNS-ALG时,DNS-ALG修改答复,把“AAAA改为“A,把IPv6地址改成DNS-ALG地址池中的IPv4转换地址,把这个IPv4转换地址和IPv6地址之间的映射关系通知NATPT,并把这个IPv4转换地址作为解析结果返回IPv4主机。IPv4主机就以这个IPv4转换地址作为目的地址与实际的IPv6主机通过NATPT通信。(如图1 所示)图 13 IPv6域名系统下的安全分析3.1 IPv4DNS的安全性问题某些 DNS 效劳器支持的反向查询iquery功能可使攻击者获得区域传输。所谓DNS效劳器反向查询,就是输入IP地址,可以查出域名。攻击者获得区
14、域传输后可以识别出注册到您的 DNS 效劳器的每台计算机,并且可能被攻击者用来更好的了解您的网络。甚至当您在 DNS 效劳器上禁用了区域传输时,iquery 功能仍旧可以允许区域传输发生。例如“网络钓鱼Phishing攻击、“DNS中毒DNS poisoning攻击等,这些攻击会控制DNS效劳器,将合法网站的IP地址篡改为假冒、恶意网站的IP地址等。3.2 IPv6 对DNS安全的增强(1)扫描子网难度的增加 IPv6的地址由32bit增加到128bit就能让现在攻击前常用的端口扫描难以继续,IPv6子网扫描所消耗时间比起IPv4子网扫描所消耗的时间让攻击者难以接受,这将大大减少扫描整个子网情
15、况的出现,或者使用变通的方法以缩小扫描范围,如:考虑管理员手工配置时多使用prefix:1递增的地址;考虑自动配置使用MAC地址作为最后48bit,而其中前24位是生产厂商的编码,因此扫描范围可以减小到224个主机:或者使用其它替代方法,而这些都将增大扫描的难度。(2)DNS安全扩展协议的引入 安全域名系统(域名系统安全扩展)DNSSEC是专门针对检测仿冒性攻击而设计的。DNSSEC目的是让终端用户的域名解析系统能够获知所解析的域名是否真正有效 ,从而防止用户在仿 冒的网站上将自己的重要信息泄露给攻击者,保证用户客户端收到的DNS记录的合法性。此外 ,DNS扩展与原有的DNS系统是向下兼容的,因此在实现上具有可行性 。但由于整个 Internet上的DNS系统已经是一个非常庞大的分布式的域名记录数据库 ,完全实现向DNSSEC的转换 ,需要投入大量时间和工作量 。此外 ,DNSSEC只是提供了对 DNS记录真实性的验证 ,只在有限的程度上为用户通信的安全提供了保证。要完全保证用户信息的安全 ,还需要在应用层面 、传输层面提供更加完整的解决方案。另一方面,DNSSEC在 DNS请求和响应中添加了数字签名 ,也增