武静 信息产业部电信传输研究所
摘要 介绍在IPv4网络中的移动IP技术工作原理,包括代理发现、注册和建立隧道以及在注册中的认证问题。
关键词 移动IP 归属代理 外部代理 移动节点 转交地址
1 引言
目前,已经有许多基于链路层的移动解决方案,例如IEEE 802.11系列和CDPD等,但是这些解决方案都存在一些问题:
· 只能在一条单独的链路中进行移动,而不能在链路之间移动。
· 不能在不同类型链路之间移动,例如以太网到CDPD网络的移动。
· 不是所有的链路类型都支持链路层移动性。
因此,需要网络层对移动性的支持来解决不同链路之间的和不同类型链路之间的移动性问题,即所谓的宏移动问题。在IP网络中,分组包从源端点到目的地的传送是由路由器根据路由表逐跳转发完成的。路由表可以根据分组的目的地IP地址,选择该IP地址的下一跳。移动节点从一个地方移动到另一个地方,要维持目前的传输层连接,就必须保持IP地址不变,而传输层的一个TCP连接是依靠四元组标识的,即源端点和目的端点的IP地址和它们的端口号。改变这个四元组中任何一个元素,都会使传输层的连接被破坏或者丢失。
移动IP就解决了这个问题,它允许移动节点有两个IP地址:一个固定的归属地址(Home Address)和一个在新的接入点的转交地址(Care-of Address)。归属地址是静态的,用归属地址来标识TCP连接。转交地址是随接入点的改变而改变的,它可以被视为移动节点在网络拓扑范围内的地址。转交地址指示出网络号,这样可以标识出移动节点在网络拓扑中的接入点地址。移动节点在归属网络(Home Network)或者在外部网络(Foreign Network),都是通过归属代理(Home Agent)来接收数据。目的地址为移动节点的归属地址(Home Address)的数据都会被归属代理拦截,由归属代理接收这些分组,然后再将它们传送到移动节点当前的接入点地址。
2 移动IP的工作原理
在移动IP中,主要有三个工作阶段:
· 代理发现(Agent Discovery)——移动节点发现它的外部代理(Foreign Agent)和归属代理(Home Agent)。
· 注册(Registration)——移动节点通过外部代理或者归属代理注册当前的位置。
· 建立隧道(Tunneling)——当移动节点漫游时,归属代理(Home Agent)建立到转交地址(移动节点在外部网络的接入点地址)的隧道,将分组路由到移动节点。
2.1 代理发现
移动IP发现过程是在路由器通告消息基础上建立的,它只是对路由器通告消息进行了扩展,将路由器通告消息与移动功能相关联。在代理发现阶段,移动代理(归属代理和外部代理)通过使用ICMP路由器发现协议(ICMP Router Discovery Protocol)向网络通告业务。移动节点侦听这些通告,获知自己目前的位置,即判断出目前是连接在归属网络上还是连接在外部网络上。
ICMP路由器发现协议通告携带移动IP扩展字段,这个扩展字段指明代理的类型(归属代理还是外部代理,亦或者是混合型代理);代理的转交地址(Care-of Address);代理提供的业务类型,例如,建立反转隧道、通用路由封装(GRE),移动节点可允许的注册生命期。归属代理和外部代理会周期地发送代理通告。在代理通告的发送间隔,移动节点可以以广播或者多播的方式主动发送请求消息。任何一个归属代理或者外部代理收到移动节点的请求消息后,都会立即给予回复,向该移动节点发送代理通告消息。
移动节点决定连接到外部网络,则需要获得一个转交地址。有两种转交地址:一种是外部代理的转交地址,即移动节点正在访问的外部网络的一个接口,也可以认为是外部代理的IP地址;另一种是collocated转交地址,即临时分配给移动节点端口上的IP地址。外部代理的转交地址可以被多个移动节点所共享,而collocated转交地址仅限于一个移动节点在一段时间内单独使用。
当移动节点检测出自己的接入点地址改变,或者注册时间即将过期,都需要向代理注册。
2.2 注册
移动IP的注册过程就是移动节点告知归属代理自己目前的接入点转交地址,并通知外部代理自己正在对其进行访问。移动节点、外部代理和归属代理之间互相交换注册消息。
2.2.1 两种注册方法
移动节点可以通过外部代理向归属代理进行注册,也可以直接向归属代理进行注册。这两种注册程序都会使用注册请求消息和注册回复消息。
通过外部代理进行注册,移动节点会向每一个可能需要的外部代理发送注册请求消息,开始注册过程;外部代理处理这些注册请求消息,然后将它们转发给归属代理;归属代理给外部代理发送注册回复消息,接受或者拒绝移动节点的注册请求;外部代理处理这些注册回复,然后将它们转发给移动节点。
移动节点直接向归属代理注册时,直接向归属代理发送注册请求消息;归属代理给移动节点发送注册回复消息,接受或者拒绝移动节点的注册请求。
2.2.2 注册请求中的认证问题
注册请求消息使用一些参数和标记来表征归属代理和转交地址之间的隧道的特征。当归属代理接受了移动节点的注册请求后,会将归属代理和移动节点所在位置的转交地址相关联。在整个注册生命期内,都会一直保持这个关联。归属代理会根据关联生成移动节点的绑定,该绑定是包含了归属地址、转交地址和注册生命期的一个三元组元素。
移动IP中对注册信息的认证是十分重要的,可以防止恶意的转交地址对归属代理的路由表进行攻击。每一个移动节点和归属代理必须共享一个安全关联,它们能够用具有128bit密钥的MD5算法为注册请求消息创建一个不可伪造的数字签名,每个注册请求消息中的MD5 hash都不相同。如果在不同的注册请求消息中出现相同的MD5 hash,则可能出现回放攻击(Replay Attack)。恶意的节点能够在归属代理的回复信息中记录有效的注册信息,通过回放攻击可以有效破坏稍后归属代理向移动节点当前的转交地址建立隧道的活动。为避免这种攻击,移动IP在注册消息中设置了一个特殊的标识字段,这样,每一条新的注册消息都会改变一次标识字段中的内容。在移动IP中使用两种方法来保证标识字段的唯一性:一种方法是使用时间戳来区别以前的注册消息;另一种方法是将标识变成一个伪随机数。通过使用大量的随机比特,两个独立的标识字段的数值是不可能一样的,这样就保证了标识的唯一性。当使用随机数方法时,移动IP定义了一种在标识字段中32bit随机数的方法,可以保护注册请求消息和注册回复消息。往往因为移动节点与归属代理之间距离太远不能同步而不能使用时间戳,或者它们丢失了预期要收到的随机数的track的时候,归属代理都会拒收注册请求消息,并且在回复消息中要求重新同步。使用随机数字与使用随机数相比,可以避免在NTP协议上被攻击,即不会丢失移动节点与归属代理之间的时间同步,也不会引发已被认证的注册请求消息被恶意节点使用,破坏以后的注册问题。
外部代理使用标识字段,将等待处理的注册请求消息与注册回复消息进行匹配,然后将归属代理回复的注册回复消息转发给移动节点。外部代理会存储等待处理的注册请求消息的信息,包括移动节点的归属地址、移动节点的MAC地址、源端口号和移动节点提议的注册生命期。外部代理能够将生命期限制为一个可配置的数值,并在代理通告消息中发送。归属代理能够通过在注册回复消息中设置,缩短生命期的时间,但不能进行延长生命期的操作。
移动节点会在生存时间过期前重新注册。归属代理和外部代理更新移动绑定。如果注册请求由于时间不匹配被拒绝,归属代理会为移动节点同步发送时间戳,移动节点会在以后的注册请求中调整时间戳。
2.2.3 自动发现归属代理机制
移动IP中,移动节点如果不能连接到它的归属代理,则可以通过自动发现归属代理机制向归属网络中未知的归属代理进行注册。移动节点使用自动发现归属代理机制时,使用广播IP地址作为目的地址发送注册请求消息。当广播分组到达归属网络时,网络中的归属代理都会向移动节点发送一条拒绝提示消息,在拒绝消息中会包含归属代理自己的IP地址,这样移动节点就可以尝试向归属代理发送新的注册消息(此处的广播与因特网范围内的广播概念不同,它仅指向归属网络内的IP节点发送的定向广播)。
2.3 建立隧道
移动节点给它的通信节点发送分组时使用归属IP地址作为源地址,这样移动节点仿佛始终连接在归属网络中。即使移动节点漫游到外部网络,通信节点仍然不会意识到它的移动。
以移动节点为目的地址的数据分组首先会到达归属网络,由归属网络中的归属代理截获,然后将这些数据分组用隧道方式传送到移动节点所在接入点的转交地址。建立隧道有两个主要功能:在隧道起始处,对发送到隧道末梢端点的数据进行封装;在隧道终结处,对已到达隧道末梢端点的数据进行解封装。缺省的隧道模式是在IP in IP封装模式,可选的封装技术有:GRE技术和在IP内的最小封装。移动节点发送至通信节点的分组,首先会发送到外部代理,然后由外部代理将这些分组发送至最终的目的地址,即通信节点处。
通信过程见图 4。从图4,我们可以看到所有发往移动节点的分组均会通过归属代理进行转发,这样必然会引起不必要的网络负荷与分组传递时延,而且一旦归属网络或者归属代理发生故障,都会影响移动节点的通信,这就是“三角路由”问题。为了解决三角路由问题,IETF又提出了路由优化解决方案,详见draft-ietf-mobileip-optim-12。
在可兼容的移动IPv4扩展中,允许通信节点通过绑定缓存(Binding Cache)学习移动节点当前的位置,然后将分组直接用隧道的方式传送到移动节点。但是,移动节点再次移动后,绑定缓存就会过期,因此就需要在每次使用绑定缓存之前对它进行动态更新。路由优化中的认证问题要比在基本协议中更为困难。
3 移动IP技术的应用
移动IP可以为实现网络移动性提供一种可延展的、透明的、安全的解决方案。在动态主机分配协议(Dynamic Host Configuration Protocol)中,当节点的位置发生变化时,必须停止当前的IP连接,而后再重新启动一个新的IP连接。而移动用户能够在漫游,甚至是在穿越网络的时候都能够保持相同的IP地址,这样就能够始终保持一个IP连接。正是因为移动IP技术具有这个重要的特点,它可以协调一些应用技术(如VoIP技术和流媒体技术等)在用户移动过程中以及位置改变时与IP设备之间出现的问题。
目前移动IP技术可以应用在以下几个方面:
·能够进行无缝移动,使移动设备看起来像永远在线。移动设备在校园或者小区内的不同建筑物或者不同楼层之间移动时,在不同的运营商网络之间移动时,都可以通过使用目前已有的技术(如CDMA和IEEE 802.11系列)进行无缝移动。
· 能够对无线通信中的远程通信收敛。能够允许穿越不同类型的无线技术和不同特点的链路时无缝地运行各种应用程序。例如,能够使用户在乘坐飞机、火车以及航海的旅程中移动设备始终保持在线。
· 还可以应用在一些紧急任务中,如在救护车,警车中安装IP设备,他们可以在移动过程中始终保持与网络的联系,这样能够更为有利地指挥调配这些车辆。
----《中国数据通信》