未知单播泛洪怎么收敛
目的 MAC 不在转发表里时,交换机会把帧在同一个 VLAN 内泛洪出去——这是交换机的正常机制,不是故障。问题在于端口数量大时,广播域内的一帧会复制成几十上百份,链路很快被打满。抑制思路分两类:思科用 switchport block 直接不让未知单播从该端口发出;华为/H3C 则用风暴抑制对未知单播做限速,超阈值后降速或丢弃。
基本信息
| 适用平台 | 华为 VRP、思科 IOS、H3C Comware 交换机 |
|---|---|
| 思科命令 | switchport block unicast / multicast(端口级,阻断泛洪) |
| 华为命令 | storm-control unknown-unicast min-rate / max-rate(限速) |
| H3C 命令 | storm-constrain unknown-unicast pps 上限 下限 |
| 配置位置 | 物理端口视图(多为二层接入或上联口) |
| 默认状态 | 三个平台默认都不做抑制 |
典型使用场景
- 大规模接入网:一个 VLAN 里几百个端口时,未知单播泛洪的开销随端口数线性放大
- 防 MAC 表溢出连带效应:表项被打满后大量流量变成未知单播,泛洪量陡增
- 服务器区防横扫:某台服务器扫描同网段地址时产生大量未知单播,抑制可限制其影响面
- 上联口保护:限制上行链路上的未知单播占比,保住关键业务的转发能力
- 排查期间的临时熔断:定位风暴源的过程中先抑制,避免影响面继续扩大
思科 IOS
思科 IOS
SW-CORE-01(config)# interface GigabitEthernet0/1
SW-CORE-01(config-if)# switchport block unicast # 未知单播不再从本口泛洪出去
SW-CORE-01(config-if)# switchport block multicast # 同时阻断未知组播
SW-CORE-01# show interfaces GigabitEthernet0/1 | include unknown # 看未知单播计数
! 注意语义:这是「直接阻断」,不是限速华为 VRP
华为 VRP
[Huawei] interface GigabitEthernet0/0/1
[Huawei-GigabitEthernet0/0/1] storm-control unknown-unicast min-rate 1000 max-rate 5000
# min-rate:低于该速率正常转发;max-rate:超过则进入抑制
# 单位与取值范围随平台不同,下发前用 ? 确认
[Huawei-GigabitEthernet0/0/1] storm-control broadcast min-rate 1000 max-rate 5000
<Huawei> display interface GigabitEthernet0/0/1 | include storm # 查看抑制状态H3C Comware
H3C Comware
[H3C] interface GigabitEthernet1/0/1
[H3C-GigabitEthernet1/0/1] storm-constrain unknown-unicast pps 5000 1000
# 参数顺序为「上限 下限」,与华为的 min/max 顺序相反,抄配置时最容易搞错
[H3C-GigabitEthernet1/0/1] storm-constrain control block # 超阈值后的处理动作
<H3C> display storm-constrain interface GigabitEthernet1/0/1三厂手段语义对照
| 厂商 | 命令 | 行为 |
|---|---|---|
| 思科 IOS | switchport block unicast/multicast | 直接阻断该类未知流量从本口发出 |
| 华为 VRP | storm-control unknown-unicast | 限速:低于下限正常、超过上限抑制 |
| H3C | storm-constrain unknown-unicast | 限速并可选阻断动作 |
| 共性 | 均为端口级配置 | 只作用于本端口的发送侧异常流量 |
顺序与单位是最大的坑:华为是 min-rate 在前 max-rate 在后,H3C 是上限在前下限在后;单位上华为按包速率或比特率、H3C 常见为 pps,跨厂抄配置前先用 ? 看取值范围与单位提示。
未知单播泛洪在多数网络里是必须保留的:存储、部分心跳与心跳探测依赖泛洪完成首包到达。抑制前确认业务不依赖泛洪,或只在上联口做限速而不要全阻断。