摘要

  • RFC 9898 是 IETF Informational 文档,回顾 IPv6 Neighbor Discovery 的已知问题及缓解方式;它明确不引入新的协议解决方案。
  • 文档把问题根因归为三组:组播、信任所有链路上节点,以及路由器按需生成 NCE。
  • L3+L2 隔离覆盖面最完整,但需要二层隔离、每主机唯一前缀以及路由器支持或足够的接口;仅 L3 通常能处理大多数问题,部分 L2 主要减少组播域和流量。

从同一接入段看三种根因

在共享 IPv6 接入段,ND 依赖链路本地通信,因而组播规模会影响地址解析与相关控制流量。所有同链路节点也处于同一在链信任语境中;同时,路由器可能在收到通信需求时建立 NCE。三者相互关联,却不是同一个故障。RFC 4861 定义基本 ND 行为,RFC 4862 定义 SLAAC 行为;RFC 9898 是叠加在这些协议之上的部署考量。

隔离层级与代价

L3+L2 隔离把每台主机放入独立子网和独立链路。按 RFC 9898 的归纳,它可以处理所盘点的全部 ND 问题:组播范围缩小,链路信任关系收窄,并消除路由器按需创建 NCE 的根因。前提并不轻:需要 L2 隔离、唯一前缀,以及路由器支持或相应接口。所有主机间流量若都经路由器转发,转发可能集中到路由器;依赖主机间链路组播的服务(例如 mDNS)也可能被打断。

仅 L3 隔离为每台主机提供不同子网,同时允许共享介质。它能缓解大多数已盘点问题,但不能把共享介质变成完全独立的链路:链路本地 DAD 的组播性能与可靠性仍取决于介质,且在链安全语境仍取决于信任模型。RFC 8273 与 RFC 9663提供了唯一前缀方向及大规模广播网络中的前缀委派部署背景,但并不替运营者决定具体拓扑或阈值。

部分 L2 隔离让主机仍处于一个子网,却借助代理或优化功能分开组播域。它的明确收益是减少组播流量,尤其是地址解析流量;它不会自动消除在链信任,也不会自动消除路由器按需创建 NCE。不能把它描述成完整的二层或三层隔离替代品。

RFC 9898 以从强到弱的顺序讨论隔离:更强的方法通常消除更多问题,但进入条件更高;较弱的方法留下更多残余问题,需要补充措施。这里是上下文运营指导,不是普遍适用的 MUST。Theo March 的分析是:先选择在唯一前缀、L2 能力、路由器接口和主机组播服务约束下仍可接受的最强隔离,再明确监控每个残余根因。RFC 9898并未规定厂商配置、接口上限、NCE上限、组播速率阈值、迁移计时器、部署普及率、成本、吞吐影响或事故下降幅度。

操作员决策路径与验证夹具

  1. 先分别记录组播负载、同链路节点信任边界、NCE 按需增长三类证据,不用一个指标代表三者。
  2. 验证是否能为每台主机提供唯一前缀,是否具备 L2 隔离,以及路由器是否支持所需接口或功能。
  3. 若服务依赖主机间组播,先在测试段确认 L3+L2 的影响;若 L2 成本或能力不可接受,评估仅 L3,并登记 DAD 与在链安全残余。
  4. 若只能做部分 L2,把收益限定为组播域分离,并另行处理信任和 NCE。

具体验证夹具包括:抓取 ND 组播并按地址解析、DAD 和其他类型分类;在受控测试中观察隔离前后可见的链路本地邻居;核对路由器 NCE 是否仍按需生成;对 mDNS 等主机组播服务做端到端发现测试;检查每台主机获得的前缀是否唯一。不要把一次成功测试外推为普遍性能结论。

来源