Skip to main content

12. 重新编号考虑

由于各种原因, 例如更换互联网服务提供商 (ISP)、企业合并或网络重组, IPv6网络可能需要重新编号。邻居发现包括促进平滑重新编号操作的功能。本节讨论重新编号IPv6网络的考虑。

12.1. Renumbering Overview (重新编号概述)

网络重新编号涉及更改网络上主机使用的IPv6地址前缀。IPv6中重新编号的主要机制是:

  1. 带有新前缀的路由器通告: 路由器通告具有适当生命周期的新前缀, 同时逐步淘汰旧前缀。
  2. DHCPv6: IPv6的动态主机配置协议也可以在重新编号期间管理地址分配。
  3. 无状态地址自动配置 (SLAAC): 主机根据路由器通告的新前缀自动生成新地址。

12.2. Router Advertisement-Based Renumbering (基于路由器通告的重新编号)

邻居发现的路由器通告机制旨在支持优雅的重新编号:

12.2.1. Introducing New Prefixes (引入新前缀)

引入新前缀时:

  1. 初始通告: 路由器开始通告新前缀, 具有:

    • Valid Lifetime (有效生命周期): 设置为合理的持续时间 (例如, 2小时或更长)
    • Preferred Lifetime (首选生命周期): 最初设置为等于Valid Lifetime
    • A (自主) 标志: 设置为指示主机应使用SLAAC
  2. 共存期: 同时通告旧前缀和新前缀, 允许:

    • 新连接使用新地址
    • 现有连接继续使用旧地址
    • 在不中断服务的情况下逐步迁移

12.2.2. Deprecating Old Prefixes (弃用旧前缀)

要逐步淘汰旧前缀:

  1. 将Preferred Lifetime设置为零: 这会导致主机:

    • 停止为新连接使用旧前缀
    • 继续使用具有旧地址的现有连接
    • 不从弃用的前缀生成新地址
  2. 减少Valid Lifetime: 逐渐减少Valid Lifetime以允许现有连接完成。

  3. 最终删除: 一旦Valid Lifetime过期或设置为零, 主机将从其配置中删除地址和前缀。

12.2.3. Timeline Recommendations (时间表建议)

典型的重新编号时间表可能是:

  • 第0周: 开始在旧前缀旁边通告新前缀 (两者都是首选)
  • 第1-2周: 弃用旧前缀 (Preferred Lifetime = 0, Valid Lifetime = 1周)
  • 第2-3周: 继续减少旧前缀的Valid Lifetime
  • 第3周+: 完全停止通告旧前缀

确切的时间表取决于网络要求以及应用程序和连接的性质。

12.3. Implementation Considerations (实现考虑)

12.3.1. Host Behavior (主机行为)

主机应该 (SHOULD):

  • 监控路由器通告: 持续处理路由器通告以了解新前缀和生命周期更改。
  • 尊重生命周期: 在为新连接选择源地址时遵守Preferred和Valid生命周期。
  • 优雅弃用: 当前缀变为弃用 (Preferred Lifetime = 0) 时, 避免将其用于新连接但维护现有连接。
  • 删除过期地址: 当地址的Valid Lifetime过期时删除地址。

12.3.2. Router Behavior (路由器行为)

路由器应该 (SHOULD):

  • 协调重新编号: 链路上的所有路由器应通告一致的前缀信息。
  • 使用保守的计时器: 留出足够的时间让重新编号完成而不会中断服务。
  • 监控进度: 网络管理员应监控重新编号进度以确保平滑过渡。

12.3.3. Application Considerations (应用程序考虑)

应用程序应设计为:

  • 处理地址更改: 准备好在长时间运行的应用程序的生命周期内更改地址。
  • 首选临时地址: 对于隐私敏感的应用程序, 使用定期更改的临时地址 [RFC4941]。
  • 实现Happy Eyeballs: 在过渡期间支持旧地址和新地址 [RFC8305]。

12.4. DHCPv6 and Renumbering (DHCPv6和重新编号)

使用DHCPv6进行地址分配时:

  • 租约时间: DHCPv6服务器可以通过调整旧地址和新地址的租约时间来控制重新编号。
  • RECONFIGURE消息: 服务器可以使用RECONFIGURE消息指示客户端续订其配置并获取新地址。
  • 与RA协调: 基于DHCPv6的重新编号应与路由器通告协调以确保一致性。

12.5. DNS Considerations (DNS考虑)

在重新编号期间, 必须更新DNS记录:

  1. 添加新记录: 为新地址创建AAAA记录。
  2. 减少TTL: 在重新编号之前降低DNS记录的生存时间 (TTL) 以最小化缓存问题。
  3. 维护旧记录: 在过渡期间保持旧AAAA记录可用。
  4. 删除旧记录: 重新编号完成且旧地址不再使用后, 删除过时的DNS记录。

动态DNS (DDNS) 可以为支持它的主机自动化此过程。

12.6. Operational Recommendations (操作建议)

网络运营商应该:

  1. 仔细计划: 制定详细的重新编号计划, 包括时间表和回滚程序。
  2. 沟通: 通知用户和利益相关者重新编号时间表。
  3. 监控: 使用网络监控工具跟踪重新编号进度并识别问题。
  4. 测试: 如果可能, 在部署到生产环境之前在实验室环境中测试重新编号程序。
  5. 文档: 维护前缀分配和重新编号历史的文档。

12.7. Multi-Homing and Renumbering (多宿主和重新编号)

多宿主网络 (连接到多个ISP) 面临额外的挑战:

  • 多个前缀: 主机可能同时拥有来自多个前缀的地址。
  • 源地址选择: 正确的源地址选择 (RFC 6724) 对于为出站连接选择正确的地址至关重要。
  • 提供商故障转移: 当一个提供商的前缀不可用时, 主机应无缝过渡到使用来自其他前缀的地址。

12.8. Enterprise Considerations (企业考虑)

对于企业网络:

  • 内部编号: 内部地址分配可能不需要像边缘前缀那样频繁更改。
  • ULA使用: 唯一本地地址 (ULA, RFC 4193) 可以提供独立于ISP更改的稳定内部寻址。
  • NAT66: 虽然通常不鼓励, 但一些企业可能使用NAT66将内部重新编号与外部更改隔离, 尽管这有显著的缺点。

12.9. Automation and Tools (自动化和工具)

为了促进重新编号:

  • 配置管理: 使用自动化配置管理工具更新路由器配置。
  • 监控系统: 实施监控以检测与重新编号相关的问题。
  • 脚本和API: 开发脚本或使用API自动化DNS更新和其他重新编号任务。

12.10. Summary (摘要)

邻居发现的路由器通告机制为IPv6网络重新编号提供了强大的支持。通过仔细管理前缀生命周期并在路由器、DHCPv6服务器和DNS之间协调更改, 网络运营商可以实现平滑过渡, 最小化服务中断。适当的计划、沟通和监控对于成功的重新编号操作至关重要。