# 4.7 移动IP ## 一、移动IP概述 ### 1.1 什么是移动IP **移动IP(Mobile IP)**: - 允许移动节点在改变网络位置时保持IP连接 - 移动节点可以在不同网络之间移动而不中断通信 - IETF标准(RFC 3344) ### 1.2 移动IP解决的问题 **问题**: - 移动节点改变网络时,IP地址变化 - TCP连接中断 - 需要重新建立连接 **解决**: - 使用两个IP地址 - 保持通信连续性 ### 1.3 移动IP的应用场景 - **移动设备**:手机、笔记本在不同WiFi之间移动 - **车载网络**:车辆在移动中保持连接 - **物联网**:移动传感器节点 --- ## 二、移动IP的组成 ### 2.1 移动节点(Mobile Node, MN) **定义**: - 可以改变网络位置的节点 - 保持与家乡网络的连接 **特点**: - 有家乡地址(Home Address) - 有转交地址(Care-of Address) ### 2.2 家乡代理(Home Agent, HA) **定义**: - 移动节点家乡网络上的路由器 - 维护移动节点的位置信息 **功能**: - 截获发往移动节点的数据 - 封装转发给移动节点 - 维护移动节点的绑定表 ### 2.3 外地代理(Foreign Agent, FA) **定义**: - 移动节点访问网络上的路由器 - 为移动节点提供服务 **功能**: - 为移动节点分配转交地址 - 解封装数据转发给移动节点 - 代理移动节点发送数据 **注意**: - 移动节点也可以直接获得转交地址(Co-located CoA) - 不需要外地代理 ### 2.4 通信对端(Correspondent Node, CN) **定义**: - 与移动节点通信的节点 - 可以是固定的,也可以是移动的 --- ## 三、移动IP的地址 ### 3.1 家乡地址(Home Address) **定义**: - 移动节点在家乡网络时的IP地址 - 永久地址 - 标识移动节点 **特点**: - 不变 - 用于上层协议标识 - 通信对端看到的地址 ### 3.2 转交地址(Care-of Address, CoA) **定义**: - 移动节点在外地网络时的IP地址 - 临时地址 - 用于实际通信 **类型**: - **外地代理转交地址(Foreign Agent CoA)**: - 外地代理的IP地址 - 多个移动节点共享 - 外地代理转发数据 - **同置转交地址(Co-located CoA)**: - 移动节点在外地网络获得的IP地址 - 移动节点独占 - 移动节点自己解封装 ### 3.3 地址的关系 ``` 通信对端 <-----> 家乡地址 <-----> 移动节点 ↑ 家乡代理 ↓ 转交地址(外地网络) ``` --- ## 四、移动IP的工作过程 ### 4.1 代理发现(Agent Discovery) **目的**: - 移动节点发现家乡代理和外地代理 - 确定当前位置 **方法**: - 代理通告(Agent Advertisement): - 代理周期性广播ICMP路由器通告 - 包含代理信息 - 代理请求(Agent Solicitation): - 移动节点主动请求 - 加速发现过程 ### 4.2 注册(Registration) **目的**: - 通知家乡代理当前位置 - 建立绑定 **过程**: 1. 移动节点获得转交地址 2. 向家乡代理发送注册请求 3. 家乡代理更新绑定表 4. 家乡代理发送注册响应 **绑定表**: - 家乡地址 - 转交地址 - 生存时间 ### 4.3 数据传送 #### 从通信对端到移动节点 **路由优化前**: 1. 通信对端发送数据到家乡地址 2. 数据到达家乡网络 3. 家乡代理截获数据 4. 家乡代理封装数据(IP-in-IP隧道) 5. 家乡代理发送封装后的数据到转交地址 6. 外地代理(或移动节点)解封装 7. 数据送达移动节点 **路径**: ``` 通信对端 → 家乡代理 → 外地代理 → 移动节点 ``` **路由优化后**: 1. 通信对端获得移动节点的转交地址 2. 通信对端直接发送数据到转交地址 3. 数据直达移动节点 **路径**: ``` 通信对端 → 移动节点 ``` #### 从移动节点到通信对端 **过程**: 1. 移动节点发送数据 2. 外地代理(或直接)转发 3. 数据到达通信对端 **注意**: - 移动节点使用家乡地址作为源地址 - 不需要隧道 ### 4.4 移动检测(Movement Detection) **目的**: - 检测移动节点是否移动到新的网络 **方法**: - 监听代理通告 - 比较网络前缀 - 如果网络前缀变化,表示移动 ### 4.5 注销(Deregistration) **情况**: - 移动节点回到家乡网络 - 生存时间到期 **过程**: 1. 移动节点发送注销请求 2. 家乡代理删除绑定 3. 数据直接发送到家乡网络 --- ## 五、移动IP的数据封装 ### 5.1 IP-in-IP封装 **过程**: - 原始IP分组作为数据 - 添加新的IP首部 - 新的目的地址是转交地址 - 新的源地址是家乡代理 **格式**: ``` | 新IP首部 | 原始IP首部 | 原始数据 | | 目的:CoA | 目的:家乡地址 | | | 源:HA | 源:通信对端 | | ``` ### 5.2 最小封装 **目的**: - 减少封装开销 **方法**: - 只封装必要的首部信息 - 不封装整个原始IP首部 ### 5.3 GRE封装 **GRE(Generic Routing Encapsulation)**: - 通用路由封装 - 可以封装多种协议 - 支持认证和校验 --- ## 六、移动IP的路由优化 ### 6.1 路由优化的问题 **三角路由问题**: - 数据需要经过家乡代理 - 路径可能不是最优 - 延迟增加 ### 6.2 路由优化的方法 **绑定更新**: 1. 移动节点向通信对端发送绑定更新 2. 通信对端缓存转交地址 3. 通信对端直接发送数据到转交地址 **过程**: ``` 通信对端 → 移动节点(直接) ``` ### 6.3 路由优化的安全性 **问题**: - 绑定更新可能被伪造 - 需要认证 **解决**: - 使用IPsec认证 - 使用共享密钥 --- ## 七、移动IPv6 ### 7.1 移动IPv6的特点 **改进**: - 不需要外地代理 - 使用IPv6扩展首部 - 更好的安全性(IPsec) - 更好的路由优化 ### 7.2 移动IPv6的地址 **家乡地址**: - 移动节点在家乡网络的IPv6地址 **转交地址**: - 移动节点在外地网络的IPv6地址 - 通过IPv6自动配置获得 ### 7.3 移动IPv6的工作过程 **代理发现**: - 使用IPv6邻居发现协议 **注册**: - 使用移动IPv6协议 - 向家乡代理注册 **数据传送**: - 使用IPv6路由首部 - 通信对端直接发送到转交地址 - 使用家乡地址选项 ### 7.4 移动IPv6与移动IPv4的比较 | 特性 | 移动IPv4 | 移动IPv6 | |-----|---------|---------| | 外地代理 | 需要 | 不需要 | | 封装 | IP-in-IP | 路由首部 | | 安全性 | 可选 | 必须(IPsec) | | 路由优化 | 可选 | 内置 | | 配置 | 复杂 | 简单(自动配置) | --- ## 八、考研重点 1. **移动IP的概念**: - 什么是移动IP - 解决的问题 - 应用场景 2. **移动IP的组成**: - 移动节点 - 家乡代理 - 外地代理 - 通信对端 3. **移动IP的地址**: - 家乡地址 - 转交地址(外地代理CoA、同置CoA) 4. **移动IP的工作过程**: - 代理发现 - 注册 - 数据传送 - 移动检测 - 注销 5. **数据封装**: - IP-in-IP封装 - 最小封装 - GRE封装 6. **路由优化**: - 三角路由问题 - 路由优化的方法 7. **移动IPv6**: - 特点 - 与移动IPv4的比较 --- *下一节:4.8 网络层设备*