移动IP工作原理
移动IP的核心思想是在用户终端设备在不同子网间漫游的过程中仍保持使用一个固定的IP地址。移动IP系统通常是由移动IP协议,本地代理,外地代理构成的,如图1所示。移动节点在初始时连接到一个本地网络,称为本地子网,其所连接的路由器称为本地代理。移动节点漫游到的新的子网称为外地子网,这时其连接的路由器称为外地代理。由于移动节点的IP地址未发生改变,则这一漫游过程并不会引起路由信息的更新。但是,由于移动节点已经不在物理的连接到本地代理上,则其它节点发往移动节点的数据包将只能到达本地代理而无法最终到达已在别处的移动节点。
图1 移动IP的实现机理
为此,当移动节点从本地网络漫游到一个外地子网时,将需要通过外地代理一起完成向本地代理的漫游注册。注册的结果是外地代理向本地代理通知移动节点已经漫游到外地子网,并且可以通过一个中转地址来访问。从而本地代理建立一个到中转地址的数据隧道(tunnel),将目的地址与移动节点IP地址相同的数据包发送到数据隧道上去。中转地址实际上是外地代理上与移动节点连接的接口地址。因此,当数据包到达数据隧道的终点(即外地代理)时,外地代理可以根据移动节点的MAC地址查询自身维护的ARP表,从而通过二层转发将数据包传递到移动节点。举一个日常生活中的例子,当某人出门渡假时,可以由其住在一起的父母将信件转给渡假屋的收发室,后者再转交本人。这样的好处是显而易见的,因为不需要向所有的发信人通知新的邮寄地址。
在移动IP技术方案中,其它向移动节点发送数据包的节点统称为通信节点。(Correspondent node)。通信节点并不需要知道移动节点的漫游信息,而只需将数据包发往移动节点所属的本地代理。本地代理再通过隧道转发数据包到移动节点。从移动节点向通信节点的回复可以通过外地代理按照正常的路由寻址来实现,除非启用了“反向隧道”(reverse tunneling,这意味着回送数据包将从外地代理经过本地代理到达通信节点)。
为了实现上述的工作原理,首先需要在移动节点上安装支持移动IP功能的协议栈,从而移动节点可以发起漫游注册。简单说来,这其实是通过移动节点与外地代理间的MAC地址“欺骗”来完成的。对于从移动节点发出的数据包,移动节点动态地将外地代理设置为缺省网关,即使它们并使用同一个子网地址空间。对于数据包接收的情况,外地代理通过ARP代理功能和主机路由来强制接收并转发目的地址为移动节点地址的数据包。
移动IP适用与许多应用场合,比如,在基于IP技术的移动通讯电话网络中,IP电话的号码通常总是与IP地址紧密相关的。当用户带着移动电话从一个城市到达另一城市时,并不希望因为必须更改IP地址而改用新的电话号码。又比如,假设一个无线局域网用户正在其笔记本电脑上利用FTP协议进行文件传输,而此时又需要带着电脑走到大楼另外一层的办公室(通常这意味着通过另外一个局域网接入)。虽然WLAN技术可以保证物理的连接不被中断,但如果需要配置一个新的IP地址,则必须中断进行中的文件传输而重新下载。移动IP技术则可以很好的解决这些问题。
移动路由器
前面介绍了移动IP的基本工作原理,同时我们提到,移动性的实现不仅需要本地代理与外地代理,同时还需要在移动节点上的协议支持。这一方案在只有一个或几个移动节点的情况 并没有什么问题。但是,当同属于一个子网的多个节点需要同时漫游时,则需要为每一个节点安装移动IP协议栈,这就增加了系统管理的复杂性。为此,移动路由器的引入就显得相当必要了。通过移动路由器,子网中的节点无须任何改变就可以实现任意漫游。
这里,在本地子网的节点与本地代理之间加入了一个移动路由器。当子网中的多个节点漫游时,移动路由器而不是节点自身与外地代理完成向本地代理的漫游注册过程。这时,移动路由器实现象一个普通的移动节点一样进行注册,从而本地代理可以建立一个到外地代理的数据隧道,这一隧道用于数据包从本地代理通过外地代理到达移动路由器。与移动节点不同的是,这里还需要另外建立一个从本地代理到移动路由器的直接数据隧道,从而为移动路由器连接的节点进行数据传输。
换句话说,这里采用了双重隧道的嵌套技术。通信节点发往移动节点的数据包首先到达本地代理,接下来本地代理通过直接到达移动路由器的内层隧道转发数据到移动节点。值得说明的是,隧道只是一个逻辑的概念,内层隧道实质上是有外层隧道(及本地代理到外地代理间的隧道)以及外地代理到移动路由器的连接构成的。具体的工作流程如图2所示。本地代理为数据包插入两个隧道报头。外面的报头指示数据从本地代理到达外地代理,在外地代理上,外层的报头被移去,然后外地代理根据内层的报头将数据发送给移动路由器。在移动路由器上,再移去内层报头,然后根据还原的IP数据包中的目的地址信息将数据包最终发送给对应的主机。从移动子网向通信节点发送的数据包则可以经过移动路由器和外地代理而直接发送到通信节点,无须再经过本地代理。
图2中显示了这一工作流程。本地代理对外广播通过自身到达子网148.33.0.0 /16的路由信息。同时,在本地代理的路由表内建立以下几个路由表项。第一个表项标示到达148.33.0.0 /16子网需要经由移动虚拟网络172.16.2.0 /24中的移动路由器(地址为172.16.2.1)。 第二个表项则指明到达172.16.2.1的下一跳为外地代理提供的中转地址。图中的兰色线显示了移动子网中的一个节点与通信节点间的数据包流动过程。
图2 基于移动路由器的工作机理
移动路由器配置举例
下面给出了移动路由器的配置举例。具体的命令说明请参考CISCO IOS12。2的有关文献及http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122newft/122t/122t4/ftmbrout.htm#xtocid29中的有关内容。
本地代理配置
hostname HomeAgent
!
interface Loopback0
ip address 1.1.1.1 255.255.255.255
!
interface Ethernet0
ip address 172.16.100.1 255.255.255.0
!
interface Serial0
ip address 192.30.1.1 255.255.255.0
clockrate 4000000
!
router mobile
!
router eigrp 1
redistribute mobile metric 10 2000 255 1 1500
network 1.0.0.0
network 172.16.0.0
network 192.30.1.0
auto-summary
!
ip classless
ip mobile home-agent
ip mobile virtual-network 172.16.2.0 255.255.255.0
ip mobile host 172.16.2.1 virtual-network 172.16.2.0 255.255.255.0
ip mobile mobile-networks 172.16.2.1
network 148.33.0.0 255.255.0.0
ip mobile secure host 172.16.2.1 spi 100 key ascii cisco
外地代理配置
hostname ForeignAgent
!
interface Ethernet0
ip address 192.30.2.1 255.255.255.0
ip irdp
ip irdp maxadvertinterval 10
ip irdp minadvertinterval 7
ip irdp holdtime 30
ip mobile foreign-service
!
interface Ethernet1
ip address 192.30.3.1 255.255.255.0
ip irdp
ip irdp maxadvertinterval 10
ip irdp minadvertinterval 7
ip irdp holdtime 30
ip mobile foreign-service
!
interface Serial0
ip address 192.30.1.2 255.255.255.0
!
router mobile
!
router eigrp 1
network 192.30.1.0
network 192.30.2.0
network 192.30.3.0
auto-summary
!
ip classless
ip mobile foreign-agent care-of Serial0
移动路由器配置
hostname MobileRtr
!
interface Ethernet0
ip address 148.33.2.129 255.255.255.192
!
interface Ethernet1
ip address 172.16.2.1 255.255.255.252
ip mobile router-service roam
ip mobile router-service solicit
no ip route-cache
!
router mobile
!
ip classless
ip mobile secure home-agent 1.1.1.1 spi 100 key ascii cisco
ip mobile router
address 172.16.2.1 255.255.255.0
home-agent 1.1.1.1
路由器冗余
冗余是为了提高网络的可靠性,以免单个路由器的故障引起网络服务的中断。在移动IP技术中,冗余可以从多方面来实现。
移动路由器上可以同时支持多于一个的漫游接口(与移动子网连接的接口),并且可以通过设置不同的优先级别从而保证当多个接口上同时收到IRDP广播时选择合适的接口来处理相关信息。
可以设置两个外地代理来支持外地代理冗余,这样当一个外地代理失效时,移动路由器可以寻找另外一个来接替它的工作以实现移动IP。
本地代理和移动路由器都可以通过HSRP协议来实现冗余。两个并存的支持本地代理功能的路由器通过其间运行的HSRP来模拟成为一个虚拟的本地代理。其中的一个处于工作状态而另一个处于热备份状态。当工作路由器失效时,HSRP可以保证透明的自动切换到热备份路由器,从而对移动路由器和外地代理而言,本地代理保持工作的连续性。同理,移动路由器也可以利用HSRP来提高可靠性。
本文编译自 Peter J. Welcher,”Mobile Router” http://www.netcraftsmen.net/welcher .
作者介绍
常新杰,1998年毕业于西北工业大学航天工程学院,获工学硕士学位。1998至1999年在新加坡南洋理工大学网络技术研究中心从事有关无线ATM网络的拥塞控制研究。1999年后曾先后在美国堪萨斯大学信息与通讯技术中心,西南贝尔公司(SBC)从事有关ATM,IP MPLS技术的研究与开发工作。现工作于美国CHIARO网络公司,负责MPLS协议的开发,测试工作
未经授权 不得转载