摘要

  • RFC 5213 把移动性信令从终端移到网络。MAG 观察接入,并以终端名义发送 PBU;成功 PBA 证明 LMA 接受了一项经过认证和授权的代理声明。
  • 它不证明接入观察仍然新鲜,也不证明 MAG 已完成隧道和转发、终端已收到路由器通告并完成地址配置,更不证明应用会话无损延续。这些结果各自需要证据。

这份协议最重要的角色没有发言

传统主机移动协议让终端参与登记。Proxy Mobile IPv6 反其道而行:运营网络识别终端、获取策略,并在一个受管域内替它处理移动性。终端只需执行普通 IPv6 行为,不必理解自己的移动正在触发一套专用信令。

这种安排解决了部署现实。Local Mobility Anchor(LMA)锚定终端的归属网络前缀,Mobile Access Gateway(MAG)位于接入边缘。终端到达后,MAG 取得其标识和配置文件,向 LMA 发送 Proxy Binding Update。LMA 若接受请求,就创建或更新绑定缓存,把该终端和前缀关联到新的 MAG,建立自己一端的双向隧道状态,再返回 Proxy Binding Acknowledgement。

成功回应具有真实含义:LMA 识别了受信任对端,确认该 MAG 有权为这个终端更新绑定,并按协议完成了锚点侧动作。问题不在这份证据太弱,而在平台经常把它借给了尚未完成的环节。

终端没有签署 PBU。接入系统提供“谁到了”的观察,身份系统提供“它是谁”的映射,策略系统决定“谁可以代言”,MAG 发出声明,LMA 修改状态。RFC 5213 展示的不是端到端证明,而是一条分工明确的代理链。

认证代理,不等于认证现场

PBU 与 PBA 必须受到安全关联保护,IPsec 是强制实现能力。LMA 还必须检查 MAG 是否被授权更新目标终端的绑定。这些控制回答三个关键问题:消息来自谁、途中是否被篡改、发送者是否有资格代表这个主体。

它们没有再次观察接入现场。

RFC 5213 不规定无线关联、有线链路事件或具体接入认证如何产生“已接入”判断,脱离检测也在协议之外。MAG 把外部观察转换为移动性声明,但签名或完整性保护不会让原始观察自动变成持续真相。消息可能延迟,链路可能已经消失,标识可能关联错误,设备也可能在下一毫秒离开。

安全章节直接承认这一边界:如果 MAG 被攻陷,它可以谎报一个并未接入的终端。缓解办法之一,是让受信任实体向 LMA 独立确认实际接入,再允许接受更新;具体确认机制被留在范围之外。可见,“认证说话者”和“确认现场事实”本来就是两项控制。

恒路笔记反复区分参与、授权与执行。放到这里,MAG 获得的是真实但有限的代理权。它可以在移动协议中代表终端,不因此成为终端的物理传感器、应用进程或最终体验证明者。

状态零只完成锚点一侧

时序决定证据边界。LMA 接受 PBU 后,更新绑定缓存、选择或维持归属前缀、设置本端隧道与路由,再返回状态为成功的 PBA。新的 MAG 收到并认证 PBA 后,才继续建立另一端隧道、安装面向终端的转发、更新本地绑定状态,并在接入链路上发送 Router Advertisement。

因此,PBA 不是整个切换的句号,而是边缘执行的开工条件。只看 LMA 日志的控制台,很容易把“一端已承诺”画成“两端已就绪”。

终端随后还有自己的动作。RFC 4861 管理邻居发现和路由器通告,RFC 4862 管理无状态地址配置与重复地址检测。PMIPv6 力图让终端在新链路继续使用同一归属前缀,但协议目标不能代替以下观测:RA 是否抵达、终端是否接受、地址是否可用、默认路由是否正确、上下行分组是否穿越隧道、应用会话是否仍在。

GRE Key 等扩展可以让隧道上下文更精确,运行时 LMA 分配和 QoS 选项可以丰富控制。它们改善某一环节,却不会把注册回应变成业务回执。隧道对象存在时,另一端仍可能没有正确路由;网络层看似连续时,应用超时可能已经发生。

绑定缓存是声明账本,不是位置传感器

LMA 的绑定缓存决定流量将被送往哪个 MAG。它是运行系统中的权威记录,也带有明确生命周期。正因为它会实际改变路由,记录的来源与代次必须可审计。

但“仍在生命周期内”只说明被接受的声明尚未按规则过期,不说明 LMA 正在持续感知终端。切换时,旧 MAG 的脱离事件与新 MAG 的接入事件可能交错;丢包、延迟和故障会留下短暂甚至持续的冲突。最终数据库只有一个值,却不代表产生它的观察没有竞争。

事故复盘应沿证据链向前走:接入事件是谁观察的,何时发生,终端标识如何取得,接入认证是否成功,MAG 是否被授权代表该终端,PBU/PBA 序号与生命周期是什么,新的 MAG 是否真正收到响应并安装转发,RA 是否到达,旧状态何时撤销,双向流量在哪里首次失败。

把这些事件折叠成一个“handover_completed_at”,会让速度看起来漂亮,却会抹掉责任边界。

一张代理切换凭证应当长什么样

BTW 建议把一次切换拆成可关联、不可互相冒充的证据:接入技术、观察者、时间与置信度;终端标识的来源;接入认证与策略决定;MAG 身份、凭据及其逐终端授权;PBU 序列和生命周期;必要时的独立接入确认;LMA 绑定代次、前缀、路由和本端隧道;PBA 状态及 MAG 收到它的证据;MAG 侧隧道与转发表;RA 发出与接收;终端地址和 DAD 状态;双向探测和应用结果;旧 MAG 清理。

这张凭证是编辑分析,不是 RFC 5213 新增的协议要求。它的作用是保护 RFC 已经存在的角色分离,防止上层报表把代理声明、锚点动作、边缘动作和终端体验压成一个真假值。

运行代码优先并不要求否定控制面。它要求控制面的成功只能代表自己完成的事情。LMA 有权让绑定缓存指导流量,却无权替过去的接入观察补发真实性;MAG 有权为终端登记,却不能代替终端证明收到通告;数据库可以告诉我们系统将怎样行动,却不能证明行动已经在用户一侧产生结果。

真正成熟的切换平台,不是最快亮起绿灯的平台,而是能说清每一步由谁观察、谁授权、谁执行,以及下一张证据在哪里产生的平台。

来源

  1. RFC 5213 HTML
  2. IETF Datatracker:RFC 5213
  3. RFC 5213 信息页
  4. RFC 5213 文档历史
  5. RFC 6543:多接口 MAG 支持
  6. RFC 7864:PMIPv6 基础规范更新
  7. RFC 3775:IPv6 移动性支持
  8. RFC 4283:移动节点标识选项
  9. RFC 4832:移动性术语
  10. RFC 4861:IPv6 邻居发现
  11. RFC 4862:IPv6 无状态地址自动配置
  12. RFC 4301:IP 安全体系结构
  13. RFC 4303:封装安全载荷
  14. RFC 4306:互联网密钥交换
  15. RFC 2473:通用 IPv6 隧道
  16. RFC 5845:PMIPv6 的 GRE Key 选项
  17. RFC 6463:运行时 LMA 分配
  18. RFC 8127:PMIPv6 服务质量选项
  19. 恒路:运行代码优先