Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

IPv6 邻居发现检测

IPv6 邻居发现协议概述

IPv6 节点(主机和路由器)使用邻居发现协议 (NDP) 来发现驻留在同一链路上的其他节点的状态和链路层地址。主机使用 NDP 查找愿意代表他们转发数据包的相邻路由器,而路由器则使用它来通告其存在。节点还使用 NDP 来维护有关活动邻居路径的可访问性信息。当路由器或路由器的路径出现故障时,主机可以搜索备用路径。

NDP 过程基于邻居请求和播发消息的交换。NDP 消息不安全,这使得 NDP 容易受到涉及欺骗(或伪造)链路层地址的攻击。通过发送带有欺骗性源 MAC 地址的邻居请求消息,或者通过发送具有欺骗性目标 MAC 地址的邻居通告地址,攻击节点可导致将合法节点的数据包发送到其他链路层地址。然后,欺骗的 MAC 地址与其他节点的合法网络 IPv6 地址相关联。

邻居发现 (ND) 检测

IPv6 邻居发现检查通过检查邻居发现消息并根据 DHCPv6 侦听表验证这些消息来缓解 NDP 安全漏洞。通过侦听 DHCPv6 消息交换构建的 DHCPv6 侦听表包括与该 VLAN 关联的每台主机的 IPv6 地址、MAC 地址、VLAN 和接口。当在不受信任的接口上收到邻居发现消息时,邻居发现检查将丢弃数据包,除非源 IPv6 和 MAC 地址、VLAN 和接口可以与 DHCPv6 侦听表中的条目匹配。通过配置 static-ipv6 CLI 语句,可以将条目添加到 DHCPv6 侦听表中。

注意:

受信任接口上始终允许邻居发现消息。

邻居发现检查可验证五种不同的 ICMPv6 消息类型:路由器请求、路由器通告、邻居请求、邻居通告和重定向。通过丢弃无法根据 DHCPv6 侦听表验证的消息数据包,邻居发现检查可以防止以下类型的攻击:

  • 缓存中毒攻击 — 邻居发现缓存中毒相当于 ARP 欺骗的 IPv6,攻击者使用伪造地址向网络上的其他主机发送未经请求的播发,以将其自己的 MAC 地址与合法的网络 IP 地址相关联。IPv6 地址和 MAC 地址之间的这些绑定由每个节点存储在其邻居缓存中。使用恶意绑定更新缓存后,攻击者可以发起中间人攻击,拦截发往合法主机的流量。

  • 路由拒绝服务 (DoS) 攻击 — 攻击者可能通过欺骗路由器地址并发送清除 路由器 标志的邻居播发消息,导致主机禁用其第一跃点路由器。受害主机假定曾经是其第一跃点路由器的设备不再是路由器。

  • 重定向攻击 — 路由器使用 ICMPv6 重定向请求通知主机到目标的更有效路由。主机可以重定向到更好的第一跃点路由器,但也可以通过路由器重定向消息通知目标实际上是邻居。使用此预配的攻击者可以实现类似于缓存中毒的效果,并拦截来自受害主机的所有流量。邻居发现检查检查路由器重定向消息是否仅由受信任的路由器发送。

启用 ND 检测

注意:

配置邻居发现检查后,将自动启用 DHCPv6 侦听。DHCPv6 侦听不需要显式配置。

要在 VLAN 上启用邻接方发现检查,请执行以下操作: