堆叠与转发表的关系
堆叠(华为 iStack/CSS、思科 StackWise/VSS、H3C IRF)把多台物理交换机虚拟成一台逻辑设备:管理面与控制面统一,接口名用成员编号区分。但转发芯片与转发表仍分布在每个成员上——MAC 地址表的学到的结果会在成员间同步,真正执行查表转发的仍是收到流量的那块芯片。所以整堆叠的表项能力不是一个「成员数相乘」的简单数字。
基本信息
| 适用形态 | 华为 iStack/CSS、思科 StackWise/VSS、H3C IRF |
|---|---|
| 相关表项 | 动态 MAC 表、静态与黑洞 MAC、ARP/ND、组播转发表 |
| 规格来源 | 产品规格文档(按系列 + 型号 + 软件版本核对) |
| 观测命令 | display mac-address(华为/H3C)、show mac address-table(思科) |
| 规划依据 | 单成员芯片表项上限与哈希分布,而非成员数叠加 |
典型使用场景
- 选型阶段:园区汇聚、数据中心接入等大表场景,按官方规格表核对表项上限,而不是按成员数相乘
- 扩容评估:新增成员后,原表项与流量如何重新分布到各成员
- 故障定位:表项数异常增长或泛洪变多时,判断是否单成员已逼近上限
- 变更核对:堆叠重构、成员替换后确认表项学习行为与预期一致
- 验收取证:记录各成员表项基线与峰值,作为容量评估的可复查证据
核对与观察命令
核对与观察命令
display stack # 华为:堆叠成员、主备角色与堆叠口状态
display mac-address # 华为:查看动态 MAC 表项与学到端口
display mac-address vlan 10 # 只看某个 VLAN 的表项
display mac-address interface GigabitEthernet0/0/1 # 按端口过滤表项
display mac-address aging-time # 查看动态表项老化时间
show switch detail # 思科:堆叠成员与堆叠口状态
show mac address-table count # 思科:各类表项数量统计
show mac address-table vlan 10 # 思科:按 VLAN 查看表项MAC 表逐列读法
| 列 | 含义 | 正常与异常 |
|---|---|---|
| MAC 地址 | 学习到的源地址 | 同一地址频繁在两个端口间跳,说明存在环路或 MAC 漂移 |
| VLAN/VSI | 表项归属的广播域 | 表项落在非预期 VLAN,先查 PVID 与 Trunk 放通 |
| Learned-Interface | 学到该地址的端口,堆叠中形如 GE2/0/3 | 接口名中的成员编号即表项所在成员 |
| Type | dynamic / static / blackhole | 大量 blackhole 表项多为历史清洗残留,需定期核对 |
| Age | 动态表项的空闲老化计时 | 整体老化时间偏短会让表项频繁重建、泛洪增多 |
按成员统计表项分布
按成员统计表项分布
display mac-address | include GE1/0/ # 粗略数出 1 号成员学到的表项
display mac-address | include GE2/0/ # 2 号成员的表项数,两边差异大说明分布不均
display mac-address vlan 10 | include GE1/0/ # 也可只看某个大 VLAN 在成员间的分布堆叠成员编号直接体现在接口名里(GE2/0/3 表示 2 号成员的第 3 个端口),据此可判断表项落在哪个成员上;不同产品的编号与端口数规则不同,跨型号迁移前先确认规则。
不要用「单成员规格 × 成员数」估算整堆叠容量:表项按端口与流量分布,哈希不均会让个别成员先到上限。超限后新表项学不进来或提前老化,表现为未知单播泛洪加剧,业务侧是丢包与时延抖动。
容量紧张时的处理
- 缩小二层域:把超大 VLAN 拆成多个小 VLAN,降低单广播域的表项压力
- 提高型号:按单成员表项上限重新选型,而不是靠加成员凑数
- 收敛泛洪源:风暴抑制、环路检测、端口 MAC 限制组合使用,减少无效表项
- 清理残留:核对静态绑定、黑洞表项与已下线设备的历史表项
- 抓真实分布:用泛洪与哈希不均匀场景做验收,而不是只看纸面规格
老化时间、端口 MAC 限制(mac-limit)、黑洞表项这类「逐端口/逐成员」策略在堆叠内必须保持一致;成员间配置不一致会出现同一地址在不同成员上行为不同的怪现象,排查时极易被误导。