摘要 本文简要介绍了移动IPv6的背景,在此基础上给出了IPv6下移动IP的工作流程、“三角路由”问题的解决方案,并探讨了相关的一些关键技术和安全考虑等。最后,进一步讨论了当前研究中存在的困难以及未来可能的研究方向。
1、引言
随着当今通信、网络和计算机等各种高新科技的发展以及人们工作、生活方式的转变,Internet的发展也随之出现了两个重要的方向。
首先,各种设备如手机、PDA、甚至于各种智能家电等,要摆脱各种专用通信网络之间的相互隔阂,需要接入互联网,拥有独立的IP地址。但现有的IPv4地址已近耗尽,不能满足要求。IPv6是IPv4的下一个版本,它的最大特点是提供了128bit的海量地址,可以满足“可预见未来”的IP地址需求。而且,IPv6在运行效率、QoS(服务质量)、安全性等方面有着超出IPv4的种种优势。另一方面,人们对网络的移动性要求越来越高,希望随时随地能够在主机移动的过程中保持如同在静止中通信一样的质量。但是IP地址是一个网络接口的标志,受到所在子网的限制,主机一旦移出当前子网,其IP地址必将改变,从而影响了上层进程的通信和对用户的服务质量。为此IETF(Internet Engineering Task Force)给出了移动IP的解决方案,使得主机的移动不对IP层的上层通信造成影响。
移动IP技术充分利用了IPv6带来的便利与优势,实现了移动IP,因次被称为移动IPv6技术。它是IPv6重要的研究和应用方向之一。
2、移动IPv6的工作过程
2.1 工作原理
IETF制定了Mobile IPv6的草案,提供了相应的机制。这使得IPv6主机在离开家乡子网后,在Internet的任何地点,仍能使用它的家乡地址,从而很好地维持原有的通信及连接。这种实现机制对于IP层以上是透明的:通信双方的IP以上各层是感觉不到移动节点的移动和IP地址的变化的。
每个移动节点都有一个对应家乡链路子网前缀的“家乡地址(Home address)”。移动节点离开家乡链路时,在新的子网链路上使用IPv6网络的“地址自动配置”机制,从而得到对应新的子网前缀的IPv6地址。如果简单地将移动主机的IP地址更新,那么发往其家乡地址的数据包将不能到达主机。从而导致IP以上各层的连接在改变位置之后不能继续保持。因此,必须使通信各方同时保持移动节点“家乡地址”和新获得的所谓“转交地址(Care-of address)”。Mobile IPv6协议使得通信双方节点以及家乡链路上的相关路由器能够同时缓存移动节点的家乡地址以及转交地址,这两种地址的联合称为一个“绑定(Binding)”。
移动节点通告家乡子网上的路由器这种“绑定”,使之成为自己的“家乡代理(Home agents)”。它帮助移动节点仍能以“家乡地址”和别的节点通信。而且,在通信节点了解了这种“绑定”之后,它就能绕开家乡代理,直接以移动节点的转交地址进行通信。
2.2 工作流程
无论移动节点在家乡还是外地,它总是保持着家乡地址作为寻址的一个标志。当移动节点在家乡链路时,按照一般IPv6协议规定而进行通信,这就好像它不是移动节点,发往它的IP包被正常路由到它的家乡链路。
1.建立“家乡代理”
当移动节点连接在外地链路时,它会通过“地址自动配置”机制来获得一个或者多个由该外地链路子网前缀对应的IPv6转交地址。发往该转交地址的IP包是直接路由到该外地链路上由移动节点收到的。但移动节点怎样收到目的地址是其家乡地址的哪些IP包呢?通信节点又如何知道移动节点位置的变化从而直接将包发往“转交地址”呢?这就需要有“绑定更新消息”和“家乡代理”路由器的帮助。
移动节点一旦获得转交地址,立即向家乡链路上一个具有“家乡代理”功能的路由器发送一个“绑定更新”消息,通知该路由器自己位置的改变以及新得到的转交地址,要求该路由器成为自己的“家乡代理”。(可以使用“家乡代理发现机制”来得到具有家乡代理功能的本地路由器,该机制充分利用了IPv6的新特性:任播(Anycast)地址。)路由器为该移动节点的“家乡地址”和“转交地址”建立一个“绑定”缓存条目,然后向移动节点回复“绑定认可”消息,正式成为它的家乡代理(见图1)。
图1 家乡代理注册
此后,一旦有目的地地址是移动节点家乡地址的IP包被路由到家乡链路上,家乡代理路由器就截获这些包,用IPv6封装协议封装,经隧道发往移动节点的转交地址。
(1)在外移动节点向本地路由器发送绑定更新;
(2)该路由器发送绑定认可,成为家乡代理。
2.移动主机通信规程及“三角路由”问题的解决
如果通信双方的数据包都必须经过家乡链路的中转,就产生了所谓的“三角路由”。首先,家乡代理服务器负担增长;其次,传输延时增大,对一些延迟敏感的业务如音频、视频造成极大的损害。在安全性极差的IPv4下此问题难以解决,而在IPv6下实现路由优化就容易多了。移动节点在收到从“家乡代理”经隧道转发过来的IP包时,应该在应答通信节点的包扩展头中加入“绑定更新”选项,告诉该通信节点,也为它的两个地址作一个“绑定”以后,将发往“家乡地址”的数据包直接发往“转交地址”,从而避免了“三角路由”问题的出现(见图2)。
图2 在外移动主机通信规程及三角路由的消除
(1)发往家乡地址的数据包;
(2)家乡代理把包用隧道传给移动节点;
(3)移动节点向通信节点发送绑定更新;
(4)数据包无须转发,三角路由消失。
而且,通信节点发往移动节点“转交地址”的数据包里包含了有关“家乡地址”的信息,从而使得移动节点能够理解这些IP包是发往其家乡地址的。它会把这些包的目的地地址字段填上自己的家乡地址,再往上层提交,从而使“转交地址”对上层协议是透明的,上层连接得以保持。
3.“绑定”的更新和删除
当移动主机再次移动到另一个新的子网时,会获得新的转交地址,此时将重新登记绑定更新信息,使家乡代理及所有通信节点能够跟踪到移动主机位置的变化。当移动主机回到原地子网时,发送的将是“家乡地址”与“转交地址”字段同为“家乡地址”值的“绑定更新”消息。家乡代理及通信节点得到这样的消息,应该从所有已知绑定的列表中将有关该移动主机的绑定全部删除,所有通信恢复正常。
上述所有“绑定”都是有其生存时限以避免绑定列表的无限扩张。当家乡代理路由器或者通信节点绑定列表中为某个移动主机建立的绑定条目过期,它就应该向移动节点发送一个“绑定请求”消息,使之收到后重新发送新的“绑定更新”消息,更新绑定的生存时间。
2.3 移动IPv6中用到的几个关键技术
1.“地址自动配置”机制
为了实现网络设备的即插即用(PnP),IPv6提供了两种机制实现主机IP地址及其相关信息的自动配置。一种是从IPv4继承来的动态主机配置协议(DHCP),又称之为全状态自动配置。IPv6还主要采用了另一种无状态自动配置的机制。主机一旦接入网络,就用自己具有唯一性的接口ID(48bit MAC地址或者由之派生出来的64bit EUI-64地址或者其他具有唯一性的号码)附加在IPv6链路本地地址前缀1111111010和足够多的零之后,产生一个链路本地单播地址。然后主机向链路中所有路由器(IPv6中的组播地址FF02:2)组播一个“路由器请求”消息,路由器返回一个全局单播地址前缀及其他相关配置信息。主机用此全局地址前缀加上自己的接口ID形成全局128bit地址,就可以参与Internet通信了。
在此项主机配置过程之中,没有人的手动干预或者专门的主机配置服务器,是主机与路由器自动完成的,此即为“无状态地址自动配置”机制。在Mobile IPv6中,移动主机移到别的子网时,就是使用这种机制得到自己对应当前链路的“转交地址”的。
2.移动检测
当移动节点离开家乡链路到其他链路时,可以使用任何可用的机制来检测到自己位置的移动。例如,在无线环境下,信号的消失可能意味着离开了原服务区,从而认为已经离开家乡链路。但这样的低层协议是随着网络链路层技术的变化而变化的。要在IP层检测到节点位置的移动,移动IPv6应该使用IPv6的“邻居发现”技术,其中包括“路由器发现”和“邻居不可达检测”。
路由器定期在本地链路上发送“路由器宣告”广播消息,移动节点接收到这样的消息,就为该路由器维护一个“缺省路由器”条目,并记录下相应的子网前缀。“路由器宣告”消息中包含有“宣告间隔”选项,这意味着如果移动节点在这么长的时间内没有收到该路由器发来的新的“路由器宣告”消息的话,它就可以确定至少丢失了一个宣告消息。因此移动节点可以实现自己的策略来决定何时认为该路由器不可达,即自己位置已改变,从而转向别的路由器。
3.“家乡代理发现”机制
移动节点离开本地链路时,使用该机制,在其家乡链路上发现一个或者多个具有家乡代理功能的路由器。此外,如果节点在外期间,原来的“家乡代理”失效或者消失,这种机制也能发挥作用。
首先,移动节点要向“移动IPv6家乡代理”的任意发送地址(Anycast address)发送一个“ICMP家乡代理发现请求”消息,使用移动节点的转交地址作为该IP包的源地址。有家乡代理功能的路由器(该路由器某个网络接口加入了该任意发送地址)收到该消息后,应该向移动节点转交地址发送“ICMP家乡代理地址发现应答”消息,返回家乡代理的一个全球唯一地址,以及本地链路上所有别的家乡代理按优先级排序的地址列表。移动节点收到这些信息之后,即可选择其一,发送“绑定更新”消息,得到自己的“家乡代理”了。
4.“邻居发现”机制
当移动节点离开家乡时,它的家乡代理使用IPv6的“邻居发现”机制来截获发往移动主机“家乡地址”的数据包。
家乡代理代表移动节点在家乡链路上广播“邻居广播”消息,将自己的数据链路层地址与移动节点在本地的每一个IPv6地址相关联。也就是说,除了链路层地址选项填入家乡代理自己的链路层地址,“邻居宣告”消息中所有字段的设置应该与移动节点在家时自己设置此消息的过程相同。这样,收到此消息的任何本地节点或路由器修改自己的“邻居缓存”,将移动节点的家乡地址与家乡代理的链路层地址进行联系。此后本地节点发往移动节点家乡地址的数据包,以及由别的路由器发来的目的地址是移动节点家乡地址的数据包被“家乡代理”截获。封装后经隧道转发给在外的移动节点。
移动IPv6中没有像移动IPv4那样使用ARP协议来截获数据包,所以无须考虑与ARP相关的特定数据链路层的性质。这种设置提高了协议的可靠性,简化了实现的过程。
3、移动IPv6中的安全性考虑
以往的经验证明,许多添加了新功能的新型网络体系中都不免会引入了各种各样新的安全隐患。对于移动IP来说,其最大的安全威胁在于移动节点经常要向家乡代理及通信节点发送更新报文,这为攻击者提供了一些侵入的可能。
比如,黑客有可能冒充移动主机,向通信节点发送伪造的绑定更新消息,使得发往真实移动主机的数据包被重新定向至黑客指定的地址。又如,攻击者不断发送无用的包,可以阻塞未受保护的链路,也能阻止真正的移动接点正常通信。为此,未来在移动节点、家乡代理及通信节点之间必须要进行身份认证。此外,为了保证被访问的新的子网的安全性不受移动主机影响,移动主机与接入链路的路由器之间也需要认证。
要解决这些问题,移动IPv4必须依赖自己的安全机制,效率很低。而移动IPv6的安全性是建立在IPv6协议的安全机制之上的,使用网络层IPSec来满足更新绑定时的安全需求,省去了很多额外的工作。IPSec是将几种安全技术结合到一起形成的一个较为完整的体系,通过对数据加密、认证、完整性检查来保证数据传输可靠性、私有性及保密性。
IETF已经给出RFC2977文档,提供支持移动IP的3A服务,即移动用户的认证(Authentication)、授权(Authorization)和记费(Accounting)服务。
此外,防火墙也需要进行相应的升级来支持移动IPv6,使之不受移动IPv6数据包中修改过的源地址和目的地址的影响,以正常进行数据包的过滤。
4、现存问题和进一步研究方向
1.移动IPv6的服务质量
有些应用要求能在网络上以实时的性能传输数据,需要得到最小带宽和最大延迟、甚至是最大延时抖动的保证。所以,IP QoS将成为运营商级IP联网解决方案的基础。
在移动IP中实现QoS有一些新的问题:
(1)网络中的移动主机随时更换位置,并可能相应的有正在进行业务的变化,其业务量模型动态、复杂。
(2)IP QoS的一些解决方案,如集成服务模型和区分服务模型,需要对不同的网络区域进行业务等级的划分。而网络的静止带宽分配和移动主机的动态位置相互不能适应。因此,必须引入动态的业务等级划分。
(3)不同的QoS区域入口服务器要对分组的源地址、目标地址等进行识别,但移动IPv6中数据包的源地址和(对移动节点发送的包而言)/或者目的地址(对发往移动节点的包而言)是移动节点的转交地址,该地址随节点的移动作动态的变化。那么,如何在实现相应的QoS时考虑到这种变化必须加以研究。
最后,移动节点在切换网络时会引起一定时间内的传输延时以及分组丢失(如何尽量减少这种影响在后文提及),这必须加以优化解决,否则QoS就很难实现了。
2.移动IPv6的快速切换
移动IP的重要应用环境是无线链路。在新的无线通信系统中,微蜂窝(Micro-cell)应用广泛,相应的带来了移动主机的频繁切换。链路切换过程中移动主机要进行移动IP注册及“三角路由”的优化,从而引入了分组的延时及丢失。
为了防止IP包在移动主机切换IP时丢失,有所谓蜂窝IPv6,提出了外地本地代理(FHA)和蜂窝多播(CM)的机制。外地本地代理是位于外地网络的主机,管理着具有多个子网的网络区域。FHA中没有移动主机的缓存列表,记录移动到其管理网络区域内的所有移动节点。由于移动节点的转交地址由其MAC地址加上对应子网前缀形成,那么一旦有发往移动主机的IP包到达FHA,FHA就向自己管理的网络区域中所有该MAC地址可能对应的转交地址进行组播转发。从而确保无论移动主机移到哪个子网,它都能收到该IP包,避免了数据包的丢失。但这样做有一个明显的缺点:占用主机及网络资源过大。
现有的移动主机子网切换的发现机制是:在切换之后,主机依赖路由器定期发送的宣告消息来实现,然后还要进行自动配置以得到转交地址。该方法,虽然简便,但是速度很慢。那么,有一个降低主机切换网络时数据包延时及丢失的思路,即在移动主机移到新链路之前,先启动一个切换规程,预先获取新链路上的转交地址。主机离开本地网络之前,经过新老子网路由器及主机之间新增的消息报文,提前得到转交地址;家乡代理及别的通信节点也可以尽早得到新的转交地址的注册,从而降低了移动主机子网切换时的分组延时和丢失。但该方案需要移动主机知晓自己即将转到的新的子网及其地址,所以需要数据链路层的支持。
总的来讲,目前提高移动IP切换效率的思路主要有包缓存、组播和预先切换等,各有其优缺点,都正处在研究当中。此外,为了实现移动IP QoS的资源预留和保证安全性而引入的注册消息认证乃至接下来将提到的IPv6头标压缩,都是引入移动主机子网切换延时的因素,因此还需要研究更好的移动IP子网切换技术。
3.移动IPv6的头标压缩
移动IPv6的头标压缩,主要是从提高移动IPv6运行效率的角度出发的。将来手机等多媒体移动设备将是移动IPv6的重要应用主体。在相当多的音、视频数据包中,有效载荷(IP层以上的数据包)往往在几十字节的数量级上,而移动IPv6协议中为数据包加入的头标为40字节IPv6头标、20字节的信宿选项头标、20字节的家乡地址选项头标等。总的头标开销动辄100字节以上,使得通信效率低下。再者,无线链路往往具有高误码率的特点。头标巨大所导致的数据包体积巨大也是IPv6包出错遭到丢弃的原因之一。因此,要从数据压缩的观点出发,对移动IPv6头标进行压缩。
分析这些头标可以看到,同一个数据流(可能对应上层的一个通信进程)中数据包的IPv6头标里有很多相同的域和选项,比如版本、流标记、下一个头(Next header)、源地址、目的地址等。其中,只有中继点数目等少数选项是动态变化的。那么,数据传输仅在该数据流开始时发送完整的IPv6包及相应的选项头标,后续IPv6包只传送变化的部分以及指出该包属于哪一个流的标志符,可以有效压缩数据包的大小,提高带宽的利用效率,降低包出错和丢失的可能。但这一思想的具体实现还面临很多困难。移动主机的不断移动使得有效的压缩算法、同步规程等变得比较复杂,值得做进一步的研究。而且,由于头标压缩带来的分组延时对QoS造成的影响也需加以考虑。
5、结束语
移动IP分为两个版本——IPv4和IPv6,但IPv6相比前者有着诸多优势。
(1)移动IP需要一定量的IP地址来作为移动节点的转交地址,对于捉襟见肘的IPv4来说相当困难。而IPv6在拥有庞大地址空间的同时,提供了更好的自动配置的支持,生成转交地址相当方便。
(2)移动IPv6解决了所谓的“三角路由”问题。在其工作过程中,在外地的移动节点会将“绑定更新”消息发往与之通信的节点,它们之间IP包的路由无须经过家乡代理,也减轻了IPv4中家乡代理转发所有数据包带来的负担。
另外,移动IPv6无须外地代理,有着更加方便完善的安全机制,再加上IPv6协议栈本身相对于IPv4的优势,它会有比移动IPv4更为广阔的发展前景。当然,正如文中所述,目前的移动IPv6技术也还存在着不少值得进一步去研究的问题。
作者:苗晓宁 王晓恩 来源:泰尔网