NDP 代理和 DAD 代理
本主题详细介绍了接口受限和接口不受限制模式的邻接方发现协议 (NDP) 代理和重复地址检测 (DAD) 代理功能。
概述
NDP 代理功能允许在同一子网中且限制彼此直接通信的主机之间转发数据包。如果希望使具有相同子网的不同物理分段上的主机设备能够在没有额外网关和前缀的情况下进行通信,则需要 NDP 代理。NDP 代理就像具有相同前缀的多个段中间的节点或路由器。
将设备配置为地址的 NDP 代理时,配置的代理接口(代理路由器或节点)会代表不同物理分段中的设备向邻居请求 (NS) 发送邻接方通告 (NA) 回复。
DAD 代理功能使设备能够响应无法与同一子网中的其他节点直接通信的节点的 DAD 查询。
如果 NS 用于链路本地地址,则 NDP 或 DAD 代理功能不起作用。
NDP 和 DAD 代理(接口受限模式)
NDP 代理功能(接口限制模式)允许在同一子网中且限制彼此直接通信的主机之间转发数据包。此功能主要用于代理节点需要应用访问控制并拦截主机之间流动的流量的情况。在 SRX 系列防火墙上配置 NDP 代理时,设备将发送 NA,并响应寻求分配给 SRX 系列防火墙内主机的 IPv6 前缀的 MAC 地址的设备发出的请求。
DAD 功能使用邻接方请求 (NS) 消息检测本地链路上重复地址的使用情况。DAD 功能适用于 IPv6 地址,其功能类似于 IPv4 中的免费 ARP。
NDP 和 DAD 代理(接口不受限制模式)
从 Junos OS 22.1R1 版开始,我们支持跨多个代理配置的接口的 NDP 和 DAD 代理功能(接口无限制模式)。NDP 接口无限制代理在现有 IPv6 ND 功能中工作,并且仅在启用时才会调用。接口不受限制模式:ND 功能在 NDP 和 DAD 代理的所有配置接口上协同工作。
在早期版本中,NDP 和 DAD 代理功能受到限制,并且仅限于配置的接口。目前,NDP 和 DAD 代理功能适用于多个配置的接口(接口无限制模式)。
在接口无限制模式下使用 NDP 和 DAD 代理功能时,配置的接口可以一起运行,以代表不同物理分段中的节点向邻居请求 (NS) 发送邻居通告 (NA) 回复,而这些节点无法被始发分段中的节点直接访问,而无需额外前缀分配的开销。
使用 set interfaces interface-name unit number family inet6 ndp-proxy interface-unrestricted 命令在接口上以接口无限制模式启用 NDP 代理时,代理接口:
-
为 NS 请求生成 NA。然后,代表可通过代理接口在子网上访问的其他主机从主机发送请求。
-
当 NS 中请求的地址在邻接方表中不可用时,生成 NS 并发送到子网的所有代理接口。
在属于 NS 数据包入口接口的路由表中查找目标地址的可转发路由。路由查找提供指向解析下一跃点的路由列表。代理使用这些下一跃点在配置的不同端口上发送 NS。
注意:当代理进行路由查找并且生成的下一跃点指向 NS 到达的同一接口时,代理就会丢弃该 NS。
-
允许您强制实施邻接方不可达性检测 (NUD),即使请求的目标地址在邻接方缓存中可用且可访问。当主机从一个段移动到另一个段时,强制 ND 功能很有用。要启用 NDP 代理强制解析功能,请使用命令
set protocols neighbor-discovery ndp-proxy proxy-force-resolve。 -
在其代理的主机之间转发数据包,从而在解析邻居后允许主机之间进行通信。
DAD 功能使用邻接方请求 (NS) 消息检测本地链路上重复地址的使用情况。
使用 set interfaces interface-name unit <number> family inet6 dad-proxy interface-unrestricted 命令在多个接口上启用 DAD 代理时:
-
如果可通过其他代理接口访问 NS 暂定地址,则 DAD 代理将代表其他主机为 DAD NS 请求生成 NA 回复。
- 当 DAD NS 请求到达时,如果暂定地址在邻居缓存中不可用或处于过时状态,则 DAD 代理将在除收到的代理接口之外的所有其他代理接口上启动 NUD。
-
如果 DAD 请求来自某一主机,而该请求已处于另一台主机 DAD 进程中间的暂定地址,则 DAD 代理会为两台主机回复 NA。
配置 NDP 代理
配置 DAD 代理
要在一个接口或多个接口上配置 DAD 代理:
用户路由的 NDP 代理支持
本主题介绍邻接方发现协议 (NDP) 代理支持。为接口启用此功能后,地址解析协议 (ARP) 和邻接方发现协议 (NDP) 表中存在的每个 IPv4 或 IPv6 主机地址的主机路由都将保留在路由信息库 (RIB) 中。
我们举例来说,两台主机属于同一网段,但位于不同的物理网络上,并且都连接到自己的网关。两台主机都配置了相同的 IP 地址。
当服务器被划分为主机以支持服务器和网关之间的灵活部署和迁移时,通常会在多个网关之间配置第 2 层连接。但是,这可能会导致网络问题,例如更大的第 2 层域和广播风暴。要解决此问题,可以在主机网关上使用基于路由的代理邻接方发现。网关将自己的 MAC 地址发送到源主机,从源主机发送到其他主机的流量通过路由完成,而非第 2 层交换。
假设主机 A 和具有 IPV6 地址 2001:db8:a20::1/64 和 2001:db8:20::2/64 的主机 B 位于同一网段上。路由器 A 和路由器 B 使用第 3 层网络连接。两台路由器上的主机接口具有相同的 MAC 和 IPv6 地址。由于目标 IPv6 地址和本地 IPv6 地址在同一网段,如果主机 A 想要与主机 B 通信,它会发送邻居请求 (NS) 数据包来请求主机 B 的 MAC 地址。但是,由于主机 A 和主机 B 位于不同的物理网络上,因此主机 B 不会接收 NS,也无法回复。
为了解决该问题,引入了基于用户路由的新代理邻居发现 (ND) 选项。此模式仅在不受限制的代理模式下受支持。
新的代理模式依靠主机路由生成功能来检查可访问性。为接口启用此功能后,地址解析协议 (ARP) 和邻接方发现协议 (NDP) 表中存在的每个 IPv4 或 IPv6 主机地址的主机路由都将保留在路由信息库 (RIB) 中。根据路由协议导出策略,RIB 中处于活动状态的这些主机路由可重新分发到 BGP 或 IGP 中。用户路由代理 ND 依靠这些重新分发的用户路由来检查主机的可访问性。
主动 ARP 检测有助于快速学习可访问的虚拟机,并且不支持主动 IPV6 邻居学习。
不支持非默认路由表中的主机路由,因此也不支持基于新用户路由的代理。