IPv6根DNS服务器研究中国互联网络信息中心技术部金键张鸿摘要:IPv6是下一代网络的基础协议。
随着IPv4地址的枯竭,人们开始考虑部署IPv6。
作为网络上最为重要的基础服务—DNS(Domain Name System),尤其是根DNS的性能和可用性,将是影响网络正常运行的关键因素之一。
本文主要介绍了在IPv6 根DNS方面CNNIC 所作的研究工作和研究成果,并简要论述了一些技术难点和关键问题,从而为CNNIC在IPv6的网络服务方面提供技术性探索。
关键词:IPv6 DNS 安全性能体系结构1引言1.1 关于DNSDNS服务是互联网的基础服务,HTTP、FTP、Email等服务都需要DNS 的支持。
DNS是树型结构,它的“根”是整个DNS的根本,也是互联网上最关键的服务之一。
在IPv4网络时代,由于历史原因,到目前为止,中国还没有建立DNS根服务器。
DNS根服务器的建立是保障国家信息网络安全的重要手段之一,如果能在我国的建立IPv6根服务器,将对国家信息安全和国家整体的安全战略产生不可估量的影响。
为了研究和解决建立IPv6DNS根服务器的关键技术,为中国申请和建立IPv6DNS根服务器提供技术保证,CNNIC在构建IPv6网络环境的基础上,深入研究了IPv6 DNS根服务器建立、运行、维护及安全、可靠性保障等方面的关键技术,使我国真正具备建立、运行和维护IPv6 DNS根服务器、保障服务器安全运行和高效响应DNS请求的能力,为中国申请并建立IPv6DNS根服务器创造条件。
1.2国内外根DNS情况DNS根服务器是DNS树型域名空间的“根”。
根服务器负责TLD的解析,对于域名解析起着极其关键的作用。
如果根服务器失效,整个DNS系统将瘫痪,互联网也将崩溃。
到现在为止,IPv4网络共有13台根服务器,名字是由 到。
英国、日本和瑞典各拥有1台,其余10台均在美国的“美国航天航空局”、军事和教育的站点。
这些根服务器分别由9家机构负责管理,主根服务器()由美国NSI公司(Network Solutions Incorporated of Herndon, Virginia, USA)管理,其余12个辅根服务器从主根服务器处获得根区域文件(TLD数据)。
根区域文件的修改是由IANA控制的。
这13个根服务器分布在4个国家的9个机构里,由ICANN的根顾问委员会(ICANN Root Server System Advisory Committee ,RSSAC)统一协调管理,其责任是给ICANN的Board提供关于根服务器的操作建议,提出运行根服务器的需求,包括硬件,操作系统,软件版本,网络连接等,并要对安全性提出建议。
而且,根顾问委员会根据系统的稳定性,健壮性、性能等提出对根服务器的数目,分布位置提出要求。
国内已经申请建立了F根服务器的镜像服务器,并正在计划建立其它的一些服务器镜像。
目前国内外没有实际投入商业使用的IPv6根DNS服务器,我们已知的IPv6试验性根服务器试验床只有由多个根服务器运行机构联合的OTDR (Operational Testing of new DNS RR types)项目。
该项目建立了IPv6的根服务器测试床(Root Server Testbed Network),并在测试床上进行了IPv6 DNS解析、DNSSec等测试。
本项目也加入了该测试床,解析中文域名“.中国”。
2主要研究内容和技术要点2.1IPv6网络建立和IPv6地址分配现在,CNNIC已经建立了小规模的IPv6试验网络,并与国内外多家骨干网通过隧道连接。
经过几个月的运行和试验,在2002年1月,连接6Bone,并成为6Bone的骨干节点pTLA,获得3ffe:8330::/28的IPv6试验地址块。
并于2002年10月,成为APNIC的TLA,得到2001:0CC0::/32的IPv6商用地址块。
我们的IPv6试验网络的规模也随之有一定程度的增加,并且建立了Web,FTP等基于IPv6的服务器。
另外,我们还和国内外十几家IPv6网络建立了对等互联的Peer 关系。
作为国内IP地址分配机构之一,在申请到IPv6地址后,我们对IPv6地址的分配方法和政策进行了调研,提出了国内IPv6地址分配的方案。
详见《IPv6地址分配政策调研报告》。
linux-ipv6DELL-16Tunn图1 IPv6根服务器试验网络2.2IPv6根DNS服务器试验床建立了IPv6试验网络之后,我们在网络上建立了IPv6根服务器测试床。
该测试床由多台IPv6根服务器组成,组成了1主多辅的结构。
共同解析DNS顶级域(TLD)。
网络和服务器如图1所示。
IPv6根服务器试验床的操作系统采用Redhat Linux,DNS解析软件采用了Bind9。
为满足IPv6根服务器的要求,对服务器自身的运行提出了以下要求。
z软件:符合IETF对DNS的要求(RFC 1035,RFC 2181)z服务器吞吐量:商用的根服务器响应能力是现在的最繁忙的服务器的最高峰值的3倍。
现在大约20,000次每秒。
在试验系统中采用PC机,性能指标有所降低,单台服务器约2000次每秒,但可以通过后面的高性能响应技术加以提高。
z连接性:要有冗余的网络连接,带宽要满足上面提出的DNS请求和回答的150%z服务的Zone:只解析root zone以及 区域z服务的查询:回答任何合法IP地址来的DNS查询z域传送:只回答其它根服务器的域传送要求2.3DNS安全性首先我们分析了对DNS服务的攻击和防范,然后探讨了如何保护根服务器系统的安全。
2.3.1 针对DNS的攻击及其防范目前DNS受到的网络攻击大致分为以下几类:缓存中毒、拒绝服务、不安全的动态更新、信息泄漏和DNS服务器权威数据库的入侵。
1)缓存中毒这种攻击是利用DNS的缓存机制使得某个名字服务器在缓存中存入错误的数据。
造成这种攻击的主要原因是当客户端向名字服务器A发出查询,而A的数据库内没有相应的资源记录,那么它就会转发给名字服务器B,B做出应答,把回答放在报文的回答区中,同时又会在附加区中填充一些和应答不太相关的数据,A接收这条应答报文,而且对附加区中的数据不做任何检查,直接放在缓存中。
这样使得攻击者可以通过在B中存放一些错误的数据,让A把这些错误的数据存放在缓存中,然后A又会利用它的缓存回答以后客户端或者服务器发来的查询,从而导致更多的服务器中毒。
可以看出造成缓存中毒的主要原因是没有对应答报文尤其是附加区中的数据进行完整性检查。
对缓存中毒攻击的防范可以使得DNS名字服务器进入被动模式,它再向外部的DNS发送查询请求,只会回答对自己的授权域的查询请求,不会缓存任何外部的数据,就不会遭受缓存中毒。
但是这样降低了DNS的域名解析速度和效率。
另外,还可以采用DNSSec机制进行防范。
DNS安全扩展的主要思想是通过公钥技术对DNS中的信息创建密码签名,为DNS内部的信息同时提供权限认证和信息完整性检查。
先由HASH算法从要发送DNS中的信息中得到一个定长的字符串,称为“信息摘要”,然后对这个“摘要”用私/公钥对中私有密钥进行加密,作为数字签名和DNS中的源信息以及“信息摘要”一起发送,接收方用私/公钥对中的公钥把接收到的“信息摘要”解密出来,再用HASH算法对收到的源消息计算出“信息摘要”,最后接收者对比新生成的“信息摘要”和随同信息传送过来的“信息摘要”,如果两者是相同的,就可以确认信息是完整、正确的。
DNSSEC扩展提供通过密码认证机制提供了三种新的服务:密钥分配、数据源认证、DNS事务和查询认证。
数据源认证是DNSSEC扩展的核心,它利用私钥对DNS数据进行数字签名,然后通过密码分配服务检索到该私钥对应的公钥来认证数据。
DNS事务和查询认证服务则提供了对DNS查询和DNS报文头的认证,这就保证了应答报文中的数据的确是对原始查询的应答,并且应答确实来自于被查询的服务器。
2)拒绝服务攻击(DoS)及防范攻击者向DNS服务器发送大量的查询请求,这些查询请求数据包中的源IP 地址为被攻击DNS服务器的IP地址,通过巨量的DNS请求造成DNS服务器性能响应下降,无法提供正常的域名解析。
对拒绝服务攻击的防范是个很大的挑战。
通过限制发送了非正常数量DNS 请求的IP地址进行DNS查询,可以减轻“拒绝服务”攻击,但是攻击者还可以利用IP欺骗伪装成其它主机,进行查询。
本项目研究了通过任播(Anycast)技术来构建分布式根DNS系统,以及服务器高性能响应技术对拒绝服务攻击进行防御的方法。
为了提高DNS 系统的服务性能,防御可能的攻击(DoS),在广域网络范围中采用分布式DNS是一种比较好的机制。
本项目研究了利用BGP协议在广域网范围内进行BGP-Anycast的方法。
通过在网络拓扑的多个点上部署DNS Server,然后利用BGP4+路由协议,使得网络上的用户能够就近访问路由上最近的服务器。
实现在广域网络上的负载均衡和就近服务。
本方法无需修改客户端和服务器软件,完全对客户透明。
通过分布式DNS,攻击者只能对最近的DNS服务器进行攻击,避免了整个根DNS系统的瘫痪。
BGP Anycast的原理如图所示:图2 BGP Anycast原理多个DNS Server分布在网络的不同位置,处于多个AS(自治系统)中,AS号可以相同(这种情况下,这个AS号是专门用于该分布式DNS系统的)。
这些DNS Server的IP地址是相同的,每个AS的边界路由器都要把该DNS Server所在的地址段对外宣布出去。
通过AS之间交换路由信息,网络上所有AS的边界路由器根据BGP路由协议,计算出到该DNS服务器所在地址段的最近路由,这个路由可能通向AS1,AS2或其它拥有服务器的AS。
这样就实现了就近访问最近的DNS Server.3)不安全的DNS动态更新及其防范最早设计 DNS 时所有运行 TCP/IP 的计算机都是手工配置的。
用特定的IP 地址手工配置一台计算机时,它的 A 资源记录和 PTR 资源记录也要用手工配置。
随着动态主机配置协议 (DHCP) 的出现,DHCP 客户计算机由 DHCP 服务器动态分配 IP 地址,使手工更新其A记录和 PTR记录变得很难管理。
因此在RFC 2136中提出了DNS 动态更新使得 DNS 客户端在 IP 地址或名称出现更改的任何时候都可利用 DNS 服务器来注册和动态更新其资源记录。
然而,尽管DNS动态更新协议规定了怎样的系统才允许动态更新一台主服务器,但是DNS仍然可能受到威胁,比如攻击者可以利用IP欺骗伪装成DNS服务器信任的主机对系统进行更新或者损害,并可以对主服务器进行各种动态更新攻击,比如删减、增加、修改资源记录。