移动IP
1、为什么需要移动IP
在讨论为什么需要移动IP以前,先对现有的路由技术在相关方面作简要的介绍:
a. 各个节点只根据IP报头中的目的IP地址来作转发决策,只在有错误发生时才去检查源地址;
b. 一般来说,路由决策依赖于目的IP地址的网络前缀而不是整个目的地址;
c. 同一条链路上的所有节点都应有相同的网络前缀,它们可以通过IP地址中的主机部分来识别;
d. 对于同一条链路上的多台主机,可以只用一条网络前缀路由,而无需列出所有的特定主机路由,对于有几百条链路,每条链路上又有几百台主机的网络来说,采用网络前缀路由而不是特定主机路由可以极大地简化路由表的表项。
在上述路由机制下,因特网上的一个节点在改变了其在网络上的接入点以后,如果不重新配置其IP地址,那么它就不能继续与网上的其它节点进行通信,移动IP就是为解决这个问题而提出的。
2.什么是移动IP
简单来说,移动IP提供了一种IP路由机制,使移动节点可以以一个永久的I P地址连接到任何链路上。移动IP可以看作是一个路由协议,只是与其它路由协议相比,移动IP具有特殊的功能,它的目的是将数据包路由到那些可能一直在快速地改变位置的移动节点上。移动IP只是将数据包路由到移动节点的网络层标准,对TCP等其他技术以及应用程序的改进则不是移动IP的范畴。
设计移动IP时有以下几个要求:
a. 移动节点在改变数据链路层的接入点后应仍能与因特网上的其他节点通信;
b. 无论移动节点连接哪个数据链路层接入点,它应仍能用原来的IP地址进行通信;
c. 移动节点应能与不具备移动IP功能的计算机通信;
d. 移动节点不应比因特网上的其他节点面临新的或更多的安全威胁。
3.移动IPv6机制
下面先从一个整体的角度介绍一下IPv6对移动性问题的解决方案。参见图1,Node A链接到Link 1上,它有一个地址A1,这个地址A1是可以通过Router 1到达的,当Node A没有发生移动时,Node B与Node A通信时,Node B发送的数据包会按照现有的路由方式到达Node A。
可是当Node A发生了移动,从Link 1移动到Link 2时,如果Node A不改变其IP地址,Node B发送的数据包按照现有的以前缀为基础的路由方式就不能够到达Node A了。
1).Router会定期广播发送Router Advertisement消息,带有本地链路上的前缀信息,Node A接收到这个消息后,知道自己发生了移动,它会根据新的前缀信息通过地址自动配置得到一个新的地址A2;
2).Node A会发送一个信息包M2给Router 1,这个信息包告诉Router 1现在Node A的新地址A2,此后,Router 1再发现有需要送到Node A的原来的地址A1的数据包,它会把这个数据包截获,然后把这个包作为净荷,在其上面再加上一层IPv6报头,把新的数据包发送到Node A的新地址A2,这个过程应用的是“隧道技术”;
3).假如Node B发送数据包给Node A,它并不知道Node A已经发生了移动,此时它会把这个数据包继续发送给Node A原来的地址A1;
4).Node B发送的数据包到达Router 1以后,Router 1会截获这个数据包,同时把这个数据包转发到Node A的新地址A2;
5).Node A收到Router 1转发过来的数据包以后,通过检查这个数据包的源地址,它知道Node B想与它进行通信,于是它会发送一个信息包M3给Node B,告诉自己的新地址A2;
6).Node B收到这个数据包以后,会记录下Node A的新地址A2,这样如果再有数据包需要发给Node A,它会直接把数据包发给地址A2。至此Node A和Node B之间可以实现双向通信;
7).若有其余节点想与Node A进行通信,其建立通信的过程与Node B类似。
4.移动IPv6与移动IPv4的比较
互联网发展的最初动力是实现计算机之间的信息共享,那时没有考虑到会有对移动性的需求,作为互联网基础的IPv4在制订之初并没有考虑到要解决移动性问题。随着社会的发展,互联网的应用越来越广泛,人们提出了许多新的需求,对移动性的需求就是其中的一种。在移动性方面,IPv4提出的是一种补救性的措施,因此它的方案有很多不完善的地方,主要表现在以下几个方面:
a. 在移动IPv4中,存在一个外地代理的概念,它实际上是外地链路上的一个路由器,由它来为移动到本链路的移动节点接收数据包;
b. 在移动IPv4中,有两种转交地址:配置转交地址和代理转交地址。其中,配置转交地址通过配置规程如DHCP、BOOTP等协议得到,它是一个真正的独立的IPv4地址,此时移动节点可以自己用此地址发送或者接受数据包;代理转交地址实际上就是外地代理的地址,外地代理代替移动节点接收数据包,简单处理后,再把包传送给移动节点;
c. 移动IPv4中存在着“三边路由”问题。由通信节点送给连接在外地链路上的移动节点的数据包先被路由到它的家乡代理上,然后经隧道送到移动节点的转交地址,然而,由移动节点发出的数据包却被直接路由到了通信节点,这构成了一个三角形,如图3所示。在安全性方面,移动IPv4采用的是静态配置的“mobile security association”,因此不能对移动IPv6进行路由优化。
5.为什么IPv6能够更好地解决移动性问题
IPv6在制定之初就考虑到了要解决移动性问题,因此它的基本理论中就有许多是为解决移动问题而提出的,这使得IPv6的移动解决方案是一个对移动性问题的根本的解决方案。IPv6有许多适用于解决移动性问题的新特性,这些特性都是IPv4所不具备的,因此IPv6能够更好地解决移动性问题,主要表现在以下方面:
a. 地址自动配置:IPv6有足够多的全球地址,另外IPv6实现了一种称为无状态地址自动配置的机制,任意节点可以根据当前所在链路的前缀信息以及自己的网络接口信息自动生成一个全球地址。IPv6的地址自动配置机制使得移动节点可以很容易地得到转交地址,不需要人为的参与。
b. 邻居发现:在邻居发现中规定,路由器应该定期广播发送其前缀信息,移动节点根据这些前缀信息能够快速地判断自己是否发生了移动,并通过地址自动配置得到转交地址;邻居发现中还定义了代理宣告的概念,“proxy advertisement”,使得home agent可以通过发送代理邻居宣告消息截获发送到移动节点家乡地址的数据包,并把这个包“tunnel”到移动节点的转交地址。
c. 安全机制:IPv6内置安全机制并已经标准化,它支持对企业网的无缝远程访问。在安全性方面,IPv6同IP安全性(IPSec)机制和服务一致。除了必须提供网络层安全这一强制性机制外,IPSec还提供两种服务。认证报头(Authentication Header, AH)用于保证数据的一执行,同时还可以用之进行身份验证,而封装的安全负载报头(Encapsulation Security Payload Header, ESP)用于保证数据的保密性和数据的一致性。同时由于IPv6的新特性,也可以为移动IPv6专门设计安全机制。
d. 黑洞检测:移动IPv6中的移动检测机制提供了移动节点和它的当前路由器之间的双向可到达的确认机制,即移动节点可以随时知道当前路由器是否继续可达,同时路由器也可以知道节点是否继续可达。如果移动节点检测到当前路由器不再可用,它就会去请求另外一台路由器。而Mobile IPv4只提供了“前向”可到达的检测机制,即路由器可以随时确认移动节点是否继续可达,但是移动节点却不能检测到路由器是否继续可达。
e. 路由报头:IPv6中定义了路由报头,报头中指定了数据包在从源节点到目的节点的过程中应该经过的节点的地址。大多数发送到移动节点的数据包都要使用路由报头,数据包的目的地址是移动节点的转交地址,并且包含一个路由报头,路由报头的下一跳是这个移动节点的家乡地址。
f. 动态家乡代理地址发现机制:在IPv6中,定义了一种称为“anycast”的地址,它也是一个地址组,地址组中的所有的机器都会收到发往这个“anycast”地址的数据包,但是只会有一台机器对这个数据包做出响应。移动节点家乡链路上所有的路由器都配置为“Mobile-IPv6 anycast address”,移动节点把“家乡代理地址发现清求” 消息发到这个“Mobile-IPv6 anycast address”,所有的家乡代理都收到了这条消息,但是有且仅有一个家乡代理对此做出响应。
g. 透明性的实现:节点的移动对移动节点和通信节点上的应用程序是透明的。对于通信节点来说,移动节点发送数据包时使用“home address option”,可以使其不必知道移动节点的转交地址;对于移动节点上的应用程序来说,通信节点发送数据包时采用“Router Header”,仍旧可以使应用程序不必知道移动节点的转交地址。
6.有待解决的问题
移动IPv6的发展还处在初级阶段,目前提出来的还只是移动解决方案的基础理论,移动IPv6的最终目标是实现全球范围的真正的移动网络,它会满足移动计算和个人通信的所有要求。
要真正实现全球范围内移动网络,还需要完成以下几个方面的工作:
1).在协议的发展方面,还需要进一步完善一下几个协议
IPv6协议;
Mobile IPv6协议;
IPSec协议;
SCTP;
Diameter
2).在协议的改进方面,需要研究以下几个问题:
a. 服务质量,包括差分服务质量和端到端服务质量的支持
b. 增强TCP协议,以支持移动IP
TCP假设所有的数据段丢失都是由于拥塞引起的,这种假设在因特网中大多数情况下是正确的,但在无线和移动环境中这个假设却不成立,在这种环境中,TCP的这个假设使得TCP性能变得很差。在这些背景之下,有人提出了对TCP改进的方案,