IPv6的新特性及其过渡策略
作者:《中国通信标准研究组》 来源:天极网 添加时间:2006-5-21 17:20:11因特网经过近20年的发展,原有的IPv4协议面临着一些难以解决的问题,比如地址空间耗尽、路由表爆炸等。同时IP应用的扩展对IP也提出了新的要求,比如因特网上多媒体信息传播、移动用户的网络接入等,都为IP的研究开辟了新的空间。因特网工程特别任务组(IETF)新开发出来的IPv6协议,不但解决了旧版本的问题,而且还给IP带来了一些新特性,使得IP协议在地址管理、移动性、安全及多媒体支持方面都有巨大的灵活性。
1 IPv6的新特性
1.1 全新的地址管理方案
——IPv4中,地址是用户拥有的。也就是说,一旦用户从某机构处申请到一段地址空间,他就永远使用该地址空间,而不管他是从哪个因特网服务提供者(ISP)处获得服务。这种方式的缺点是ISP必须在路由表中为每个用户的网络号维护一条表项。随着用户数的增加,会出现大量无法会聚的特殊路由,即使无类别域间路由(CIDR)也不能处理这样的路由表爆炸现象。
——IPv6改变了地址的分配方式,从用户拥有变成了ISP拥有。全局网络号由因特网地址分配机构(IANA)分配给ISP,用户的全局网络地址是ISP地址空间的子集。每当用户改变ISP时,全局网络地址必须更新为新ISP提供的地址。这样ISP能有效地控制路由信息,避免路由爆炸现象的出现。
——ISP地址拥有模式意味着用户必须时常改动他们的主机地址,这对大型网络的管理是很不利的。另一方面,运行IPv6的主机能同时为每个端口配置多个IP地址。这些地址包括全局地址,站点局部地址,链路局部地址等,它们分别用于不同的传播范围。由用户管理多个地址是相当烦琐的,所以IPv6提供了地址自动配置机制,使主机能自动生成地址,避免了手工配置的低效率,实现了主机的即插即用功能。路由器在地址自动配置中发挥巨大的作用,它定时在子网里多播路由器广告报文,报文中包括主机能使用的地址前缀的所有信息,如前缀值,生命期等;主机收到该报文后,按照一定规则在本地生成主机标识符,把它和地址前缀连接,从而形成主机地址。为了保证主机地址的唯一性,IPv6定义了重复地址检测过程,每当生成地址时,必须反复执行生成和检测过程,直到得到唯一的地址。
——地址管理方案中还包括地址解析协议(ABP)和可达性检测。IPv4中ABP是独立的协议,负责IP地址到链路层地址的转换,对不同的链路层协议要定义不同的ARP协议。可达性检测的目的是确认相应IP地址代表的主机或路由器是否还能收发报文,IPv4没有统一的解决方案。IPv6定义了邻机发现协议(NDP),把ARP纳入NDP并运行于因特网控制报文协议(ICMP)上,使ARP更具有一般性,包括更多的内容,而且不用为每种链路层协议定义一种ARP。NDP中还定义了可达性检测过程,保证IP报文不会发送给“黑洞”。
1.2 报文的安全传送
——因特网应用的普及使安全问题日益紧迫,在报文传输过程中修改、窃取报文,对报文中数据的有效性构成了威胁。IPv4对报文安全问题进行了专门的讨论,并给出了解决办法,以IP选项的方式使用。IPv6继承了IPv4的技术,定义了验证报文头(Authentication Head,AH)和安全报文头(Encrypted Security Payload,ESP),不但有效解决了安全问题,而且使安全方案成为IPv6的有机组成部分。
——验证报文头的作用在于使接受方确认:接收到的报文来自正确的源。IPv6建议的验证加密算法是MD5,计算后的验证数据连同报文的序列号被放到AH中,序列号的用处是防止重发攻击。安全报文头的作用在于对报文内容加密,防止报文在传输过程中被剽窃。目前的标准加密算法是DES-CBC,ESP中带有初始化向量,算法参数以及报文序列号,接收方根据ESP的内容恢复报文内容。两种报文头可以根据应用的需要单独使用,也可以结合使用,结合使用时,ESP应该在AH的保护下。
——完成加密算法必须有密钥分配协议作为支持。IPv6定义了ISAKMP-OAKLEY协议,其基础是Diff-Hellman算法。规定首先进行证书交换,用以确认对方的地址真伪,然后进行带验证过程的密钥交换,防止密钥交换被中介拦截。协议中也定义了相应的手段允许协商加密参数,以及AH和ESP的用法。
1.3 移动性主机
——现有因特网的连接范围和对象有了极大的扩展,特别是移动性主机所占比例的逐步增加,给IP协议提出了新的要求。IPv4对移动IP提供支持,一般是通过本地代理(home agent)和远地代理(foreign agent)的相互作用实现的。移动主机到达新的子网后,寻找远地代理,并通过远地代理向本地代理进行位置更新。本地代理解析移动主机的地址,把其他主机发给移动主机的报文通过本地代理和远地代理间的隧道传送给移动主机。这种解决方案在处理迂回路由和小区移动时存在困难。迂回路由的产生是因为对端主机不知道移动主机的现有IP地址;小区中移动的主机会产生频繁的注册更新。
——IPv6对移动性提供了内在的支持。首先,路由器在多播路由器广告报文时,指示了它是否能担任本地代理。同一个子网内允许多个本地代理存在,移动主机可以向任意一个本地代理注册。本地代理中保存有移动主机固有地址和它的转交地址(care-of address)的对照表,收到发送给移动主机的报文后,根据对照表把报文转发给移动主机。其次,每当移动主机收到其它主机发来的报文后,在响应报文中以现有地址作为源地址,并要附带上移动主机的固有地址。其它主机的后续报文以移动主机的现有地址为目的地址,但是要附带源路由选择头,报头内容为移动主机的固有地址。使用这种机制的目的是保证移动主机在移动过程中也不会丢失报文。最后,IPv6中定义了重定向过程。当移动主机在小区间切换时,移动主机重新登记成功后,基站应该向原来的基站发重定向包文,使切换过程中路由有偏差的报丈重新找到移动主机。
1.4 对流的支持
——在多媒体应用日益广泛的今天,因特网提供对多媒体的支持将有重大意义。多媒体的一般特点是带宽要求高、持续时间长。为此引入流的概念简化因特网对多媒体的处理。流是特定源和目的地间的报文序列,源要求中间路由器对这些报文进行特殊处理。一般来说,路由器收到流中报文后,根据流标识符查找路由器中保存的流上下文,对流中的报文进行同样的处理,加快了报文处理速度。
——IPv4补充了对流的处理,例如使用资源预留协议(RSVP)预留资源进行因特网上的音频,视像传播。但是IPv4对流的处理有天生的缺陷,因为在IPv4定义之初就没有流的概念。IPv4定义的流包括源和目的IP地址、传输控制协议(TCP)或用户数据报协议(UDP)的端口号,路由器为了判断一个报文是否属于一个流,不但要看IP头中的IP地址,还要分析ICP头或UDP头中的端口号,这不但违背了网络分层的原则,而且加大了路由器的处理工作量。
——IPv6在设计之初就考虑了对流的支持。IP头的格式里,有专门的20bit流标签域。主机发送报文时,如果需要把报文放到流中传输,只需在流标签里填入相应的流编号。否则在流标签里填零就作为一般的报文处理。路由器收到流的第一个报文时,以流编号为索引建立处理上下文,流中的后续报文都按上下文处理。
——IPv6同时定义了流的优先级,分别支持不同的业务需求。但是从目前的研究发现,优先级的使用会导致拥塞。要保持网络的可用性,一方面流应该根据网络状态进行自适应调节,方法是采用自适应信源编码、完善冗P的功能;另一方面,路由器要对流实施监控,采用公平队列之类的技术,维护网络资源使用的公平性。对多媒体的支持是一个复杂的技术,它需要主机和路由器的相互作用。
2 IPv4到IPv6的过渡策略
——现今的因特网是IPv4的,要实现到IPv6网络的转变,所有机器不可能同时需要升级软件,只要同时开电即完成。过渡阶段是必然存在的,所以有必要讨论过渡策略。
2.1 主机的演化
——运行IPv6协议的主机必然是从少到多,在此过程中IPv6主机还必须维持与IPv4的连接。所以过渡阶段IPv6主机运行的是双协议栈,在网络层IPv6与IPv4共存。
——IPv6虽然是新协议,但是它的基本框架与IPv4相差不多,以IPv4为基础实现IPv6不很困难,困难的是管理两类地址,对此域名服务(DNS)将发挥很大的作用。选择哪一个协议来传输报文,将由主机在建立TCP连接时确定,其依据是地址解析得到的IP地址类型。过渡阶段里,DNS服务器中的记录将同时包括IPv4的32位记录和IPv6的128位记录,DNS服务器经过少量修改就可以处理两种记录。主机调用gethostbyname()过程解析域名前,可以在环境变量中指定先进行IPv6地址解析,当IPv6解析失败后再进行IPv4地址解析。也可以定义新的gethostbyneme2()过程,调用时带地址类别参数。
——双协议栈的策略假设DNS服务器能解析IPv6地址,而DNS服务器本身使用的地址不一定是IPv6地址在网络配置阶段设置的DNS地址,足以让UDP报文能判断该使用哪一个IP协议将DNS请求送到DNS服务器。所以在存在IPv4的情况下,真正要升级软件的只是提供IPv6功能的主机和DNS服务器的解析器。
2.2 路由器的升级
——升级路由器是比较复杂的,因为IPv6和IPv4在IP报文的格式上相差很远。路由器必须为IPv6配备全新的报文转发、路由协议和网络管理软件。当前的路由器本身就支持多协议的运行,再增加一个IPv6不会有太大的问题。
2.3 网络结构的升级
——要运行IPv6,至少应该保证通过IPv6传送的报文能到达目的地,也就是说IPv6主机间能建立连通性。此外,IPv6连接的性能应该很好,否则没有充分的理由从IPv4向其过渡。
——IPv6的网络结构必然也是局部子网加路由器的形式。在本地IPv6主机由局部网络连接,局部网络再由IPv6路由器相互连接,IPv6路由器间的连接则成树状或网状,最终形成全球连接。为了充分利用IPv4的资源,IPv6网络应该覆盖在IPv4网络上,以虚拟网的形式运行,在经历了过渡过程后,IPv4网络也就顺利成为IPv6网络。所以在过渡阶段,支持IPv6的路由器间的链路应该采用IP隧道技术,IPv6报文被封装到IPv4报文中传输。隧道技术的好处在于使物理上不连接的IPv6路由器间能建立一条虚连接,使IPv6可以利用IPv4的报文传输能力建立通信。
——隧道技术虽然解决了IPv6的连接问题,但是它自身的性能还是有待改进。首先,如何确定隧道的路由度量值。隧道建立在IPv4上,IPv4网络中路由的改变必然改变隧道的度量值,在IPv4仍保持连通的情况下,寻找改变隧道度量值的优良算法显然是很困难的。其次,IPv4网络是无服务质量保证的网络,如何保证基于IPv4网络的IPv6性能是一个难题。预留带宽也许是一个方法,但是当隧道经过的路由数较多时,会存在很多管理上的问题。IPv4正在向支持QoS方向发展,diffserv或inberv也许能保证隧道的质量。最后,需要确定隧道最优的最大传输单元(MTU)。MTU是IP报文的最大长度。如果IP报文长度大于MTU,路由器就必须将其分片传输,这不但在目的主机增加了重组开销,而且因单片传输失败而导致整个报文丢失的概率增加。IPv6路由器也许只能通过定期探测的方法来动态修改MTU。IPv6的最小报文长度是576字节,如果隧道的MTU小于576字节,IPv4的分片是不可避免的。
3 总 结
——IPv6和IPv4比较,它彻底解决了地址空间耗尽和路由表爆炸等问题,而且为IP协议注入了新的内容,使支持安全、主机移动以及多媒体成为IP协议的有机组成部分。协议的设计使路由器处理报文更加简便;协议的扩展性也更好。目前,IPv6的实验网6Bnoe已经遍布全球,IP协议从IPv4过渡到IPv6已经是历史必然。
站内搜索