移动IPv6技术研究的实验系统概述
发布时间:2006-10-14 8:03:42   收集提供:gaoqian
王 淼 李 军 石晶林
(中国科学院计算技术研究所网络研究室 北京100080)


  摘 要 本文介绍了移动IPv6的工作原理及目前在Windows、BSD和Linux操作系统上开发出来的各种移动IPv6实验系统,并建立了实验环境对Linux下的MIPL 移动IPv6实验系统进行了测试。

  关键词 移动IPv6 Windows BSD Linux 实验系统

1 引言

  1996年, IETF的移动IP工作组(IP Routing for Wireless/Mobile Hosts)制定了移动IPv4的技术标准。但是,到目前为止,移动IPv6的标准仍在制定的过程中,并经历了多次版本更新。最新的草案(Draft)为第19版本的Mobility Support in IPv6。

  移动IPv6技术充分利用了IPv6协议对移动性的内在支持。首先,路由器在路由器广播报文中指示了它是否能担任本地代理。同一个子网内允许多个本地代理存在,移动节点可以向任意一个本地代理注册。本地代理中保存有移动节点的家乡地址和转交地址的对照表,收到发送给移动节点的报文后,根据对照表把报文转发给移动节点。其次,每当移动节点收到其他主机发来的报文后,在响应报文中以转交地址作为源地址,并要附带上移动节点的家乡地址。其他主机的后续报文以移动节点的转交地址为目的地址,但是要附带源路由选择头,报头内容为移动节点的家乡地址。使用这种机制的目的是保证移动节点在移动过程中也不会丢失报文。最后,IPv6中定义了重定向过程。当移动节点在小区间切换时,移动节点重新登记成功后,基站应该向原来的基站发重定向包文,使切换过程中路由有偏差的报文重新找到移动节点。

  移动IPv6的主要目标就是使得移动节点总是通过家乡地址寻址,不管是连接在家乡链路还是移动到外地网络。移动IPv6对于IP层以上的协议层是完全透明的,这使得移动节点在不同子网间移动时,运行在该节点上的应用程序不需修改或配置仍然可用。

2 移动IPv6的工作原理

  移动IPv6从移动IPv4中借鉴了许多概念和术语,例如IPv6中移动节点(MN)、家乡代理(HA)、家乡地址、家乡链路、转交地址和外地链路等概念和移动IPv4中的几乎一样,但两者还是有差别的。

  移动IPv6的操作可以总结如下:

  (1)移动节点采用IPv6版的路由器搜索确定它的转交地址。

  ① 移动节点连接在它的家乡链路上时与任何固定的主机和路由器一样工作。

  ② 当移动节点连接在它的外地链路上时,它采用IPv6定义的地址自动配置方法得到外地链路上的转交地址。由于移动IPv6没有外地代理,因此移动IPv6中唯一的一种转交地址是配置转交地址,移动节点用接受的路由器广播报文中的M比特来决定采用哪一种方法。如果M比特为0,那么移动节点采用被动地址自动配置,否则移动节点采用主动地址自动配置。

  (2)移动节点将它的转交地址通知给家乡代理。

  (3)如果可以保证操作时的安全性,移动节点也将它的转交地址通知几个通信节点。

  移动IPv6采用布告(Notification)过程通知移动节点家乡代理或其他节点它当前的转交地址。移动IPv6中的布告和移动IPv4中的注册有很大的不同。在移动IPv4中,移动节点通过UDP/IP包中携带的注册信息将它的转交地址告诉家乡代理,相反地,移动IPv6中的移动节点用目的地址可选项(Destination Options)来通知其他节点它的转交地址。为移动IPv6布告所定义的三条消息为绑定更新(Binding Update)、 绑定应答(Binding Acknow- ledgment)和绑定请求(Binding Request)。这些消息都被放在目的地可选报头中,这表明这些消息都只被最终目的节点检查。移动IPv6布告过程包括在移动节点和家乡代理或通信节点间交换绑定更新和绑定应答。绑定应答很可能是在移动节点收到一个绑定请求后发出的。有时,通信节点通过向移动节点发送一个绑定请求启动布告过程,移动节点则通过发送绑定更新(不是由任何绑定请求激起的)启动布告过程。在这两种情况中,移动节点都向家乡代理或通信节点告知它当前的转交地址。移动节点可以通过绑定更新中的应答位(A)来要求接收者是否通过向移动节点发送绑定应答来响应,绑定应答首先通知移动节点绑定更新已收到,其次还告诉移动节点绑定更新是否被接受。

  (4)移动IPv6中同时采用隧道和源路由技术向连接在外地链路上的移动节点传送数据包。

  ① 知道移动节点的转交地址的通信节点可以利用IPv6选路报头直接将数据包发送给移动节点,这些包不需要经过移动节点的家乡代理,它们将经过从始发点到移动节点的一条优化路由。

  ② 如果通信节点不知道移动节点的转交地址,那么它就像向其他任何固定节点发送数据包那样向移动节点发送数据包。这时,通信节点只是将移动节点的家乡地址(也是它知道的唯一地址)放入目的IPv6地址域中,并将它自己的地址放在源IPv6地址域中,然后将数据包转发到合适的下一跳上(这由它的IPv6路由表决定)。这样发送的一个数据包将被送往移动节点的家乡链路,就像移动IPv4中那样。在家乡链路上,家乡代理截获这个数据包,并将它通过隧道送往移动节点的转交地址。移动节点将送过来的包拆封,发现内层数据包的目的地是它的家乡地址,于是将内层数据包交给高层协议处理。

  (5)在相反方向,移动节点送出的数据包采用特殊的机制被直接路由到它们的目的地。然而,当存在入口方向的过滤时,移动节点可以将数据包通过隧道送给家乡代理,隧道的源地址为移动节点的转交地址。

3 实验系统

  目前世界上有很多组织或者机构在对移动IPv6进行研究,并且有一些在不同操作系统上开发出来的实验系统。下面按照不同的操作系统来分别介绍。

3.1 Windows系统下的实验系统

  Microsoft MIPv6 Project(MIPv6):微软公司一直积极参与IPv6协议栈的研发工作,继2001年发布IPv6的协议栈软件包后,微软公司在最新的Windows XP操作系统中已经内置支持IPv6。在移动IPv6的研究上,微软和英国兰卡斯特大学合作,在LandMARC Project的基础上推出了基于Windows 2000的移动IPv6软件。可以从http://research.microsoft . com / programs / europe / projects / MIPv6 . asp下载。该应用服从draft-ietf-mobileip-ipv6-12对移动IPv6的规定。该应用支持自动配置;支持路由优化;对上次协议的透明的移动支持;支持IPSec并与防止不正确使用信号控制的MSR IPv6的IPSec功能兼容。其不足为:不支持IKE;切换与网络适配器和驱动程序密切相关;不支持动态家乡代理搜索;不支持用先前的转发地址建立转发路径。

  Windows XP 中的MIPv6应用服从draft-ietf- mobileip-ipv6-13对移动IPv6的规定,但只提供了CN的功能。Windows .NET Server 2003 和Windows CE .NET.上将提供对移动IPv6更好的支持。

3.2 Free BSD系统下的实验系统

  (1)The CMU Monarch Project:Monarch Pro- ject项目属于美国卡耐基梅隆大学的计算机科学学院。该项目主要集中研究支持无线和移动节点的网络,内容包括协议设计、实现、性能评估等等。移动IP是该项目的一个子项目,已经发行了移动IPv4软件包和移动IPv6软件包。可以从http://www.monarch.cs.cmu.edu/mobile_ipv6.html 下载。   (2)KAME Project:这是由日本WIDE(Wi- dely Integrated Distributed Environment)组织从事IPv6/IPSec协议栈开发的项目组开发的。其目的是提供BSD下免费的IPv6/IPSec协议栈(IPv4/IPv6)和IPv6应用。目前KAME有3个IPv6协议栈的移动IP应用,分别来自于NEC 、Keio大学和爱立信。它们有不同的特性、优缺点和API,因此,KAME希望收集这几个应用的最好的特性,重新构造一个KAME 的MIP编码。

  NEC的MIPv6应用服从draft-ietf-mobileip-ip- v6-13对移动IPv6的规定,目前该应用运行在4.x FreeBSD 内核或者以上的版本上,可以从http://www.6bone.nec.co.jp/ 下载。该版本支持反向隧道;支持HA和MN,CN和MN间的IKE;即使没有radvd.conf,radvd也可以在家乡链路上发布路由广播。其不足主要是对MN,需要在FreeBSD修改一些家乡地址自动配置脚本;对HA,在家乡代理搜索时需要检查路由器广播的有效性。

  Keio 大学的SFC-MIP6 应用服从draft-ietf-mo- bileip-ipv6-13对移动IPv6的规定,目前该应用运行在freebsd4.2 + KAME-20010423-freebsd42-snap上,可以从http://neo.sfc.wide.ad.jp/~mip6/english/do- wnload.html 下载。

  爱立信的MIPv6 应用服从draft-ietf-mobileip- ipv6-13对移动IPv6的规定,目前该应用运行在4.2.x FreeBSD 内核或者以上的版本上,可以从ftp://ftp.kame.net/pub/kame/contrib/mip6/eriCSSon/下载。

3.3 Linux系统下的实验系统

  (1)Lancaster 移动IPv6:该系统是由英国兰卡斯特大学(Lancaster University)的计算机系的IPv6小组开发的,但是从1998年3月6日以来该项目就一直未更新。可以从http://www.cs-ipv6.lancs.ac.uk/ipv6/MobileIP/ 下载。Lancaster 移动IPv6应用服从draft-ietf-mobileip-ipv6-05对移动IPv6的规定;运行在Linux 2.1.9x内核上;支持路由不可达和路由优化;支持UDP、TCP和ICMP协议应用及MAC层漫游。

  (2)USAGI(UniverSAl playGround):USAGI项目是一群志愿者管理,其目的是免费提供更好的Linux IPv6环境。USAGI通过与KAME、TAHI等项目的紧密合作,致力于提高Linux内核、IPv6库和应用。目前的版本为USAGI Stable Release 4,可以从http://www.linux-ipv6.org/下载。该版本运行在usagi-2.4 内核上;支持IPv6的IPsec;支持IPv6 over IPv6隧道和anycast地址。

  (3)MIPL 移动IPv6:该系统最早是由芬兰赫尔辛基技术大学的HUT Software Project项目开发,其目的是创立一个Linux下的移动IPv6原型。现在由赫尔辛基大学的通信与多媒体实验室的GO/Core项目组负责后续的开发工作。MIPL项目更新速度快,并且支持最新的Linux内核版本。该项目基于GNU GPL(通用公共许可证)的条款发行最新版本。目前的版本为MIPL-2.4.19。可以从http://www.mipl.mediapoli.com/下载。

  MIPL 移动IPv6应用服从draft-ietf-mobileip- ipv6-15对移动IPv6的规定,包含内核模块、内核补丁和用户空间工具;目前该应用可以运行在Red Hat Linux 6.1以上,内核2.4.4版本以上;应用了部分IPSec协议,在传输模式下可以使用手工配置的IPSec AH 来鉴证有关移动的信号;使用了radvd(路由器Advertisement Daemon),在radvd进程中加入了MIPv6功能,并且从radvd 0.50.起加入广播时间间隔选项;在MN和HA中支持动态家乡代理发现DHAAD (Dynamic Home Agent Address Disco- very)。MIPL 移动IPv6的不足主要有:在启动HA和MN时固定数目的隧道被创立,而不能按需创立;散列表不支持多个项目共用一个主键,这就限制了有相同HA或者CN的MN去注册多个家乡地址,也使得对HA和CN,如果家乡地址的绑定已经存在,对一个失败的绑定更新有时就不能发送绑定认可;MN发送绑定更新给以前的路由器,只要它们的路由有家乡注册位(H)标志,并且一直更新绑定。

  其中路由器1和路由器2 为HA,名为rabbit的笔记本为MN,名为lion的机器为CN,路由器1 的eth1 和路由器2的eth1用交叉线相连,MN开始在子网1,子网1的前缀为3ffe:8330:200:2::/64,子网2的前缀为3ffe:8330:200:4::/64。

4 结论

  移动IPv6是一个庞杂的协议,包含的内容非常多,而且目前还在继续发展。移动IPv6又是一个设计精巧的协议,虽然目前还有一些缺陷,但我们可以看到,移动IPv6协议的前景是非常光明的。在可以预见的未来,我们将可以解决移动的这些缺陷,例如IPv6无缝切换和AAA问题,充分享受移动IPv6给我们带来的便捷,自由徜徉在移动信息的世界里。

(参考文献略)

  王 淼,1975年生,陕西省乾县人,中科院计算所网络室助理研究员,主要研究方向为移动IPv6。

  李 军,1974年生,内蒙古呼和浩特人,中科院计算所网络室博士研究生,主要研究方向为移动IPv6。

  石晶林,1972年生,云南怒江人,中科院计算所网络室副教授,主要研究方向为电信通信技术与专用大规模集成电路设计、数字信号处理技术。


----《中国数据通信》
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50