12. 重新编号考虑
由于各种原因, 例如更换互联网服务提供商 (ISP)、企业合并或网络重组, IPv6网络可能需要重新编号。邻居发现包括促进平滑重新编号操作的功能。本节讨论重新编号IPv6网络的考虑。
12.1. Renumbering Overview (重新编号概述)
网络重新编号涉及更改网络上主机使用的IPv6地址前缀。IPv6中重新编号的主要机制是:
- 带有新前缀的路由器通告: 路由器通告具有适当生命周期的新前缀, 同时逐步淘汰旧前缀。
- DHCPv6: IPv6的动态主机配置协议也可以在重新编号期间管理地址分配。
- 无状态地址自动配置 (SLAAC): 主机根据路由器通告的新前缀自动生成新地址。
12.2. Router Advertisement-Based Renumbering (基于路由器通告的重新编号)
邻居发现的路由器通告机制旨在支持优雅的重新编号:
12.2.1. Introducing New Prefixes (引入新前缀)
引入新前缀时:
-
初始通告: 路由器开始通告新前缀, 具有:
- Valid Lifetime (有效生命周期): 设置为合理的持续时间 (例如, 2小时或更长)
- Preferred Lifetime (首选生命周期): 最初设置为等于Valid Lifetime
- A (自主) 标志: 设置为指示主机应使用SLAAC
-
共存期: 同时通告旧前缀和新前缀, 允许:
- 新连接使用新地址
- 现有连接继续使用旧地址
- 在不中断服务的情况下逐步迁移
12.2.2. Deprecating Old Prefixes (弃用旧前缀)
要逐步淘汰旧前缀:
-
将Preferred Lifetime设置为零: 这会导致主机:
- 停止为新连接使用旧前缀
- 继续使用具有旧地址的现有连接
- 不从弃用的前缀生成新地址
-
减少Valid Lifetime: 逐渐减少Valid Lifetime以允许现有连接完成。
-
最终删除: 一旦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记录:
- 添加新记录: 为新地址创建AAAA记录。
- 减少TTL: 在重新编号之前降低DNS记录的生存时间 (TTL) 以最小化缓存问题。
- 维护旧记录: 在过渡期间保持旧AAAA记录可用。
- 删除旧记录: 重新编号完成且旧地址不再使用后, 删除过时的DNS记录。
动态DNS (DDNS) 可以为支持它的主机自动化此过程。
12.6. Operational Recommendations (操作建议)
网络运营商应该:
- 仔细计划: 制定详细的重新编号计划, 包括时间表和回滚程序。
- 沟通: 通知用户和利益相关者重新编号时间表。
- 监控: 使用网络监控工具跟踪重新编号进度并识别问题。
- 测试: 如果可能, 在部署到生产环境之前在实验室环境中测试重新编号程序。
- 文档: 维护前缀分配和重新编号历史的文档。
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之间协调更改, 网络运营商可以实现平滑过渡, 最小化服务中断。适当的计划、沟通和监控对于成功的重新编号操作至关重要。