Col*_*d T 20 cisco ethernet arp
希望这里的人可能对我们面临的问题有所了解。目前,我们让思科 TAC 正在调查此案,但他们正在努力寻找根本原因。
虽然标题提到了 ARP 广播和高 CPU 使用率,但现阶段我们不确定它们是否相关。
原问题已发布在INE在线社区
我们已将网络精简为没有冗余设置的单个链路,将其视为星形拓扑。
事实:
网络和交换机上的症状:
#sh processes cpu sorted | exc 0.00%
CPU utilization for five seconds: 99%/12%; one minute: 99%; five minutes: 99%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
12 111438973 18587995 5995 44.47% 43.88% 43.96% 0 ARP Input
174 59541847 5198737 11453 22.39% 23.47% 23.62% 0 Hulc LED Process
221 7253246 6147816 1179 4.95% 4.25% 4.10% 0 IP Input
86 5459437 1100349 4961 1.59% 1.47% 1.54% 0 RedEarth Tx Mana
85 3448684 1453278 2373 1.27% 1.04% 1.07% 0 RedEarth I2C dri
Run Code Online (Sandbox Code Playgroud)
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 001c.c06c.d620 DYNAMIC Gi1/1/3
1 001c.c06c.d694 DYNAMIC Gi1/1/3
1 001c.c06c.d6ac DYNAMIC Gi1/1/3
1 001c.c06c.d6e3 DYNAMIC Gi1/1/3
1 001c.c06c.d78c DYNAMIC Gi1/1/3
1 001c.c06c.d7fc DYNAMIC Gi1/1/3
Run Code Online (Sandbox Code Playgroud)
CAM Utilization for ASIC# 0 Max Used
Masks/Values Masks/values
Unicast mac addresses: 6364/6364 1165/1165
IPv4 IGMP groups + multicast routes: 1120/1120 1/1
IPv4 unicast directly-connected routes: 6144/6144 524/524
IPv4 unicast indirectly-connected routes: 2048/2048 77/77
IPv4 policy based routing aces: 452/452 12/12
IPv4 qos aces: 512/512 21/21
IPv4 security aces: 964/964 45/45
Run Code Online (Sandbox Code Playgroud)
我们现在正处于一个阶段,我们将需要大量的停机时间来一次隔离每个区域,除非其他人有一些想法来确定这个奇怪而奇怪的问题的根源或根本原因。
感谢@MikePennington 和@RickyBeam 的详细回复。我会尽量回答我能回答的。
“由于您在交换机端口之间收到大量 MAC 抖动,因此很难找到攻击者所在的位置(假设您发现两三个发送大量 arp 的 mac 地址,但源 mac 地址在端口之间不断抖动)。”
我们(思科 TAC、CCIE、CCNP)在全球范围内一致认为,这不是交换机配置,而是主机/设备导致了问题。
Col*_*d T 12
问题在于 SCCM 2012 SP1,一项名为:ConfigMrg Wake-Up Proxy 的服务。“功能”不存在 SCCM 2012 RTM。
在策略中关闭此功能后的 4 小时内,我们看到 CPU 使用率稳步下降。到 4 小时后,ARP 使用率仅为 1-2%!
综上所述,这个服务是做MAC地址欺骗的!无法相信它造成了多大的破坏。
以下是 Microsoft Technet 的全文,因为我认为了解这与发布的问题有何关系很重要。
对于任何感兴趣的人,以下是技术细节。
Configuration Manager 支持两种局域网唤醒 (LAN) 技术以在您想要安装所需软件(例如软件更新和应用程序)时唤醒处于睡眠模式的计算机:传统唤醒数据包和 AMT 开机命令。
从 Configuration Manager SP1 开始,您可以通过使用唤醒代理客户端设置来补充传统的唤醒数据包方法。唤醒代理使用对等协议和选定的计算机来检查子网上的其他计算机是否唤醒,并在必要时唤醒它们。当站点配置为 Wake On LAN 并且客户端配置为唤醒代理时,过程如下:
安装了 Configuration Manager SP1 客户端且在子网上未处于休眠状态的计算机检查子网上的其他计算机是否处于唤醒状态。它们通过每 5 秒向彼此发送 TCP/IP ping 命令来实现此目的。
如果其他计算机没有响应,则假定它们处于睡眠状态。唤醒的计算机成为子网的管理器计算机。
由于计算机可能由于睡眠以外的原因(例如,它已关闭、从网络中删除或代理唤醒客户端设置不再应用)而没有响应,因此计算机是每天下午 2 点当地时间发送唤醒数据包。没有响应的计算机将不再被假定为处于睡眠状态,也不会被唤醒代理唤醒。
要支持唤醒代理,每个子网必须至少唤醒三台计算机。为了实现这一点,非确定性地选择了三台计算机作为子网的守护计算机。这意味着它们会保持清醒,尽管有任何配置的电源策略在一段时间不活动后睡眠或休眠。例如,由于维护任务,守护计算机遵守关闭或重新启动命令。如果发生这种情况,其余的监护人计算机会唤醒子网上的另一台计算机,以便子网继续拥有三台监护人计算机。
管理器计算机要求网络交换机将休眠计算机的网络流量重定向到它们自己。
重定向是通过管理器计算机广播一个以太网帧来实现的,该帧使用休眠计算机的 MAC 地址作为源地址。这使得网络交换机的行为就像睡眠计算机已移动到管理器计算机所在的同一端口一样。管理器计算机还为休眠计算机发送 ARP 数据包,以保持条目在 ARP 缓存中是最新的。管理者电脑也会代表休眠电脑响应ARP请求,回复休眠电脑的MAC地址。
在此过程中,休眠计算机的 IP 到 MAC 映射保持不变。唤醒代理的工作原理是通知网络交换机另一个网络适配器正在使用另一个网络适配器注册的端口。然而,这种行为被称为 MAC 波动,对于标准网络操作来说是不寻常的。一些网络监控工具会寻找这种行为,并假设有问题。因此,当您使用唤醒代理时,这些监控工具可以生成警报或关闭端口。如果您的网络监控工具和服务不允许 MAC 波动,请不要使用唤醒代理。
当管理计算机看到一个新的 TCP 连接请求给睡眠计算机,并且请求是指向睡眠计算机在进入睡眠状态之前监听的端口时,管理计算机向睡眠计算机发送一个唤醒包,然后停止重定向此计算机的流量。
休眠的计算机接收到唤醒包并唤醒。发送计算机会自动重试连接,这一次,计算机处于唤醒状态并可以响应。
参考:http : //technet.microsoft.com/en-us/library/dd8eb74e-3490-446e-b328-e67f3e85c779#BKMK_PlanToWakeClients
感谢所有在这里发帖并协助故障排除过程的人,非常感谢。
Thi*_*his 10
- 我们看到来自 VLAN 1 的大型广播数据包,VLAN 1 用于桌面设备。我们使用 192.168.0.0/20 ...
- Wiresharks 显示数百台计算机正在使用 ARP 广播淹没网络......
您的 ARP Input 进程很高,这意味着交换机在处理 ARP 上花费了大量时间。ARP 泛滥的一个非常常见的原因是交换机之间的环路。如果你有一个循环,那么你也可以得到你上面提到的 mac 襟翼。ARP泛洪的其他可能原因是:
首先排除上面提到的错误配置或layer2攻击的可能性。最简单的方法是在 linux 机器上使用arpwatch(即使您必须在笔记本电脑上使用livecd)。如果您遇到配置错误或第 2 层攻击,则 arpwatch 会在系统日志中为您提供这样的消息,其中列出了争夺同一 IP 地址的 mac 地址...
Oct 20 10:31:13 tsunami arpwatch: flip flop 192.0.2.53 00:de:ad:85:85:ca (00:de:ad:3:d8:8e)
当您看到“触发器”时,您必须追踪 mac 地址的来源,并弄清楚它们为什么要争夺同一个 IP。
- 大量 MAC 襟翼
- 生成树已通过 Cisco TAC 和 CCNP/CCIE 合格人员的验证。我们关闭了所有冗余链接。
作为一个经历过这种情况的人比我想回忆的要多,不要假设你找到了所有的冗余链接......只要让你的交换机端口始终运行即可。
由于您在交换机端口之间收到大量 mac 抖动,因此很难找到攻击者所在的位置(假设您发现两三个发送大量 arp 的 mac 地址,但源 mac 地址在端口之间不断抖动)。如果您没有对每个边缘端口的 mac 地址实施硬限制,那么在不手动拔下电缆的情况下很难追踪这些问题(这是您想要避免的)。交换机环路会导致网络中出现意外路径,您可能会从通常应该是桌面交换机端口的地方间歇性地学习数百台 Mac。
减慢 mac 移动速度的最简单方法是使用port-security. 在连接到单个 PC(没有下游交换机)的 Vlan 1 中的每个接入交换机端口上,在您的 cisco 交换机上配置以下接口级命令...
switchport mode access
switchport access vlan 1
!! switchport nonegotiate disables some Vlan-hopping attacks via Vlan1 -> another Vlan
switchport nonnegotiate
!! If no IP Phones are connected to your switches, then you could lower this
!! Beware of people with VMWare / hubs under their desk, because
!! "maximum 3" could shutdown their ports if they have more than 3 macs
switchport port-security maximum 3
switchport port-security violation shutdown
switchport port-security aging time 5
switchport port-security aging type inactivity
switchport port-security
spanning-tree portfast
!! Ensure you don't have hidden STP loops because someone secretly cross-connected a
!! couple of desktop ports
spanning-tree bpduguard enable
Run Code Online (Sandbox Code Playgroud)
在大多数 mac/ARP 泛洪情况下,将此配置应用于所有边缘交换机端口(尤其是带有 portfast 的端口)将使您回到正常状态,因为该配置将关闭超过三个 mac 地址的任何端口,并秘密禁用循环的 portfast 端口。每个端口 3 台 mac 是一个在我的桌面环境中运行良好的数字,但您可以将其提高到 10 并且可能没问题。完成此操作后,任何第 2 层循环都将中断,快速的 mac 摆动将停止,这使诊断变得更加容易。
另外几个全局命令可用于跟踪与广播风暴 (mac-move) 和泛洪 (阈值) 相关的端口...
mac-address-table notification mac-move
mac address-table notification threshold limit 90 interval 900
Run Code Online (Sandbox Code Playgroud)
完成后,可选择执行 aclear mac address-table以加速从可能已满的 CAM 表中恢复。
- Ran show mac address-table on different switch and core本身(在core上,比如直接插在桌面上,我的桌面),我们可以看到几个不同的MAC硬件地址注册到了接口上,即使那个接口有只有一台电脑连接到这个...
整个答案都假设您的 3750 没有导致问题的错误(但您确实说过,wireshark 表示 PC 正在进水)。当只有一台计算机连接到 Gi1/1/3 时,您向我们展示的内容显然是错误的,除非该 PC 上装有类似 VMWare 的东西。
根据我们的聊天对话,我可能不必提及显而易见的事情,但为了未来的访客,我会......