移动
MIP(Mobile Instant Pages - 移动网页加速器)所指的移动是用户IP连接位置的改变,而不是单纯指设备物理位置的改变,因此MIP不在由传统路由协议所确定的原始位置。移动可以是离散的,或是连续的。
概念
移动IP技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。 使用移动IP,一个移动节点可以在不改变其IP地址的情况下改变其驻留地址。
名词介绍:
CN :correspondent node 通信节点 好比你的老朋友
MN :mobile node 移动节点 好比你本人
FA :foreign agent 外地代理 好比你临时租的房子
HA :home agent 本地代理 好比你的父母家
COA :care of address 转交地址 好比你租的房子的门牌号
移动结点(MN):具有永久IP地址的移动设备。
归属代理(本地代理HA):一个移动结点拥有的就“居所”称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。
外部代理(外地代理FA):在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。
永久地址(归属地址/主地址):移动站点在归属网络中的原始地址。
转交地址(辅地址COA):移动站点在外部网络使用的临时地址。
移动IP中一个移动主机有两个地址:一个归属地址和一个转交地址。归属地址是永久的;转交地址随着移动主机从一个网络移动到另一个网络而改变。
移动IP的基本要求
• IP地址不变:移动节点在改变其链路层附接点之后,不需要改变原来的IP地址,仍然可以保持原有的通信活动,而且这种附接位置的变化对网络的其它节点没有影响
• 宿地址路由:报文是基于宿地址进行路由的,即不使用源路由机制
• 信息量和交互简化:由于无线信道的带宽和传输质量限制,另外考虑移动节点的能源限制,移动IP机制的控制交互(信息量和交互次数)应尽可能简化
• 安全性:不削弱目前的IP安全性;要保证不管节点是否在移动,发往这个IP地址的报文一定能够到达指定的节点,同时还能防止攻击者冒充这个节点的IP地址
• 组播:具有组播通信的能力
• 隐蔽:能够实现位置的隐蔽性,即在进行移动通信的同时隐藏自己的当前位置(IP地址)
移动IP的工作原理:①代理发现;②转交地址注册和取消注册;③数据收发
代理发现:移动主机必须在它离开其归属网络前发现归属代理。移动主机必须在它移动到外地网络后也发现外地代理。
代理发现完成以下三步:
①判断移动节点所处位置是本地链路还是外部链路;
②检测移动节点是否从一个链路移动到了另一个链路;
③确定移动节点处于外部链路时,获取一个转交地址
ICMP Internet control message protocol TCP/IP网络中转发数据的保证机制
IRDP ICMP Router Discovery Protocol 让主机发现当前转发的Router,利用此功能作为代理发现机制
消息类型包括代理广播消息和代理请求消息,代理广播消息是HA或FA周期性的发送广播,并含有自身参数,手机被动接受;请求代理是手机主动发送请求,这时其所在地的FA或HA要及时给予广播回应。
• 要求本地代理必须总能够为属于自己的移动节点提供服务,而外部代理允许在繁忙的时候限制服务的移动节点数量;移动节点将从代理通告中获得的代理地址记录在自己的合法代理列表中,并从中选择使用。
• 若移动节点没有收到代理通告或转交地址尚未确定,则需要发送代理请求。最初的三个代理请求可以是1次/秒,以后要使用二进制指数退避算法来延长发送间隔,直至达到最大间隔(至少为1分钟) 。当移动节点发现自己移到一个新代理的管辖范围时,要增加请求的频度。
注册:移动主机移动到一个外地网络并发现外地代理之后,它必须注册。
1、使移动节点将自己当前的可达性信息通知本地代理
2、通过注册,移动节点将在本地代理的注册表中创建一个本地地址与转交地址的移动绑定,它具有指定的生存期
3、移动节点如果使用外部代理转交地址,则需要通过该代理进行注册
4、移动节点要定期向本地代理进行重复注册,以维持移动绑定的生存期
取消注册:当发生以下情况时,移动节点会请求本地代理取消注册信息
①移动节点回到本地链路;
②移动节点取消某个转交地址的注册而不影响其他转交地址的注册(比如到达了另一个外地链路)
请求和应答:为了在外地代理和归属代理上注册,移动主机使用注册请求和注册应答。
移动节点的单播路由:如果移动节点使用外部代理转交地址进行注册,它可以使用这个外部代理作为缺省路由器,其链路地址可从代理通告中获得。如果移动节点使用配置转交地址进行注册,则它要从其获得转交地址的链路来的ICMP路由器通告报文中选择缺省路由器。要求缺省路由器的网络前缀与转交地址的网络前缀是一样的,网络前缀可以从可能存在的路由器通告的前缀长度扩展中获得,也可以通过其它方式获得。
外部代理的单播路由:在收到封装报文后,外部代理要检查报文的内层宿地址与访问者表的匹配情况。如果没有匹配发现,则要丢弃这个报文。若发现匹配,则外部代理将这个报文拆封后转发给对应的移动节点。外部代理不能将移动路由器和移动节点的情况向其它路由器通告,即移动节点不影响正常的路由。外部代理对从移动节点收到的报文则作正常的路由和转发处理。外部网络的节点不能直接与移动节点通信,因此外部代理不能使用广播ARP来寻找移动节点的MAC地址,只能通过移动节点发出的代理请求或注册请求报文来获得。因此,外部代理ARP快表中移动节点的项不能按正常方式超时,必须与访问者表同步。
本地代理的单播路由:本地代理必须检查所有到达报文的IP宿地址,看其是否与某个注册过的移动节点的本地地址相同。若有匹配,则要按相应的转交地址通过隧道进行转发。代理应当支持"隧道软状态”机制,使得ICMP差错信息能够正确地返回封装报文的原始发送者。对于存在多归路的本地代理,封装报文外层IP报头的源地址必须是移动节点在注册请求的本地代理字段使用的地址,本地代理不能使用它的其它端口作为源地址。
移动节点的广播路由:本地代理收到广播报文时要转发给移动绑定中设置了B比特的移动节点。如果移动绑定中同时设置了D比特,本地代理可以直接使用转交地址将广播报文封装并转发给移动节点。如果未设置D比特,本地代理首先将这个广播报文封装成指向移动节点的本地地址,然后再用隧道将这个封装报文转发给外部代理,这样外部代理可以知道将这个广播报文转发给哪个移动节点。接收到报文的移动节点要作最后的拆封处理。
移动节点的组播路由:移动节点可有两种加入组播组的方法一移动节点可以通过所访问的外部网络的某个组播路由器加入组播组,这要求当地网络有组播路由器;移动节点使用转交地址作为其IGMP报文的源地址。如果本地代理是一个组播路由器,则移动节点也可以通过与其之间的一个双向隧道来加入组播组。移动节点通过这个隧道发送IGMP报文,本地代理通过这个隧道转发组播报文,这时移动节点发给本地代理的报文的源地址要使用自己的本地地址。组播报文转发给移动节点的方式依赖于所使用的转交地址类型,在处理上与广播报文的转发完全类似。
代理ARP:是指一个节点不能回答ARP请求时,由另一个节点代为做出ARP响应(给出代理节点的IP地址和链路地址)
无端ARP:主机有时会使用自己的IP地址作为目标地址发送ARP请求。如果收到ARP响应表明存在重复地址,当一个设备收到一个ARP请求时,发现ARP缓冲区中已有发送者的IP地址,则更新此IP地址的MAC地址条目。因为它不是经过其他主机的ARP请求广播后发出的ARP广播,所以叫无端ARP
移动节点在外部网络时的ARP处理:在发送注册请求前,除了与外部代理的通信外,移动节点关闭对ARP请求的处理。移动节点的本地代理接受移动节点的注册后,它要执行无端ARP广播以通知所有的本地节点,并启动代理ARP功能回答所有对这个移动节点的ARP请求
移动节点回到本地网络后的ARP处理:在发送注册请求前,移动节点首先恢复ARP请求的处理功能,移动节点进行无端ARP广播,更新网络各节点的ARP快表。移动节点的本地代理接受了该注册之后,它应该停止为这个移动节点发送代理ARP报文,并执行一个无端ARP广播以更新网络节点的ARP快表。
反向隧道
问题引入:若路由器实施源地址过滤,则要求传输中的IP报文的源宿地址在拓扑上是正确的,即源地址一定属于报文出发的子网。在使用外部代理转交地址的情况下,移动节点发出IP报文的源地址是自己的本地地址,与上述要求有矛盾,因此需要使用反向隧道。
反向隧道的起点是移动节点的转交地址,终点是本地代理。报文由外部代理进行封装之后传送至本地网络,再汇入正常的路由。移动节点到达外部网络后,要从代理通告中选择使用支持反向隧道的外部代理,并通过注册过程向外部代理请求反向隧道服务。在直接递交方式下,移动节点将外部代理指定为自己的缺省路由器,并将发出的报文不经封装地直接交给外部代理,由后者通过隧道转交给本地代理。在封装递交方式下,移动节点将所有发给外部代理的IP报文封装起来,外部代理需要首先将这些报文拆封,然后再通过隧道转发给本地代理(例如在组播和广播的情况下)。
全异地址空间支持(Disparate Addresss Space Support)
移动节点可能会进入其本地地址不可达的外部网络(即无法和原来的本地主机通信);而反向隧道的前提是外部代理和本地代理必须处在同一个地址空间中,才能彼此可达。
有限私有地址场景(Limited Private Addresss Scenario)
两个移动节点使用相同的私有地址且访问同一个外部代理,但它们的本地代理必须是不一样的。外部代理通过不同的链路地址(即不同的MAC地址)区分这两个移动节点,并将它们的报文转发给各自的本地代理,本地地址对于外部代理是无意义的。
路由优化
• 路由优化的目的是改进正常的移动IP机制所产生的三角路由现象:①允许网络节点将移动节点的绑定缓存下来,直接转发给其转交地址,旁路掉本地代理②将基于过时的绑定内容的报文按新的转交地址进行转发。
• 支持路由优化的节点要维持一个绑定快表,记录收到的绑定内容。发送报文时要检查绑定快表,如发现报文宿地址与绑定快表中的本地地址匹配,则将报文宿地址改为对应的转交地址。
• 如果本地代理拦截到某个源点发往移动节点的报文,表明该节点没有这个移动节点的移动绑定信息。于是本地代理将向这个节点发送一个绑定更新报文,以便让随后的报文直接发往移动节点的当前网络。
移动节点的快速切换
• 切换的延迟问题:移动节点只能与直接相连的外部代理通信(L2切换),注册请求在网络中传输需要一定的时间,而在此期间移动节点不能发送和接收报文
• 改进方案:移动节点要在完成L2切换之前在新外部代理预先建立地址注册状态,网络在处理切换过程中不中断服务(前注册、后注册)
前注册切换:为加速切换过程,原外部代理可以预先定期请求并缓存从各个新外部代理发来的通告信息,构成一张邻接表。
后注册切换:该过程不涉及到移动节点。
移动IPv6过程
假设:①NodeA原先在Link1上,然后Link1直连Router1;②现在NodeA移动到了Link2上,与Link2直连的是Router2;③存在另一个节点NodeB想发送消息给NodeA,位于Link3,与Link3直连的是Router3。
流程:
• Router2会定期广播发送RouterAdvertisement消息,带有本地链路上的前缀信息,NodeA接收到这个消息后,知道自己发生了移动,它会根据新的前缀信息通过地址自动配置得到一个新的地址A2;
• NodeA会发送一个信息包M2给Router1,这个信息包告诉Router1现在NodeA的新地址A2,此后,Router1再发现有需要送到NodeA的原来的地址A1的数据包,它会把这个数据包截获,然后把这个包作为净荷,在其上面再加上一层IPv6报头,把新的数据包发送到NodeA的新地址A2,这个过程应用的是“隧道技术”;
• 假如NodeB发送数据包给NodeA,它并不知道NodeA已经发生了移动,此时它会把这个数据包继续发送给NodeA原来的地址A1;
• NodeB发送的数据包到达Router1以后,Router1会截获这个数据包,同时把这个数据包转发到NodeA的新地址A2;
• NodeA收到Router1转发过来的数据包以后,通过检查这个数据包的源地址,它知道NodeB想与它进行通信,于是它会发送一个信息包M3给NodeB,告诉自己的新地址A2;
• NodeB收到这个数据包以后,会记录下NodeA的新地址A2,这样如果再有数据包需要发给NodeA,它会直接把数据包发给地址A2。至此NodeA和NodeB之间可以实现双向通信;
• 若有其余节点想与NodeA进行通信,其建立通信的过程与NodeB类似。