了解和使用动态 ARP 检查 (DAI)
动态 ARP 检测 (DAI) 可保护交换设备免受地址解析协议 (ARP) 数据包欺骗(也称为 ARP 中毒或 ARP 缓存中毒)的影响。
DAI 检查 LAN 上的 ARP,并使用交换机上 DHCP 侦听数据库中的信息来验证 ARP 数据包并防范 ARP 欺骗。将 ARP 请求和回复与 DHCP 侦听数据库中的条目进行比较,并根据这些比较结果做出过滤决策。当攻击者试图使用伪造的 ARP 数据包欺骗地址时,交换机会将该地址与数据库中的条目进行比较。如果 ARP 数据包中的媒体访问控制 (MAC) 地址或 IP 地址与 DHCP 侦听数据库中的有效条目不匹配,则会丢弃数据包
了解 ARP 欺骗和检查
ARP 数据包被发送到路由引擎并受到速率限制,以保护交换设备免受 CPU 过载的影响。
地址解析协议
在多接入网络上发送 IP 数据包需要将 IP 地址映射到以太网 MAC 地址。
以太网 LAN 使用 ARP 将 MAC 地址映射到 IP 地址。
交换设备将此映射保留在将数据包转发到网络设备时查询的缓存中。如果 ARP 缓存不包含目标设备的条目,则主机(DHCP 客户端)将广播针对该设备地址的 ARP 请求,并将响应存储在缓存中。
ARP 欺骗
ARP 欺骗是发起中间人攻击的一种方法。攻击者发送 ARP 数据包,欺骗 LAN 上另一台设备的 MAC 地址。交换设备不是将流量发送到正确的网络设备,而是将流量发送到具有模拟正确设备的欺骗地址的设备。如果模拟设备是攻击者的计算机,则攻击者将从交换机接收必须流向另一台设备的所有流量。结果是来自交换设备的流量被误导,无法到达其正确的目的地。
一种类型的 ARP 欺骗是免费 ARP,即网络设备发送 ARP 请求以解析自己的 IP 地址。在正常 LAN 操作中,无偿 ARP 消息表示两台设备具有相同的 MAC 地址。当设备中的网络接口卡 (NIC) 发生更改并重新启动设备时,也会广播这些设备,以便 LAN 上的其他设备更新其 ARP 缓存。在恶意情况下,攻击者可以通过向设备发送 ARP 响应来毒害网络设备的 ARP 缓存,该设备将发往特定 IP 地址的所有数据包定向到其他 MAC 地址。
为了防止通过无偿 ARP 和其他类型的欺骗进行 MAC 欺骗,交换机会通过 DAI 检查 ARP 响应。
动态 ARP 检测
DAI 检查 LAN 上的 ARP 请求和响应,并验证 ARP 数据包。交换机拦截来自访问端口的 ARP 数据包,并根据 DHCP 侦听数据库进行验证。如果数据库中没有与 ARP 数据包中的信息对应的 IP-MAC 条目,DAI 将丢弃 ARP 数据包,并且本地 ARP 缓存不会使用该数据包中的信息进行更新。当数据包中的 IP 地址无效时,DAI 还会丢弃 ARP 数据包。ARP 探测数据包不受动态 ARP 检测。交换机始终转发此类数据包。
适用于 EX 系列交换机和 QFX 系列的 Junos OS 对接入端口接收的 ARP 数据包使用 DAI,因为这些端口默认不受信任。默认情况下,中继端口受信任,因此 ARP 数据包会绕过其上的 DAI。
您可以为每个 VLAN 配置 DAI,而不是为每个接口(端口)配置 DAI。默认情况下,对所有 VLAN 禁用 DAI。
如果将接口设置为 DHCP 可信端口,则该接口对于 ARP 数据包也是受信任的。
如果您的交换设备是 EX 系列交换机,并且使用的 Junos OS 支持增强型第 2 层软件 (ELS) 配置样式,请参阅 启用可信 DHCP 服务器 (ELS),了解有关将 接入接口配置为 DHCP 可信端口的信息。
对于定向到网络设备所连接的交换设备的数据包,ARP 查询在 VLAN 上广播。ARP 对这些查询的响应受 DAI 检查。
对于 DAI,所有 ARP 数据包都被捕获到数据包转发引擎中。为防止 CPU 过载,发往路由引擎的 ARP 数据包有速率限制。
如果 DHCP 服务器出现故障,并且先前有效的 ARP 数据包的 IP-MAC 条目的租用时间用完,则该数据包将被阻止。
确定已检查数据包的优先级
QFX 系列和 EX4600 交换机不支持对已检查数据包设置优先级。
您可以使用服务等级 (CoS) 转发类和队列来确定指定 VLAN 的 DAI 数据包的优先级。这种类型的配置会将该 VLAN 的已检查数据包放入您指定的出口队列中,以确保安全过程不会干扰高优先级流量的传输。
启用动态 ARP 检测 (ELS)
此任务使用支持增强型第 2 层软件 (ELS) 配置样式的适用于 EX 系列交换机的 Junos OS。如果您的交换机运行的软件不支持 ELS,请参阅启用动态 ARP 检测(非 ELS)。
动态 ARP 检测 (DAI) 可保护交换机免受 ARP 欺骗。DAI 检查 LAN 上的 ARP 数据包,并使用交换机上 DHCP 侦听数据库中的信息来验证 ARP 数据包并防止 ARP 缓存中毒。
必须先配置 VLAN,然后才能在 VLAN 上启用 DAI。请参阅为支持 ELS 的 EX 系列交换机配置 VLAN(CLI 过程)。
要使用 CLI 在 VLAN 上启用 DAI,请执行以下操作:
[edit vlans vlan-name forwarding-options dhcp-security] user@switch# set arp-inspection
参见
启用动态 ARP 检测(非 ELS)
此任务将 Junos OS 用于不支持增强型第 2 层软件 (ELS) 配置样式的 EX 系列交换机。如果您的交换机运行的软件支持 ELS,请参阅 启用动态 ARP 检查 (ELS)。有关 ELS 的详细信息,请参阅 使用增强型第 2 层软件 CLI。
动态 ARP 检测 (DAI) 可保护交换机免受 ARP 欺骗。DAI 检查 LAN 上的 ARP 数据包,并使用交换机上 DHCP 侦听数据库中的信息来验证 ARP 数据包并防止 ARP 缓存中毒。
在 VLAN 上启用 DAI
您可以为每个 VLAN 配置 DAI,而不是为每个接口(端口)配置 DAI。默认情况下,对所有 VLAN 禁用 DAI。
要在一个或多个 VLAN 或所有 VLAN 上启用 DAI,请执行以下操作:
在单个 VLAN 上:
[edit ethernet-switching-options secure-access-port] user@switch# set vlan vlan-name arp-inspection
在所有 VLAN 上:
[edit ethernet-switching-options secure-access-port] user@switch# set vlan all arp-inspection
在桥接域上启用 DAI
如有必要,请参阅 配置桥接域 以设置桥接域。
要在桥接域上启用 DAI,请执行以下操作:
[edit bridge-domains bridge-domain-name forwarding-options dhcp-security] user@device# set arp-inspection
应用 CoS 转发类以确定已检查数据包的优先级
您可能需要使用服务等级 (CoS) 来保护关键应用程序中的数据包在网络拥塞和延迟期间不被丢弃,并且可能还需要 DHCP 侦听这些关键数据包进出的相同端口的端口安全功能。
要将 CoS 转发类和队列应用于 DAI 数据包,请执行以下操作:
验证 DAI 是否正常工作
目的
验证交换机上的动态 ARP 检查 (DAI) 是否正常工作。
行动
从连接到交换机的网络设备发送一些 ARP 请求。
显示 DAI 信息:
user@switch> show arp inspection statistics ARP inspection statistics: Interface Packets received ARP inspection pass ARP inspection failed --------------- --------------- -------------------- --------------------- ge-0/0/1.0 7 5 2 ge-0/0/2.0 10 10 0 ge-0/0/3.0 12 12 0
意义
示例输出显示每个接口接收和检查的 ARP 数据包数,并列出了每个接口上通过检查的数据包数和未通过检测的数据包数。交换机会将 ARP 请求和回复与 DHCP 侦听数据库中的条目进行比较。如果 ARP 数据包中的 MAC 地址或 IP 地址与数据库中的有效条目不匹配,则会丢弃该数据包。