网络协议分析(TCP/IP)第七章移动IP要求:1、掌握移动IP的工作模型和机制2、掌握移动IP的三项基本功能和相应报文3、了解移动IP的三种隧道技术一、移动IP特点•移动IP使得主机变换网络后,任然以原来的IP地址与Internet上的其他主机通讯,包括一下特点:•透明性:对程序、路由器等移动性是透明的,即他们不知道变换了网络。•互操作性:分配给移动主机(MH)地址与分配给固定主机的地址没有什么区别。•安全性:提供了认证机制•宏移动性:重点关注持续时间较长的移动性问题,比如携带笔记本电脑到外地出差。二、移动IP操作概述•为了提供移动性支持,移动IP允许MH同时拥有两个IP地址。–一个家乡地址固定地址主地址–一个转交地址临时地址辅地址有两种•合作定位转交地址:通过dhcp或手工分配(所有数据有MH自己处理)•外地代理转交地址:外地代理将自己的ip地址提供给MH使用(不需要为MH另外分配地址)–外地代理:外地网络中一个提供移动ip支持的路由器。–家乡代理:家乡网络中一个提供移动ip支持的路由器。•1、基本概念•MH:MobileHost,移动主机•HA:HomeAgent,家乡代理•FA:ForeignAgent,外地代理•2、MH的地址•家乡地址(主地址(primaryaddress)):在家乡网络上分配的永久固定地址,在移动过程中保留不变,并为其应用程序和其它用户所使用。•转交地址(辅地址(secondaryaddress)):随移动而改变的临时地址,对其它用户透明。3、关于辅地址(转交地址)主机移动时,辅地址作为转交地址,有两种形式:(1)合作定位转交地址(co-locatedcare-ofaddress,CLCD):通过DHCP或手工配置等方式分配给移动过来的主机MH。MH处理所有转发事宜。(2)外地代理转交地址(foreignagentcare-ofaddress,FACD):远程网上的一个代理实体把自己的地址告诉MH。4、说明:HA和FA一般是所在网络上的一台路由器。但从作用上讲,也可以用一台主机充当代理。1、HA和FA周期性组播或广播代理通告消息,宣告它们与网络的连接关系。2、MH收到代理通告后,确定自己是在家乡还是在外地。若在家乡,则不再使用移动IP。3、在外地的MH需要一个转交地址。FACD(外地代理转交地址):可以从代理通告消息中找到;CLCD(合作定位转交地址):通过配置得到4、MH向HA注册它的转交地址。5、发给MH的包:(1)截获,然后通过隧道发到转交地址。(2)在转交地址处,原数据包从隧道中取出交给MH。6、MH外出的包直接路由到目的地。三、移动IP工作机制1、代理发现2、登记注册3、数据传送•移动IP应解决的问题(一)代理发现•1、利用ICMP的路由器发现机制寻找代理•(1)判断是在家乡还是在外地。•(2)检测是否切换了网络。•(3)在外地时,得到一个转交地址。•2、代理发现报文•(1)代理恳求报文=路由器恳求报文类型(10)代码(0)校验和未使用(0)封装到IP报中时,IP首部中TTL必须为1;以广播或组播方式发送,群组地址224.0.0.2。(2)代理通告报文HA、FA周期广播路由器通告报文+移动代理扩展+前缀扩展(可选)类型(9)代码(16or0)校验和……类型(16)长度序号(0开始)Lifetime(广播频率)RBHFMGU保留转交地址[1]转交地址[2]……类型(19)长度前缀长度1……前缀长度2前缀:网络前缀,让HA判断代理所在的网络。•代理通告和外地判断•(1)在IPv4中,支持移动ip的路由器定期发送ICMP路由通过,其中包含移动代理通告扩展消息。•(2)当MH刚刚移动到一个外地网络时,也可以主动发起路由器恳求报文,使得作为移动代理的路由器立即广播一个移动代理路由器通告。•根据路由器通告,MH可以判断自己是否在外地(比较网络前缀)(根据封装代理通告报文的IP报首部中的源地址进行判断。)根据路由器通告,可以判断是否更换了网络,有两个方法:•①利用lifetime(生命期):若移动节点已在某一外地代理登记,且在固定时间内未收到此FA发送的代理公告,则可判断自己漫游到一个新的网络中。这种机制可在任何情况下使用。•②利用前缀扩展:移动节点对比前后两次收到的代理公告中网址前缀,若相同,则认为自己仍在原网络中,否则说明已移入新网。获得转交地址:有FA通告消息时,取之;否则,自动或手工配置•网络变换检测(二)注册登记在HA上登记(告知转交地址)或注销登记。1、登记过程(2)无FA时,MH直接向HA登记(3)MH回家后,MH向HA发注销登记请求家乡网络HA互联网外地网络FA(1)有FA时,MH向FA登记,再由FA向HA登记;HA把确认发给FA,之后再由FA回送给HA。2、登记报文格式(1)通过UDP发送,知名端口434。(2)lifetime指定登记间隔,到期时若无新的登记请求到来,则认为该MH失效。(3)应答报文中标志域表示登记成功或失败及其原因。类型(1或3)标志生命期家地址家代理转交地址标识(64bit,匹配请求和应答,防止收到旧报文)扩展…3、注销登记在登记请求报文中置lifetime为0。同时把转交地址置为MH的家乡地址即为注销。4、移动节点如何得知它的HA地址?(1)事先配置好。(2)若MH事先不知,则采用两步登记过程:第一步:发登记请求,HA地址置为家乡网络的广播地址;消息广播到家乡,愿作HA的代理发出标志=136的拒绝应答,告知它的地址。第二步:MH利用得到的HA地址,再次发登记请求。(三)数据传送1、移动节点与FA的通信(1)MH和FA通信,使用MH的家乡地址。(2)此时不能按照通常路由。为能正确通信,FA在处理MH的登记请求时,记录MH的物理地址、UDP端口、家乡地址、HA地址等。(3)MH和FA之间使用物理地址直接交付。2、MH向外传送数据报(1)使用家乡地址作为源地址。(2)选择一个路由器A.有具有路由能力的FA时,选择之。B.否则,若有路由器通告消息,从消息帧中找出该路由器的物理地址。3、向MH传送数据报由HA截获,然后通过隧道技术传给FA或直接传送给MH。(1)非家乡网络上主机发给MH的包若直接到达HA,则OK若到其它路由器,则传给HA(2)家乡网络上主机发送给MH的包使用代理ARP技术,让主机发给HA4.MH收发广播接收:(1)MH在登记时向HA声明是否转送广播包(2)无FA时,直接用隧道发给MH。(3)有FA时,FA不知道送给谁。因此,HA要作两层封装,把MH的家乡地址包括进去。发送:与广播类型有关(1)到外地网络上的有限广播,直接发。(2)到家乡网络上的有限广播,通过隧道发给家乡代理。(3)对某特定网络上的广播,可与通常的广播一样发送,或通过隧道先发给HA。四、移动IP的三角路由问题•通讯节点发送给连接在外地网络上的MH的数据包,先被路由到它的家乡代理上,然后经过隧道送到MH的转交地址。由于通讯节点不知道MH的转交地址,会导致三角路由问题。•MH可以通过向通讯节点发送地址绑定信息(家乡ip,转交地址)的方式避免三角路由。进行路由优化。RRInternet家乡代理移动代理通讯节点移动主机路由优化存在的问题:(1)需要MH、HA、FA通讯节点做出相应修改(2)安全问题。五、隧道技术(一)隧道1、隧道:一个数据报被封装进另一个数据报中(作为后者的数据)进行传送时所经过的路径。隧道需事先定义两个端点。传输时,发送端称为入口,接收端称为出口。2、移动IP的隧道技术(1)IP-in-IP封装(IP-in-IPEncapsulation)——RFC2002(2)最小封装(MinimalEncapsulation)——RFC2003(3)通用路由封装GRE(GenericRoutingEncapsulation)——RFC1701(二)IP-in-IP封装1、封装方式:把一个IP包封装在一个新的IP包中。新IP首部:IPv4源IP地址:隧道入口地址目的IP地址:隧道出口地址协议类型域:4(IP协议包)TTL:足够大,使其能穿越隧道。首部长度、总长、校验和:重新计算。其余复制原IP首部的内容。IP首部数据区源IP=原始源站目的IP=最终目的地数据区新IP首部源IP=隧道入口目的IP=隧道出口说明:原IP首部在隧道中不会再变,其TTL在入、出口减1。2、TTL在隧道中仍不断减少IP-in-IP封装时原TTL减少至多2。(三)最小封装:减少首部冗余1、封装方式IP首部数据区主要修改源、目的IP协议类型=55数据区新IP首部最小转发首部(8-12字节,保留原首部中不能丢失的信息)协议类型(原)保留校验和原始目的地址原始源地址(若源就是隧道入口,则S置0,无此项)S(四)GRE封装:多协议封装1、将一种协议的网络层数据包封装在另一种协议的网络层数据包中。2、防止递归封装:Recur字段规定封装次数。每封装一次其值减1。为0时不允许再次封装。C:Checksum;R:RoutingPresent;K:Key;S:NumberSequence;S:StrictSourceRouting。原首部数据区数据区GRE首部新首部4-20字节CRKSsRecur标记Ver协议(净荷包协议)可选部分058131631