Skip to main content

2. Review of Inventoried ND Issues (ND问题清单回顾)

2.1. Multicast May Cause Performance and Reliability Issues (组播可能导致性能和可靠性问题)

在某些情况下,ND对NS、NA、RS和RA使用组播。虽然组播在某些场景(例如有线网络)中可能非常高效,但组播在其他场景(例如大型L2网络或无线网络)中也可能效率低下。

通常,组播可能在大型L2网络中产生大量协议流量。这可能消耗网络带宽,增加处理开销,并降低网络性能 [RFC7342]。

在无线网络中,由于更高的传输干扰概率、更低的数据速率以及缺乏确认,组播可能效率低下甚至不可靠([RFC9119]的第3.1节)。

各种ND消息的组播相关性能问题总结如下:

  • 问题1 (Issue 1): LLA DAD降低性能

    在具有N个地址的L2网络中(可能远大于主机数量,因为每个主机可以有多个地址),可能有N个这样的组播消息。当N很大时,这可能导致性能问题。

  • 问题2 (Issue 2): 路由器的周期性非请求RA耗尽主机电池

    组播RA通常限制为每MIN_DELAY_BETWEEN_RAS(3秒)一个数据包,并且链路上通常只有一个或两个路由器,因此不太可能导致性能问题。但是,对于电池供电的主机,此类消息可能唤醒它们并耗尽其电池 [RFC7772]。

  • 问题3 (Issue 3): GUA DAD降低性能

    与问题1相同。

  • 问题4 (Issue 4): 路由器对主机的地址解析降低性能

    与问题1相同。

  • 问题5 (Issue 5): 主机对主机的地址解析降低性能

    与问题1相同。

  • 待进一步研究的问题 (Issue for Further Study): 主机MAC地址变更的组播NA可能降低性能

    使用随机化和变化的MAC地址 [MADINAS],可能有许多这样的组播消息。

在无线网络中,组播更有可能导致数据包丢失。由于DAD将无响应视为未检测到重复地址,数据包丢失可能导致重复地址未被检测到。组播可靠性问题总结如下:

  • 问题6 (Issue 6): LLA DAD在无线网络中不完全可靠

  • 问题7 (Issue 7): GUA DAD在无线网络中不完全可靠

注意: IPv6地址冲突极不可能发生。因此,这两个问题在很大程度上是理论性的而非实际性的。

在公共接入网络等场景中,某些节点可能不可信。链路上的攻击者可能导致以下链路内安全问题 [RFC3756] [RFC9099]:

  • 问题8 (Issue 8): 源IP地址欺骗 (Source IP Address Spoofing)

    攻击者可以使用另一个节点的IP地址作为其ND消息的源地址来假装是该节点。然后攻击者可以发起各种重定向或拒绝服务 (Denial-of-Service, DoS) 攻击。

  • 问题9 (Issue 9): 拒绝DAD (Denial of DAD)

    攻击者可以重复响应受害者的DAD消息,导致受害者的地址配置过程失败,从而导致对受害者的DoS攻击。

  • 问题10 (Issue 10): 恶意RA (Rogue RAs)

    攻击者可以向受害主机发送RA来假装是路由器。然后攻击者可以发起各种重定向或DoS攻击。

  • 问题11 (Issue 11): 欺骗重定向 (Spoofed Redirects)

    攻击者可以向受害主机发送伪造的重定向,将其流量重定向到合法路由器本身。

  • 问题12 (Issue 12): 重放攻击 (Replay Attacks)

    攻击者可以捕获有效的ND消息并稍后重放它们。

2.3. Router-NCE-on-Demand May Cause Forwarding Delay, NCE Exhaustion, and Address Accountability Issues (按需路由器NCE可能导致转发延迟、NCE耗尽和地址问责问题)

当路由器需要将数据包转发到节点但尚未拥有该节点的邻居缓存条目 (Neighbor-Cache Entry, NCE) 时,它首先创建一个处于INCOMPLETE状态的NCE。然后路由器向节点的请求节点组播地址 (Solicited-Node Multicast Address) 组播NS。当目标使用包含其MAC地址的NA响应时,路由器使用该地址更新NCE并将其状态更改为REACHABLE,从而完成该条目。本文档将此过程称为"按需路由器NCE (Router-NCE-on-Demand)"。

按需路由器NCE可能导致以下问题:

  • 问题13 (Issue 13): NCE耗尽 (NCE Exhaustion)

    攻击者可以发送大量针对不存在IP地址的数据包,导致路由器创建大量处于INCOMPLETE状态的NCE。由此产生的资源耗尽可能导致路由器故障。本文档中描述的这种漏洞称为"NCE耗尽",不需要攻击者在链路上。

  • 问题14 (Issue 14): 路由器转发延迟 (Router Forwarding Delay)

    当数据包到达路由器时,路由器在尝试确定主机的MAC地址时对其进行缓冲。这种缓冲延迟了转发,并且根据路由器的缓冲区大小,可能导致数据包丢失。这种延迟在本文档中称为"按需路由器NCE转发延迟"。

  • 问题15 (Issue 15): 缺乏地址问责 (Lack of Address Accountability)

    使用SLAAC,主机生成其IP地址。路由器在创建NCE条目之前不知道主机的IP地址。使用DHCPv6 [RFC8415],除非执行DHCPv6窥探,否则路由器可能不知道主机的地址。在公共接入网络中,订户管理通常依赖于IP地址(或前缀)识别,这种缺乏地址问责构成了挑战 [AddrAcc]。如果不知道主机的IP地址,网络管理员无法有效管理订户,这在公共接入网络中尤其成问题。此外,一旦路由器创建了其NCE,ND [RFC4861] 没有提供检索它们以进行管理或监控的机制,如[RFC9099]的第2.6.1节所述。

2.4. Summary of ND Issues (ND问题总结)

如第2.1节、第2.2节和第2.3节所讨论的,ND问题总结如下。这些问题源于三个主要原因:组播 (Multicast)、信任所有节点 (Trusting-all-nodes) 和按需路由器NCE (Router-NCE-on-Demand)。消除这些原因中的任何一个也将缓解相应的问题。这些观察为解决和防止ND相关问题提供了指导。

  1. 组播相关问题 (Multicast-related Issues):

    • 性能问题 (Performance Issues):

      • 问题1: LLA DAD降低性能
      • 问题2: 路由器的周期性非请求RA耗尽主机电池
      • 问题3: GUA DAD降低性能
      • 问题4: 路由器对主机的地址解析降低性能
      • 问题5: 主机对主机的地址解析降低性能
    • 可靠性问题 (Reliability Issues):

      • 问题6: LLA DAD在无线网络中不完全可靠
      • 问题7: GUA DAD在无线网络中不完全可靠
  2. 信任所有节点相关问题 (Trusting-all-nodes Related Issues):

    • 问题8: 源IP地址欺骗
    • 问题9: 拒绝DAD
    • 问题10: 恶意RA
    • 问题11: 欺骗重定向
    • 问题12: 重放攻击
  3. 按需路由器NCE相关问题 (Router-NCE-on-Demand Related Issues):

    • 问题13: NCE耗尽
    • 问题14: 路由器转发延迟
    • 问题15: 缺乏地址问责

这些问题是潜在漏洞,可能不会在所有使用场景中显现。

当这些问题可能在特定部署中发生时,建议考虑可用的缓解解决方案。它们将在下一节中描述。