使用 %SW_DAI-4-PACKET_RATE_EXCEEDED 错误禁用动态 ARP 检查端口

网络工程 思科 arp 端口安全 dhcp 监听
2021-07-31 22:53:18

由于动态 arp 检查,我的网络中随机交换机(连接到 Windows 7 工作站)上的端口将进入错误禁用状态。端口将进入 err-disable 状态,因为每秒有太多的 arp 请求数据包。

请查看日志输出:

Mar  2 13:14:35 EST: %SW_DAI-4-PACKET_RATE_EXCEEDED: 21 packets received in 922 milliseconds 
on Gi1/0/6.
Mar  2 13:14:35 EST: %PM-4-ERR_DISABLE: arp-inspection error detected on Gi1/0/6, putting 
Gi1/0/6 in err-disable state
Mar  2 13:14:36 EST: %LINEPROTO-5-UPDOWN: Line protocol on Interface 
GigabitEthernet1/0/6, changed state to down

我能够捕获进入错误禁用状态的端口(通过 SPAN)。请参阅附件截图:https : //app.box.com/s/2ow0tlutzxwk5odk0zuqhug1kgqlykbd

gig1/0/6端口的工作站IP地址为151.121.79.89。

据我所知,在 13:14:34 有许多来自随机工作站的 151.121.79.89 ARP 请求,这导致端口进入 err-disable。

我正在与思科合作 WS-C2960S-48FPS-L

端口配置是所有接入端口的标准配置:

switchport access vlan 79
switchport mode access
switchport voice vlan 3001
switchport port-security maximum 3
switchport port-security
switchport port-security aging time 2
switchport port-security violation restrict
ip arp inspection limit rate 20
srr-queue bandwidth share 1 30 35 5
queue-set 2
priority-queue out
mls qos trust device cisco-phone
mls qos trust cos
spanning-tree portfast
service-policy input AUTOQOS-SRND4-CISCOPHONE-POLICY
ip dhcp snooping limit rate 20

我还包括了 arp 检查配置(vlan 79 上的 dhcp-snooping 配置是典型的):

ip arp inspection vlan 79
ip arp inspection validate src-mac ip
ip arp inspection log-buffer entries 1024
ip arp inspection log-buffer logs 1024 interval 10

我想知道为什么随机工作站会尝试在不到一秒的时间内解析连接到 1/0/6 的工作站的 IP 地址?

3个回答

ip arp inspection limit rate 20

每秒 20 个数据包真的很低。如果该端口上有一台服务器(或多个系统),则 20 pps 不算什么。

更新

我不知道你的网络上有哪些主机(谁在和谁说话,为什么),但是在 13:14:34 的那一刻,15 个主机问谁是 89。89问谁是5个主持人。在此期间之前 ~0.1 秒的请求运行总数为 21pps。[过滤器:arp && (eth.src == 10:1f:74:f5:be:36)]

[注意:Cisco 的默认值更糟,为15。]

user4608

我知道速率限制是 20。你会推荐什么值?

这个问题没有一个好的答案。您需要非常了解您的环境才能知道在哪里设置阈值。

可以说,如果您仍然看到每秒 50 次 DAI 检查的 err-disables,我会继续以 25 为增量增加它,直到您找到可行的方法。您可能会考虑使用它作为一种解决方法,直到您找到一个适用于您环境中所有端口的值...

errdisable recovery interval 30
errdisable recovery cause arp-inspection

这并不能解决问题,但它可以防止您的服务台在您弄清楚正确的 DAI 阈值是什么时收到大量被错误禁用的用户的电话。

如果你只是不关心 ARP 速率限制,你可以像这样配置你的端口......

sw1(config-if)#ip arp inspection limit none

但是,我宁愿处理一些痛苦,以便标记具有异常 arp 速率的端口。ARP 会发生很多不当行为,所以我宁愿有机会知道人们正在做一些奇怪的事情。

你可以通过你的系统日志 grepSW_DAI-4-PACKET_RATE_EXCEEDED直到你找到适合你的值。

奖励材料(dhcp 监听)

顺便说一句,严格来说,这不是您要问的,但如果您还没有问过,当您收到%DHCP_SNOOPING-5-DHCP_SNOOPING_UNTRUSTED_PORT消息时,我会在您的系统日志中设置警报(参考Ethan Banks 的博客)。这可能表明某人是:

  • 尝试在您的网络上运行自己的 DHCP 服务器(这自然不好,但并不总是恶意的)
  • 试图欺骗 DHCP OFFER 数据包(这很糟糕,例如他们可以将自己指定为客户端的网关以准备 MITM 攻击)

在我们拥有 10000 多台设备(其中许多是用户管理的 Windows 设备)的网络中,自从 Windows Vista 和 Windows 7 兴起以来,我们就遇到了这个问题。

该问题主要是由 Windows Link Layer Topology Discovery (LLTD) 引起的,它可以在本地网络中搜索 Windows 文件和打印机共享。

重要的是要知道,链路层拓扑发现只会在具有许多启用 LLTD 的设备的大型 LAN 或 VLAN 中引起问题。在那里,您通常可以通过连接支持 LLTD 的设备并启动 Windows 打印机搜索来可靠地触发错误禁用状态。

解决办法是

  • 将 arp 检查限制提高到可容忍的 LLTD 设备和/或
  • 因此在大多数设备上禁用链路层拓扑发现。

可以通过以下步骤之一禁用链路层拓扑发现:

  • 选择开始 → 控制面板 → 网络和共享中心 → 管理网络连接 → 右键单击​​您的以太网连接 → 属性 → 停用链路层拓扑发现映射器和响应器服务。
  • 通过“netcfg.exe -u ms_lltdio”和netcfg.exe -u ms_rspndr“卸载映射器和响应器驱动程序。这将删除所有网络设备的驱动程序。
  • LLTD Mapper和 LLTD Responder 的组策略