移动IP技术
发布时间:2006-10-14 4:06:36   收集提供:gaoqian
常新杰


引言

  移动IP是近年来的一个通讯技术热点,其关键点在于用户终端在移动过程中仍旧可以使用同一个IP地址而无须更改,这对某些应用而言是至关重要的。这里需要澄清的一个概念是,并非所有的移动通讯应用都需要支持移动IP。例如,在一个局域网内,用户可以通过Windows NT的ipconfig /release 与ipconfig /renew 命令来配置DHCP地址方案,从而实现笔记本电脑在网内的自由移动,这对大多数情况而言已足够了。

  比较起来,基于DHCP配置的方式可以被看作是“拉”(PULL)的工作方式。用户从个人电脑上启动电子邮件客户程序,并通过POP,IMAP或其它协议连接到邮件网关来下载邮件。或者,用户在手机上进行必要的操作以查看语音信箱的内容。我们已经非常熟悉这一工作方式,并且它也满足了我们大部分的日常要求。然而,这里的一个缺陷在于,用户必须启动相应的客户程序来得到服务。但是,如果用户希望在必要的时候得到服务器方的通知,则需要“推”(PUSH)的工作方式,即服务器方可以主动将有关信息发布到用户方。而为了保证“推”(PUSH)方式的正常实施,就需要可移动终端的IP地址保持不变。

本地可移动性方案(Local Area Mobility--LAM)

  LAM的实现主要是利用了主机路由(host routes)与ARP技术,如图1中所示。This obviously is a technique that doesn't scale well (add an "E" and it becomes LAME?). Contrary to the rumor I'm starting right now, it was not invented by Cabletron. However, from what I've heard, SecureFast "Routing" is based on a somewhat similar idea: tracking IP hosts and doing proxy ARP.



  LAM的工作原理如下。移动终端(或称主机)最初时通过一个局域网路由器连接到一个本地子网。这时,移动终端被分配有一个IP地址并通过局域网路由器进行正常的网络通讯。我们将这一局域网路由器称为本地路由器(home router)。

  当终端需要移动时,它将会被连接到一个不同的子网,称为远程子网(remote subnet)。这里,移动终端也需要通过远程子网的一个路由器来保持通讯接入,这个路由器被称为远程路由器(remote router)。远程路由器通过ARP协议检测到新连接的移动终端,并为其广播一个主机路由。同时,移动终端也发送ARP请求来获得其缺省网关的地址。因为我们在本地路由器与远程路由器上启动了代理(proxy) ARP,因此,/32的主机路由将引起本地路由器代表移动终端回应ARP请求。这样,目的地址为移动终端IP地址的数据包将首先被发送到移动终端的本地路由器,然后再从那里按照主机路由经过远程路由器转发到移动终端。

  总结起来,LAM的实现一方面需要在本地路由器和远程路由器上启动代理ARP,另一方面也需要远程路由器为移动终端创建并广播一个主机路由。在CISCO路由器上,代理ARP是缺省启动的,这省去了手工配置的需要。而ip mobile arp这一接口命令则负责启动主机路由的功能。具体的命令格式为: [no] ip mobile arp [timers keepalive hold-time] [access-group access-list-number | name] 这里,timers关键字用于表示命令中需要设置计时器,Keepalive 则是ARP消息之间的间隔时间(以秒为单位,缺省为300秒);Hold-time 则定义了即使是没有收到KEEPALIVE消息时,仍认为ARP有效的时间长度,一般为keepalive时间的3倍。访问控制列表则用于定义哪一个IP地址可以作为LAM中的移动终端。这一功能适用于大型的网络以免错误配置的IP地址影响网络性能。另外,如果网络中使用了DHCP,则需要设置一个IP地址池允许LAM,而另外一个地址池则不允许LAM。

  最后,LAM路由信息还需要被重发布(redistribute)到子网中运行的路由协议中,目前支持主机路由的协议包括EIGRP, OSPF和IS-IS。

LAM的配置举例如下:

bridge 1 protocol ieee

access-list 10 permit 192.100.100.55

interface ethernet 0

ip mobile arp access-group 10

bridge-group 1

router eigrp 100

redistribute mobile metric 10 2000 255 1 1500

完全可移动性方案

  这一方案的原理如图2所示。这里同样定义了本地子网与远程子网,而本地路由器又称为本地代理(home agent),远程路由器则称为外地代理(foreign agent)。



  与移动终端通讯的主机称为通讯主机(correspondent node)。通讯主机通过正常的路由将数据包发网移动终端。当数据包到达本地代理时,本地代理将查询移动主机是否仍在本地子网。如果在,则本地代理通过正常的ARP获移动终端的MAC地址然后通过本地局域网将数据包转发到移动终端。

  当移动终端不在本地子网中,它则需要联系移动终端所处远程子网的外地代理,并共同向本地代理进行注册。这一过程主要是为了通知本地代理目前移动终端已不在本地子网内,并向本地代理通知一个转发地址(Care-of Address)。转发地址是外地代理上的一个接口地址,本地代理可以通过将数据包发送到转发地址而最终达到移动终端。这就好象一个人出门访问朋友时,他的信件可以被转发到朋友处一样。

  本地代理利用转发地址建立一个到外地代理的IP数据隧道(tunnel),并将相应的数据包发送到隧道中。本地代理在收到数据包后,查找自身的ARP信息表以得到移动终端的MAC地址,从而可以进一步将数据包发送给移动终端。在必要时,一个隧道还可以同时支持多个移动终端的数据传输需求。当移动终端需要向通讯主机回送数据包时,则只需通过正常的路由经外地代理发回到通讯主机。

  总结下来,移动IP的实施需要三个方面的支持:首先,移动终端上需要有支持移动IP的相关协议栈;需要为每一个移动终端设置本地代理;需要为其配置外地代理。下面我们给出一些相关的配置举例。

本地代理配置

interface ethernet0
ip address 192.16.100.1 255.255.255.0
!
router eigrp 100
network 192.16.100.0
redistribute mobile
!
! 注释 启动移动IP 支持
router mobile
!
! 定义一个虚拟网络10.0.0.0
ip mobile network 10.0.0.0 255.0.0.0
!
! 定义虚拟网络上的主机及转发地址访问控制列表
ip mobile host 10.0.0.1 10.0.0.5 virtual-network 10.0.0.0 255.0.0.0 care-of-access 2
!
ip mobile host 192.16.100.51 192.16.100.55 interface Ethernet0 lifetime 3600
!
! 虚拟网络10.0.0.0上的安全性设置
ip mobile secure host 10.0.0.1 spi 100 key secret1
...
ip mobile secure host 10.0.0.5 spi 200 key secret5
!
! Ethernet0 接口上的安全性设置
ip mobile secure host 192.16.100.51 spi a1 key sanfran1
...
ip mobile secure host 192.16.100.55 spi a1 key sanfran5
!
! 定义访问控制列表
access-list 2 deny 13.0.0.0
access-list 2 permit any
router mobile命令用于启动移动IP支持,ip mobile network 定义了一个虚拟网络,而redistribute mobile命令则定义了虚拟网络的重分布。虚拟网络可以允许本地路由器支持一个总是处于外地子网的移动终端。路由重发布将使得通讯主机首先将目的为移动终端的数据包发往本地代理。

  接下来,ip mobile host ... virtual network 命令指明了虚拟网络上所包含的移动终端地址。在这里,我们利用care-of-access选项来通过访问控制列表定义移动终端可以利用哪些地址。

外地代理配置

interface Ethernet0
ip address 192.16.150.17 255.255.255.252
!
interface Ethernet1
ip address 192.16.200.1 255.255.255.0
ip irdp
ip irdp maxadvertinterval 10
ip irdp minadvertinterval 7
ip mobile foreign-service
ip mobile registration-lifetime 3600
!
router mobile
!
ip mobile foreign-agent care-of Ethernet0
  同样,router mobile 命令用于启动移动IP支持,ip mobile foreign-agent care-of command 指定从哪个接口得到转发地址,ip mobile foreign-service接口命令使得路由器对外宣布自己将作为一个外地代理工作,这是通过CISCO的IRDP (ICMP Router Discovery Protocol)协议完成的。

  另外,下面还列出了一些可用于监测和调试移动IP的命令,具体的命令格式与说明请参见CISCO的相关手册。

show ip mobile globals
show ip mobile host [addr | interface int | network addr | group]
show ip mobile interface [interface]
show ip mobile secure {host | visitor | foreign-agent | home-agent} address
show ip mobile binding
show ip mobile traffic
show ip mobile tunnel [interface]
show ip mobile violation [address]
show ip mobile visitor [pending] [address]
show ip route mobile
clear ip mobile traffic
clear ip mobile binding ! (CAUTION: can break sessions)
clear ip mobile secure ! (CAUTION: can break sessions)
clear ip mobile visitor ! (CAUTION: can break sessions)
debug ip mobile advertise
debug ip mobile host
至此,我们介绍了移动IP的基本概念以及两种实现手段。


未经授权 不得转载
 
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