张宝贤:《无线网络技术》 2006年11月11日 电子邮件:bxzhang@gucas.ac.cn Mobile IP(下)—高级知识
移动计算与mobile IP • Mobile IPv6 • Mobile IPv4的问题 • IPv6回顾 • Mobile IPv6 • Mobile IP的组播 • IP组播协议回顾 • Mobile IP的组播 • 其他问题探讨 • Mobile IP的安全 • Mobile IP切换技术 • 熟练掌握移动IPv6基本概念 • 掌握mobile IP 组播机制 • 理解mobile IP的安全性以及切换技术
mobile IP 的三角路由问题 • 数据报从CN发给MN的HA • HA截获该包后隧道给MN的COA • 在FA,数据报被拆封,然后递送给MN • 对于MN发送的数据报则采用标准的IP路由(到CN) CN: Corresponding Node MN: Mobile terminal HA: Home Agent FA: Foreign Agent COA: Care of address
三角路由的优缺点 • 缺点 • HA是每个报文的固定重定向点,即使源和目的之间存在更短的路径。 • 路径加长而增加端到端延迟 • 连接HA的网络链路很容易出现超载 • HA是个瓶颈 • 优点 • 控制简单 • 交换的控制报文数有限 • 地址绑定信息高度一致 • 对于特定主机的邦定信息存放在一个地方 路由优化—— 告知CN地址绑定信息
路由的优化 • CN从HA了解MN的位置,在本地缓存binding cache • Binding request • Binding Update • Binding ACK • 缓存的binding在授权的lifetime之后失效 • CN可直接隧道数据报给MN的COA 为什么CN要隧道数据报给 MN的COA?
Binding 缓存 • 本地路由表的一部分 • 包含一个/多个移动节点的COA • 用于直接把数据报隧道给COA • 必须经过HA的授权 • 有一个生存期规定的有效期 • 出现过期现象时 • Binding warning被发给HA,建议发送update
外地代理平滑切换 • 当MN移动到另一个网络向新FA注册; • 基本Mobile IP协议 • 不通知老FA • 隧道到老COA的数据报可能被丢失 • 只能由高层协议重发 • 老FA删除visitor list中的对应条目(生存期过后) • 路由优化 • 通知老FA移动节点的最新binding • 允许隧道到原来FA的数据报转发给新COA • 允许老FA释放所有分配给移动节点的资源
外地代理平滑切换(续) • MN在向新FA注册时请求新FA通知老FA自己的当前位置 • 新FA发送binding update 消息给老FA并请求对方的确认 • 老FA删除访问表中的相应条目并创建新binding cache • 老FA的作用就是一个转发点 ① registration ② Binding update ③ Acknowledgment MN
路由优化所需的消息 • Binding Warning • 建议立即进行binding update • Binding Request • 向HA请求当前的移动邦定 • Binding Update • 通知移动节点的当前移动邦定 • Binding Acknowledge • 确认收到binding update消息
其它需要考虑的问题 • 防火墙阻止某种通信模式 • 过滤掉源自拓扑不正确地址的出境报文 • 这使得移动节点不能以其永久地址直接与CN通信 • 过滤掉源自内部地址的入境报文 • 这使得移动节点可能不能直接向家乡网络发送报文 • 对于使用NAT的家乡网络情况更严重 • TTL的设置 • MN在家乡发送报文时够用的TTL在MN移动到外地时不一定够用 • 组播机制
逆向隧道技术 RFC2344 RFC3024 • 逆向隧道(reverse tunneling) • Mobile IP新标准(RFC3344)的选项 • MN给CN发送报文要走三角路由
为什么要 IPv6?
IPv6 的改进 RFC1883 RFC1884 RFC1885 RFC1886 RFC1887 • 修改地址体系结构 • 地址空间从32位到128位 • 地址类型:单播、组播、选播(anycast) • 可聚类全球单播地址 • 修改分组格式 • 简化报头格式 • 设计可扩展报头 • 只有8个字段简化处理 • 扩展报头大多不用路由器处理 • 协议可自由扩展功能
IPv6 的改进(续) RFC2373 RFC2374 RFC2460 RFC2461 RFC2462 RFC2463 • 增加流标识 • 针对每个流提供服务质量 • 根据“flow”实现交换转发(MPLS) • 强制安全机制 • 集成了IPSec • 增设认证头AH • 封装安全负载ESP • 保证分组来自正确发送者 • 保证分组内容没有被篡改
对应的ICMPv6 ICMPv6协议具备ICMPv4的基本功能,还包含两个新协议。 • 组播成员发现协议 • 相当于IPv4的IGMP • Query:查询组成员 • Report:报告成员状态 • Done:退出组 • 邻居发现协议 • 实现了ARP、路由器发现协议和ICMPv4重定向功能 • Router advertisement • Router solicitations • Neighbor solicitations • Neighbor advertisements • Redirect
Mobile IPv6对mobile IPv4 的改进 RFC3775 • 外地代理 • MN利用IPv6特性(邻居发现、地址自动配置)无需外地网络上的路由器提供特别的功能支持 • 只定义了配置转交地址 • 路由优化 • 允许CN发出的分组路由到MN • 解决了三角路由问题 • 输入过滤 (MN→CN) • 路由优化功能与路由器过滤功能并存 • 分组携带COA和家乡地址能通过具有输入过滤功能的路由器 • COA: source address • Mobile node’s home address is inserted in the Home Address option, a packet will be able to safely pass through any router implementing ingress filtering
Mobile IPv6对mobile IPv4 的改进(续) • 组播分组的发送 • MN作为组播成员直接发送分组 • 移动检测 • 提供MN与缺省路由器之间双向通信能力的确认 • 抑制路由黑洞的出现,因为传统网络只提供前向确认(即:从路由器到节点),而没有后向认证机制
Mobile IPv6对mobile IPv4 的改进(续) • 隧道封装 • 采用IPv6路由头直接发送截取的分组到MN • 不需要隧道封装 • 隧道软状态 • 使用IPv6封装和路由头 (Extension Header: routing) • 不再需要管理隧道软状态 • 家乡代理地址发现 • 使用IPv6的选播地址 • 仅返回一个应答给MN • Anycast提供机制使得只有一个HA应答 减少应答报文
Mobile IPv6 基本操作过程
获取COA 并向家乡网络注册 ① 通过自动配置机制获得一个/多个COA ② Binding update ③ Binding Acknowledgment
CN与MN的通信 ① CN不知道MN的移动 ② MN 发送Binding update/CN以Binding Acknowledgment确认 ③CN与MN直接通信
移动透明性和入境过滤 • 任何IPv6节点首先发送一个分组检查到目的地址的Binding Cache • 如果已经有一条路,则通过routing header发送分组给MN (而不是IPv6封装)。该路由头标识的路由有两跳: • 第一跳是COA • 第二跳是MN的家乡地址 • 如果Binding cache没有对应的条目,则该分组被路由给家乡网络 • 如果MN远离家乡,则该分组将被家乡链路上的HA截获,然后隧道给MN。 目的地扩展头
动态家乡代理发现 • 允许MN动态发现家乡链路上现有家乡代理的地址 • 向其家乡子网前缀特定的移动IPv6家乡代理anycast发送ICMP家乡代理地址发现请求消息; • 其中一个家乡代理向MN返回一条ICMP家乡代理发现应答消息,给出家乡链路上一组家乡代理的地址; • MN可确定自己HA的地址。 MN
移动节点在外地网络再次移动 • MN在外地不断移动 • 可获得多个COA • 仅注册一个COA(自己选择) • HA仅维护MN的一个COA • 临时隧道用来转发移动期间的报文(在老COA和新COA之间建立联系) • 隧道入口是老COA • 隧道出口是新COA 降低移动期 间的丢包率
Mobile IPv6 对基本IPv6 的扩充 安全性 测试 • 新的移动扩展头— — mobility header • 用来携带与移动有关的消息 • HoTI/HoT/CoTI/CoT:用于返回路径可达过程 • Binding update:MN通知HA/CN自己的当前位置 • Binding ACK:对MN上述消息的确认 • Binding refresh request:请求MN更新邦定信息(当生存期快过期时用) • Binding error:CN用来通知和移动相关的错误
Mobile IPv6 对基本IPv6 的扩充(续) • 新目的地选项 • 家乡地址选项,用来实现移动IP对上层协议的透明以及对入境过滤得处理 • 新的ICMP消息 • 为支持家乡代理的自动发现和移动配置 • ICMP HA地址发现请求/应答消息,用来动态发现HA的地址 • ICMP移动前缀请求/应答消息,用于网络的重新编号和移动配置机制
移动检测过程 移动IP标准定义的移动检测机制主要利用IPv6的邻居发现机制,但并不排斥MN使用其它机制。 • 通过邻居发现机制检测移动(双向检测) • MN可通过检查当前缺省路由器是否可达来判断自己是否发生了移动 • 使用“邻居不可达检测”机制来检查缺省路由器的不可达 • 根据路由器定期发布的router advertisement消息判断路由器的通告发送频率 • 如果在预定的时间间隔内没有收到相应的通告消息就能判断至少丢失一条通告消息
COA 的形成 • COA的作用 • MN通过在HA注册COA和家乡地址的绑定,就能在HA的帮助下接收源自只知道自己家乡地址的CN的报文 • 在CN进行类似的注册,可直接使用COA与CN通信,避免三角路由 • COA的分类 • 主转交地址(只能有一个):注册到HA的COA • COA的形成 • 使用新的缺省路由器提供的一个子网前缀 • 通过无状态/有状态地址自动配置机制生成COA • 新COA的重复地址检测(检测地址是否正在被使用) • MN在开始使用新地址的同时,异步地进行重复地址检测
单播数据报 • HA对数据报的截取 • HA必须向家乡链路组播发送关于MN的邻居通告消息,使得所有发向MN家乡地址的分组都被重定向到HA; • MN和HA之间的隧道通信 • 源自HA的分组使用router扩展头直接发送到MN的COA • 截取的分组必须用隧道转发给MN的COA • 隧道入口为HA的地址 • 隧道出口为MN注册的主COA
单播数据报(续) • MN对数据报的接收 • 通过隧道来的数据报 • CN直接发来的数据报(使用routing扩展头) • MN对数据报的发送 • 直接使用COA作为Source address (SA) • 对于需要支持ingress filtering的情况,使用COA作为SA,但把自己的家乡地址放在家乡地址选项中; • 对于尚未建立binding cache的CN来说,则采用逆向隧道通过HA给CN发送数据报
单播数据报(续) • CN对数据报的发送 • 检查是否binding cache • IPv6数据报的目的地址为对应绑定缓存中的COA • Router扩展头包含MN的家乡地址 • 不存在binding cache • CN以常规的方式发送分组。 • CN对数据报的接收 • CN收到的数据报可能含有移动扩展头
Mobile IPv4 vs Mobile IPv6
标准的IP组播服务模型 - 关于点到多点传输的端系统说明 - 不涉及网络中组播路由、服务质量机制、安全和地址分配等机制。 • 特点 • IP风格 • 组播源可以在任何时候发送组播分组,组播通信基于UDP,采用best-effort服务策略。 • 开放性 • 发送者只需要知道组播地址,不必知道组成员关系以及组成员个数。 • 动态性 • 组成员可任意加入/推出组播组,不需要向组管理中心注册、同步或协商
IP 组播体系回顾 • 由两类协议组成 • 组成员管理协议IGMP (Internet group management protocol) • 组播树的构造协议(MOSPF、DVMRP、CBT、PIM)
IP 组播协议— MOSPF • MOSPF (multicast extensions to OSPF) • OSPF单播链路状态路由协议的扩展 • 每个路由器通告其所连子网的组播接收者—— 把组成员信息广播到全网 • 因此,网络中每个MOSPF路由器都具有每个组的成员信息 • 组播树上从组播源到每个组播接收者的路径都是单播最短路径
IP 组播协议— DVMRP • DVMRP (Distance vector multicast routing protocol) • 组播源向本地网络广播每个组播分组; • 与组播源相连的第一跳路由器将该分组转发到所有出境接口; • 每个收到组播分组的路由器都执行RPF检查。如果该分组来自本路由器到组播源的最短路径上,则转发;否则丢弃; • 最后一跳路由器根据IGMP信息检查所连子网内是否有组成员。有则转发;否则逆向发送一个“剪枝”消息; • “剪枝”信息被逆向发往组播源,经过路由器在接收接口创建剪枝状态。
IP 组播协议— DVMRP(续) 信源
IP 组播协议— CBT • CBT (core based trees) • CBT树是双向的,被所有组成员共享; • 路由器记录每个组的信息(而不是每个组播源的信息) • 不采用逆向路径检查机制; • CBT通过保证join和join-ack消息经过完全相同但方向相反的路径进行传递来保证不出现路由回路。 • 使用单播路由表获得通往核心节点的下一跳路由器信息;
IP 组播协议— CBT(续) core router
IP 组播协议— PIM-SM • Protocol Independent Multicast –sparse mode • “协议无关”的稀疏多播协议 • 不用交换多播路由信息 • 利用单播路由表 • 接收者向RP(Rendezvous Point)发送“join”消息,发送者发送之前首先向RP注册 • “当前最好”的域内协议 • 权衡效率和复杂性 • 得到最广泛的支持和部署
IP 组播协议— PIM-SM(续) (指定点)
移动环境中IP 组播面临的新问题 • Internet组播协议在建立组播树时都假设其组成员是静止的; • 移动节点作为组播源移动时将会引起整个组播树的重建; • 在新的组播树建立之前,源节点向组成员发送的组播数据流会发生中断; • 组播成员移动时的切换延迟相对较大 • 网络链路的切换 • FA重新加入组播树 • 计算和建立组播树的延迟
移动环境中IP 组播面临的新问题(续) • 丢包问题 • 无线链路质量差 • MN在发生切换时组播分组的丢失 • 切换而带来的“同步丢失”等问题 • 移动给组播带来了比较严重的异构性问题 • IP组播还可能遇到外地链路没有支持组播的路由器、发生“隧道聚集”、不同区域的TTL阈值设置方式不同,区域内组播地址重复等其它多种问题。
两个支持主机移动的基本机制 • 支持主机移动的组播机制 • Bi-directional Tunneling (双向隧道) • MN移动到外地网络时同HA建立双向隧道。 • 通过隧道发送和接收组成员控制消息 • HA加入组播组,替代MN收发消息。 • Remote Subscription (远程加入) • MN移动到外地网络后,直接通过所在网络发送组成员消息,通过外地网络重新申请加入组播组。 • MN直接通过外地网络上的组播路由器收发组播数据报(multicast datagram)。
远程加入( remote subscription) • MN作为组播接收者 • 移动到外地后必须通过IGMP重新申请加入; • 外地组播路由器建立相应的组播树;
远程加入( remote subscription)(续) • MN作为组播发送者 • 直接将组播分组发送给外地组播路由器; • 通常使用专用COA
远程加入的优缺点 • 优点 • 最简单&优化的数据传送路径 • 直接使用现有的组播协议,不需要建立任何隧道; • 缺点 • 树重构的开销大(只适合共享树) • 数据丢失率高(在MN切换时由join-graft延迟引起) • 必须解决TTL问题 • 各子网的TTL设置不同 • 引入“同步丢失问题(out-of-synch problem)”
同步丢失问题 • 当MN从子网1移动到子网2,即使切换延迟可以忽略,该MN仍然会丢失序号为3、4和5的组播分组
双向隧道(Bi-directional Tunneling) • MN为组播接收者 • 通过隧道向HA发送IGMP消息申请加入 • HA将该MN加入组播组 • 组播路由协议建立到家乡网络的组播树
双向隧道(Bi-directional Tunneling)(续) • MN作为组播源 • MN通过隧道将组播分组发送给HA • HA负责通过组播树以组播的方式发送该组播分组 source
Load More ...