摘要 本文首先详细分析了移动IPv6技术的基本原理,关键过程以及安全考虑等。在此基础上,就移动IPv6目前存在的问题作了深入探讨。最后,介绍了移动IPv6现状并对其发展作了展望。
关键词 移动IPv6 移动节点* 通信节点* 家乡代理* 往返可路由过程
1、引言
下一代网络的发展方向之一是向多元化的无缝宽带接入网络演进,各种有线、无线接入方式对于用户业务体验需要提供通用的移动性,使用户随时随地可以享受到统一的业务特性。
移动终端要在三层网络切换的过程中保持通信畅通就必须保证移动对于通信应用的透明,即通信应用的网络层识别——IP地址保持不变。互联网路由模式是根据网络层目的地址来进行选路,并将数据包发送到该目的地址所在的网络,从而到达该目的地址所代表的节点。网络层移动必须解决对通信应用全程使用不变IP地址的同时,对于路由使用节点当前所在网段可达的IP地址。移动IPv6巧妙地解决了这个问题。
2、移动IPv6基本工作原理
移动IPv6对于实现通信在网络层移动过程中保持不断的解决方案可以简单地归纳为三点:
(1)定义了家乡地址,上层通信应用全程使用家乡地址保证了对应用的移动透明;
(2)定义了转交地址,从外地网络获得转交地址,保证了现有路由模式下通信可达;
(3)家乡地址与转交地址的映射,建立了上层应用所使用的网络层标识与网络层路由所使用的目的标识之间的关系。
具体工作流程可简单归纳如下:
当移动节点在家乡网段中时,它与通信节点之间按照传统的路由技术进行通信,不需要移动IPv6的介入。
当移动节点移动到外地链路时,移动节点的家乡地址保持不变,同时获得一个临时的IP地址(即转交地址)。移动节点把家乡地址与转交地址的映射告知家乡代理。通信节点与移动节点通信仍然使用移动节点的家乡地址,数据包仍然发往移动节点的家乡网段;家乡代理截获这些数据包,并根据已获得的映射关系通过隧道方式将其转发给移动节点的转交地址。移动节点则可以直接和通信节点进行通信。这个过程也叫做三角路由过程。
移动节点也会将家乡地址与转交地址的映射关系告知通信节点,当通信节点知道了移动节点的转交地址就可以直接将数据包转发到其转交地址所在的外地网段。这样通信节点与移动节点之间就可以直接进行正常通信。这个通信过程也被称作路由优化后的通信过程。
3、移动IPv6的安全考虑
上述移动IPv6的基本工作过程只是针对于理想状态的互联网,并没有考虑安全方面的问题。实际的网络中,会存在各种对报文的窃听或者篡改等攻击。如果攻击者截取了绑定报文,并且修改内容中转交地址为攻击者的地址,然后再继续发送给HA或者CN,那么攻击者就会截取到发往移动节点的通信数据。同样对于移动IPv6中目的选项或者路由报头的攻击,也会影响到通信的安全。要保证移动IPv6的通信安全,就必须保证移动IPv6的协议消息的真实性和完整性。
MN与CN的关系带有任意性,不适合需要预先建立安全关联的方式,因此IPSec在MN与CN之间不适用。为保证MN与CN的之间的安全性,引入了往返可路由过程。
MN与CN之间的移动IPv6协议消息包括:MN发往CN的绑定消息,CN发往MN的绑定确认。往返可路由过程的目的是要确保绑定消息中的家乡地址和转交地址都是真实可达的,都属于移动节点。
MN与HA之间的关系相对固定,便于预先建立安全关联,因此对于MN和HA之间的协议消息使用IPSec进行保护,具体的操作可以参考RFC3776,本文不再赘述。
4、移动IPv6的关键过程
移动IPv6的协议中,从三角路由到路由优化的通信过程包含了移动检测,获取转交地址,转交地址注册,隧道转发等机制,往返可路由等信令过程等。
4.1 移动检测
移动检测分为二层移动检测以及三层移动检测。不论二层移动检测采用什么方法,移动IPv6中依靠路由通告来确定是否发生了三层移动。移动节点在家乡网段的时候,在规定的时间间隔内能够周期性收到路由前缀通告;移动节点从家乡网络移动到外地网络的时候,在规定的时间间隔内不会再收到家乡网段的路由通告,移动节点认为发生了网络层移动。
4.2 获取转交地址
当移动节点监测到发生了网络切换时,就需要分配当前网段可达的转交地址。获得转交地址的方式可以是任何传统的IPv6地址分配方式,如无状态自动配置方式,或者是有状态分配方式。最简单的方式之一就是无状态自动配置方式,利用所接收到外地网络的路由前缀,与移动节点的接口地址合成转交地址。
4.3 转交地址注册
移动节点获得转交地址后需要将转交地址与家乡地址的绑定关系分别通知给家乡代理以及正在与移动节点通信的通信节点,这个过程分别称为家乡代理注册以及通信节点注册。转交地址的注册主要通过绑定更新/确认消息来实现。
4.4 隧道转发机制/三角路由
移动节点已经完成家乡代理注册但是还没有向通信节点注册时,通信节点发往移动节点的数据在网络层仍然使用移动节点的家乡地址。家乡代理会截取这些数据包,并根据已知的移动节点转交地址与家乡地址的绑定关系,通过IPv6 in IPv6隧道将数据包转发到移动节点。移动节点可以直接回复给通信节点。这个过程也叫做三角路由。
4.5 往返可路由过程
往返可路由过程主要目的在于保证通信节点接收到绑定更新的真实性和可靠性,由两个并发过程组成:家乡测试过程和转交测试过程。
家乡测试过程首先由移动节点发起家乡测试初始化消息,通过隧道经由家乡代理转发给通信节点,以此告知通信节点启动家乡测试所需的工作。通信节点收到家乡测试初始化消息后,会利用家乡地址及两个随机数Kcn与nonce,进行运算生成home keygen token,然后会利用返回给移动节点的家乡测试消息把home keygen token*以及nonce索引号告诉移动节点;
转交测试首先是移动节点直接向通信节点发送转交测试初始化消息,通信节点会将消息中携带的转交地址与ken和nonce进行相应运算生成care-of keygen token*,然后在返回移动节点的转交测试息中携带care-ofkeygen token以及nonce索引号。
移动节点利用home keygen token和care-ofkeygen token生成绑定管理密钥Kbm,再利用kbm和绑定更新消息进行相应运算生成验证码1,携带在绑定更新消息中。通信节点收到绑定更新消息后利用home keygen token,care-ofkeygen token以及nonce数,与绑定消息进行相应运算,得出验证码2。比较两个验证码,如果相同,通信节点就可以判断绑定消息真实可信,否则,将视为无效。
4.6 动态家乡代理地址发现过程
通常家乡网络的前缀和家乡代理的地址是固定的,但是也可能因为故障或其他原因出现重新配置。当家乡网络配置改变时,身在外地的移动节点需要依靠动态家乡代理地址发现过程发现家乡代理的地址。这主要借助于目的地为一个特殊anycast地址的ICMP特别消息。据了解,目前这个过程并没有设备实现,因此也不做过多介绍,进一步了解可以参考RFC3775。
图1示出了移动IPv6的过程。
图1 移动IPv6过程图解*
5、移动IPv6所面临的问题
5.1 安全
MIPv6中规定了以IPSec来进行MN与HA之间协议消息保护,此外对于数据消息也可以用IPSec进行保护。但是在IPv6中真正启用IPSec的很少,MIPv6中应用IPSec就更少了。一方面是由于各系统对IPSec for IPv6的支持还不到位,另一方面IPSec的应用主要适用于IPSec VPN之类的公司用户应用。对于个人用户,IPSec的配置还是比较繁琐。如何能使IPSec易于配置,广泛应用起来,这也是移动IPv6要解决的一个问题。此外,对于如何验证MN与HA之间的协议消息,已经提出了其他的草案。安全问题仍然是MIPv6的研究热点之一。
5.2 快速切换
移动IPv6的目的是为了使在移动过程中通信仍然能够保持和流畅,这就意味着在网络切换的过程对丢包和时延的要求比较苛刻。对于交互式语音通信,可以接受的双向时延小于300ms,丢包率小于3%。但是目前MIPv6实现的试验结果并不理想,切换速度一般在3-4s。
为了减小切换的时延,RFC3775中规定了在实现MIPv6网络中各网段的接入接入路由器的路由前缀通告的间隔范围:min=0.03ms,max=0.07ms。而普通的IPv6网络中,这个参数的值在min=(3s,0.75*max),max=(4s,600s)。频繁的路由通告可以使移动节点快速检测到网段迁移,启动移动IPv6的后续过程;但是频繁的路由通告也使MIPv6的通信效率有所降低。此外,业界针对快速切换还提出了层次化移动IPv6的概念。所有的这些措施,都还需要进一步的评估检验。
5.3 实现
目前,Linux系统中对IPv6的支持是基于2.4系列内核的,已经基本实现对RFC3775的支持,但是由于没有支持IPSec for IPv6,Linux系统的MN/HA并不能使用IPSec保护MIPv6的通信安全。不过,Linux现在正在进行2.6系列内核的操作系统中对MIPv6的支持,届时,Linux MIPv6将可以使用IPSec功能。
Cisco,Nokia等厂家的网络设备也实现了对MIPv6提供了基本的支持。
5.4 应用
移动IPv6与IPv6共同描绘出一个美好的移动数据应用的未来。各种家用电器、手持设备、车载系统、以及传感系统、通信终端等都可以通过网络进行任何时间,任何地点,保持丰富的信息传送。但是移动IPv6从提出到现在近10年的时间里,还没有过真正的商业部署。一方面,IPv6的网络和应用并没有大规模铺开。另一方面,移动IPv6的应用很多都是面向未来的,比如日本在研究的AD HOC的ITS系统,不是近2~3年内就能够为推广应用的,也就是说一些移动IPv6的应用是以IPv6数字生活为前提的。
至于何时移动IPv6所描绘出来的无所不在的流畅通信时代才能走进千家万户,还很难给出一个确切的估计,但是很明确的是这中间还有很多方面需要努力。
6、结束语
移动IPv6真正推广,一方面需要借助下一代网络的快速发展需求,如多模终端的应用,IPv6业务的普及等。另一方面也需要克服目前存在的一些问题,具体而言,移动IPv6的发展需要先解决当前业务研究方向中遇到的技术问题(便于配置和部署的信令安全方案;快速和平滑的切换方案;移动过程中保持统一的AAA策略的解决方案;移动过程中保持统一QoS策略的解决方案;动态域名解决方案等),然后才能做好业务解决方案。
此外,移动IPv6为特色的业务普及还需要一个成熟的技术和业务环境条件,包括:异质接入网络的融合,包括各种有线、无线接入方式之间的切换;统一的或者良好互通的后台管理系统;多模终端的应用;IPv6网络的部署以及业务的普及应用;NGI移动数据业务广泛应用等。
如果失去了这些前提条件,移动IPv6的技术将失去发展的空间。移动IPv6的标准历经至少24版RFC Draft,于2004年6月终于标准化成为RFC3775。2005年6月,日本的IPv6促进协会启动了“IPv6 Ready”二期认证,主要是增加了对MIPv6和IPSec的认证,这将有利于推动移动IPv6的发展。期待在不久的将来结合移动IPv6,将有更丰富的移动数据业务或者业务特性提供给用户体验。
注:*移动节点:指发生网络切换的网络节点。
*通信节点:指与移动节点进行通信的对端网络节点。
*家乡代理:指能够接受移动节点的绑定消息并且能够截取发往移动节点家乡地址的数据包然后将这些数据包转发给移动节点的路由器。
*home keygen token:home keygen token=First(64,HMAC_SHA1(Kcn,(home address|nonce|0)))
*care-of keygen token:First(64,HMAC_SHA1(Kcn,(care-ofaddress|nonce|1)))
*左边的侧括号标明的是信令过程,右边的侧括号标明的是数据过程。浅字体的表示为信令消息,深字体为数据消息。很多时候,信令消息是携带在数据消息中的。
作者:张荣 来源:中国联通网站