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 消息不安全,这使得 NDP 容易受到涉及链路层地址欺骗(或伪造)的攻击。攻击节点可能会导致合法节点的数据包发送至其他一些链路层地址,方法是发送带有欺骗源 MAC 地址的邻接方请求消息,或发送带有欺骗目标 MAC 地址的邻接方广告地址。然后,欺骗式 MAC 地址与其他节点的合法网络 IPv6 地址相关联。

邻接方发现 (ND) 检测

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

注意:

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

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

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

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

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

支持 ND 检测

注意:

配置邻接方发现检测时,将自动启用 DHCPv6 侦听。DHCPv6 侦听无需显式配置。

要在 VLAN 上启用邻接方发现检查: