☰
华为H3C锐捷交换机虚拟化命令对照:锐捷查IRF实为VSU排障
2026/10/26 20:15:38 网站建设 项目流程

凌晨两点被电话叫起来,说核心交换机堆叠分裂了,两台设备各自为政,网关地址冲突,整个办公区断网——干网络运维的多少都碰过这种局面。现场往往还伴着另一个尴尬:手边这台华为、机房那台 H3C、备件架上还有一台锐捷,三套交换机配置命令各写各的,查个堆叠状态的命令都得先在脑子里翻译一遍。这篇就把这三家的命令体系摊开来对着讲,重点落在“锐捷查 IRF 命令”这个被无数人搜错方向的问题上,顺带把虚拟化配置、日常排障、参数选择这些容易翻车的细节一次说透。

内容适合刚接手多品牌混装机房的运维、正在准备网络方向认证的备考人员,以及那些“知道概念但一动手就卡壳”的朋友。不追求把命令手册抄一遍,只讲实际会用到的、会踩坑的那部分。

1. 三套命令行为什么长得不一样

1.1 从视图结构说起

三家设备的命令长相差异,根子在视图(View)模型的设计上。华为的 VRP、H3C 的 Comware、锐捷的 RGOS,本质上都是“分层视图 + 逐级下沉”的框架,但分层的粗细和提示符的表现方式不同,导致你敲同一条逻辑操作时,敲的字符数完全不一样。

华为和 H3C 的路径几乎一致:用户视图<>→ 系统视图[]→ 具体功能视图,用system-view进去,用quit退一级,用return或Ctrl+Z直接回用户视图。锐捷多插了一层特权模式,跟早年的 IOS 习惯接近:用户模式>→ 特权模式#(enable进入)→ 全局配置模式(config)#(configure terminal进入)→ 接口模式(config-if-GigabitEthernet 0/1)#。这一层“特权模式”的存在,是很多人从华为/H3C 转到锐捷时第一处不适应的:明明只想看一眼配置,结果发现show在用户模式下敲不出来,得先enable。

这个设计差异带来的实际影响比想象中大。你在华为设备上习惯性地敲display current-configuration看当前配置,换到锐捷上敲display会直接报错,因为锐捷用的是show。更麻烦的是,锐捷的exit和end语义不同:exit是退一级,end是从任意配置视图直接跳回特权模式。很多人习惯性敲exit,结果在接口视图里连敲好几次才退回全局,效率就这么被吃掉了。

提示:在锐捷设备上,任何配置视图下敲end都能一步回到特权模式#,比连敲exit快得多。华为和 H3C 对应的是return或Ctrl+Z,这三个快捷键建议刻进肌肉记忆。

1.2 display 与 show 的补全习惯差异

命令补全这块,三家的差异也挺有意思。华为和 H3C 都支持Tab补全和?帮助,输入几个字母按Tab会自动补全到唯一匹配项,有歧义时再按一次Tab列出所有候选。锐捷同样支持Tab,但在一些老版本上Tab补全的候选列表刷新会有延迟,连续快速敲命令时容易出现补全错位,这时候别急着骂设备,慢半拍再按一次就好。

真正拉开效率差距的是缩写规则。华为和 H3C 允许把命令词缩到不产生歧义的最短前缀,比如dis cu等于display current-configuration,int g0/0/1等于interface GigabitEthernet 0/0/1。锐捷的缩写规则更保守一些,sh run能用,但接口名缩写得小心,int gi0/1这类写法在不同版本上表现不一致,稳妥起见还是敲完整的interface GigabitEthernet 0/1。

下面这张表是我自己整理的常用等价命令,贴在工位上比翻手册快:

操作意图华为 VRPH3C Comware锐捷 RGOS
查看当前配置display current-configurationdisplay current-configurationshow running-config
查看启动配置display saved-configurationdisplay saved-configurationshow startup-config
查看版本display versiondisplay versionshow version
查看接口简况display interface briefdisplay interface briefshow interfaces status
保存配置savesavewrite或copy running-config startup-config
重启设备rebootrebootreload

有一点必须强调:华为和 H3C 的save命令都会二次确认,默认选项是Y,但如果你手快连敲回车,可能会把不想保存的临时配置固化下来。我的做法是改完配置先display current-configuration | include xxx核对一遍关键行,确认无误再save。锐捷的write反而干脆,敲下去直接写,没有确认环节,所以更要养成“先看后写”的习惯。

2. 锐捷“查IRF”这件事,先得把名字对上

2.1 IRF、iStack、VSU 到底是不是一回事

搜索框里输入“锐捷查 irf 命令”的人,十有八九最后会一脸茫然地发现:锐捷的官方文档里根本找不到 IRF 这个缩写。原因很简单——IRF 是 H3C 的技术名称,全称 Intelligent Resilient Framework,中文叫智能弹性架构。华为对应的技术分两种:盒式设备叫 iStack,框式设备叫 CSS(Cluster Switch System)。而锐捷把自己的设备虚拟化技术命名为VSU,Virtual Switching Unit,虚拟交换单元。

这三者要解决的问题完全一致:把两台(或更多)物理交换机在逻辑上合并成一台,统一管理平面、统一控制平面、统一转发平面,对外只呈现一个管理 IP、一份配置、一个生成树域。区别主要在实现的底层机制、成员数量上限、以及命令行入口。所以“锐捷查 IRF 命令”这个搜索词,本质上是技术名称错位——你要查的功能锐捷有,但关键词得换成 VSU。

这个错位在实际工作中造成过不少麻烦。我见过有同事在锐捷设备上敲display irf,看到报错就断定“这台设备不支持堆叠”,转头去申请新设备预算,实际上那台机器支持 VSU,只是命令入口不同。还有人拿着 H3C 的 IRF 配置模板往锐捷上套,irf-port敲进去毫无反应,白白耗掉半个下午。

注意:判断一台设备支不支持虚拟化,别看它认不认irf这个关键词,要看它的产品规格里有没有 VSU(锐捷)、iStack/CSS(华为)、IRF(H3C)。命令名称跟着厂商走,功能本身是行业通用需求。

2.2 锐捷 VSU 常用查看命令清单

把入口对上之后,锐捷查虚拟化状态的命令其实很规整。核心就那么几条,全部在特权模式#下执行:

Ruijie# show switch virtual Ruijie# show switch virtual config Ruijie# show switch virtual topology Ruijie# show switch virtual link Ruijie# show switch virtual role

这五条命令各有分工,别混着用。show switch virtual看的是全局状态,包括当前是不是虚拟化模式、域 ID 是多少、本机是 active 还是 standby、优先级配置。show switch virtual config看的是配置层面的参数,比如 domain id、switch id、优先级、VSL 端口成员。show switch virtual topology看的是拓扑关系,谁跟谁连、走哪几个口、链路是否正常。show switch virtual link专门盯 VSL 链路的状态和流量,排查“配置都对但就是起不来”的时候,这条最有用。show switch virtual role则直接告诉你主备角色和切换原因。

实际排障时的顺序建议是:先show switch virtual确认模式对不对,再show switch virtual link确认链路通不通,最后show switch virtual topology确认拓扑关系和角色。这个顺序能把问题范围一层层缩小,比一上来就翻配置高效得多。

2.3 show switch virtual 输出怎么读

很多人拿到这条命令的输出,盯着满屏字段不知道看哪个。我挑几个真正影响判断的字段说。

第一看Switch Mode。如果显示Virtual switch,说明设备已经进入虚拟化模式;如果显示Standalone或者Local,说明还没转换,这时候你配再多 VSL 端口也没用,得先执行switch convert mode virtual做模式转换(这条命令会让设备重启,务必挑窗口期)。

第二看Domain ID。同一个 VSU 域里两台设备的 domain id 必须一致,不一致就是两台独立的虚拟交换机,永远合不到一起。这个坑特别隐蔽,因为配置的时候很容易在第二台上忘了改。

第三看Role。正常状态下一台Active、一台Standby。如果两台都是Active,那就是双主,说明 VSL 链路断了但 MAD 检测没生效或者没配,这种状态下网络里会出现两个相同的 MAC 和 IP,属于必须立刻处理的严重故障。

第四看Priority。优先级决定谁当 Active,数值大的优先。默认都是 100,如果两台一样,就靠设备运行时长和 MAC 地址比大小来定,结果不可控。生产环境里一定要显式把主设备的优先级调高,比如设成 200,避免重启顺序不同导致主备角色漂移。

Ruijie# show switch virtual Switch mode : Virtual switch Domain ID : 1 Switch ID : 1 Priority : 200 Role : Active Local MAC address : 00d0.f822.33a1

这份输出里,Switch ID也要留意,同一个域内必须唯一,一台是 1 一台是 2,重了就会冲突。改 Switch ID 的命令是switch virtual domain 1下面的switch 2,改完同样需要重启生效。

3. 三家虚拟化技术的关键参数对照

3.1 机型与形态选型

选型这件事,先看你要解决的是什么问题。如果只是想让两台接入交换机在管理上合并、少配一个管理 IP、少跑一份生成树,那三家的入门级方案都能满足,成本差异也不大。但如果你要的是控制平面真正合一、跨设备的链路聚合(M-LAG 那类效果)、故障时秒级切换,那就得看具体型号支持的虚拟化等级。

华为这边,盒式设备走 iStack,一般支持 2 到 9 台堆叠,具体上限看型号;框式设备走 CSS,通常 2 台。H3C 的 IRF 在盒式设备上支持 2 到 9 台,框式一般也是 2 台,部分高端型号支持 4 台。锐捷的 VSU 在主流盒式产品上是 2 台,这也是它和 IRF/iStack 最大的形态差异——VSU 定位就是双机虚拟化,不是多机堆叠。

这个差异直接决定了组网设计。你要是规划一个 4 台设备的接入层堆叠组,锐捷的 VSU 方案就得改成两组双机 VSU,中间再跑链路聚合和生成树,复杂度上去了。所以选型阶段必须先把台数定下来,别等配置到一半才发现上限不够。

3.2 连线与端口规划

虚拟化链路的物理连接,是实际施工里最容易出问题的一环。三个技术都要求成员设备之间用专门的堆叠口或业务口做互联,区别在于对端口的要求严格程度不同。

H3C 的 IRF 用irf-port逻辑端口绑定物理口,每个 member 有两个 IRF 端口(1/1 和 1/2),推荐做环形连接:A 的 1/1 连 B 的 2/1,A 的 2/1 连 B 的 1/1。环形比链形多一条冗余路径,单条链路故障不会导致分裂。物理口方面,优先用万兆口,千兆口在流量大的场景下会成为瓶颈。

华为的 iStack 同样推荐环形,逻辑端口叫stack-port,每个 member 有两个(0/1 和 0/2),配置时用port member-group interface把物理口绑进去。有个细节容易忽略:绑定前必须先把物理口shutdown,绑完再undo shutdown,否则会报错。这个顺序在华为文档里写得很清楚,但实际操作时经常因为手快跳过。

锐捷的 VSL 端口配置相对简单,用port-member interface指定成员口,一般建议至少两个口做聚合,避免单点。锐捷的部分型号支持把业务口直接转成 VSL 口,不需要专用堆叠卡,灵活度高,但也意味着这些口不能再跑业务,规划时要预留。

提示:三家都支持用业务口做虚拟化链路,但强烈建议优先使用专用堆叠口或高速端口。用千兆业务口做 VSL,一旦有大量跨设备流量,链路会先于业务被打满,表现为“莫名其妙变慢”,很难第一时间联想到堆叠链路。

3.3 参数对照表

把关键参数拉成一张表,配置时对照着填,能省掉大量来回查文档的时间:

参数项华为 iStackH3C IRF锐捷 VSU
逻辑端口名stack-portirf-portvsl-port
成员编号设置stack slot 0 renumber 1irf member 1 renumber 2switch virtual domain下switch 2
优先级设置stack slot 0 priority 200irf member 1 priority 32priority 200
激活命令无需单独激活irf-port-configuration activeswitch convert mode virtual
生效方式重启重启重启
最大成员数依型号,盒式常见 2-9依型号,盒式常见 2-9主流为 2
状态查看display stackdisplay irfshow switch virtual
拓扑查看display stack topologydisplay irf topologyshow switch virtual topology

这里有个非常关键的区别要单独拎出来:H3C 的 IRF 必须执行irf-port-configuration active才会真正激活配置,而且这条命令必须在所有 IRF 物理口都undo shutdown之后敲。华为的 iStack 没有这一步,配置完直接重启就生效。锐捷则是通过switch convert mode virtual一步到位完成模式转换和激活。

我在一次割接里就因为漏敲irf-port-configuration active,两台 H3C 重启后依然是独立设备,白等了一个重启周期。后来养成习惯,H3C 的 IRF 配置流程固定按“关端口 → 建 irf-port → 绑物理口 → 开端口 → 激活 → 存配置 → 重启”这个七步走,一步都不跳。

4. 日常配置命令三厂商对照实操

4.1 登录、视图切换与版本查看

新设备上架第一件事是确认版本和型号,这决定了后续能用哪些特性。三家查看版本的命令分别是display version、display version、show version,输出里的关键信息是固件版本号、设备型号、运行时长、以及序列号。

版本这块的经验是:同一虚拟化组内的成员设备,固件版本必须完全一致。三家技术都要求这一点,版本不一致会导致堆叠起不来,或者起来了但行为异常。实际场景中经常遇到备件机是新版本、在网机是老版本,直接插上去配置半天不通。正确做法是先把备件机降级到和在网机一致的版本,再上架。

视图切换的对比前面讲过,这里补充一个实用技巧。华为和 H3C 支持在任意视图下用return直接回用户视图,锐捷用end回特权模式。但如果你想从接口视图直接跳到另一个接口视图,华为和 H3C 都得先quit回系统视图再进,锐捷也一样。频繁切换接口时,用display this在当前视图下确认自己改的是哪个口,比看提示符靠谱——提示符里的接口名在某些终端宽度下会被截断。

4.2 VLAN 与接入口配置

VLAN 配置是最基础也最高频的操作。三家的命令逻辑一致,语法各异。

华为:

<Huawei> system-view [Huawei] vlan 10 [Huawei-vlan10] quit [Huawei] interface GigabitEthernet 0/0/1 [Huawei-GigabitEthernet0/0/1] port link-type access [Huawei-GigabitEthernet0/0/1] port default vlan 10

H3C:

<H3C> system-view [H3C] vlan 10 [H3C-vlan10] quit [H3C] interface GigabitEthernet 1/0/1 [H3C-GigabitEthernet1/0/1] port link-type access [H3C-GigabitEthernet1/0/1] port access vlan 10

锐捷:

Ruijie> enable Ruijie# configure terminal Ruijie(config)# vlan 10 Ruijie(config-vlan)# exit Ruijie(config)# interface GigabitEthernet 0/1 Ruijie(config-if-GigabitEthernet 0/1)# switchport mode access Ruijie(config-if-GigabitEthernet 0/1)# switchport access vlan 10

注意华为和 H3C 在接口视图下的关键字顺序:华为是port default vlan,H3C 是port access vlan,这两个词序反了是很常见的笔误来源。锐捷则用的是switchport前缀,整体更接近 Cisco 风格。

Trunk 口的允许 VLAN 列表配置差异更大,这也是跨厂商对接时最容易出问题的地方:

厂商Trunk 封装设置放通 VLAN 命令
华为port link-type trunkport trunk allow-pass vlan 10 20
H3Cport link-type trunkport trunk permit vlan 10 20
锐捷switchport mode trunkswitchport trunk allowed vlan add 10,20

关键坑点在这里:锐捷的 Trunk 口默认放通所有 VLAN,而华为和 H3C 默认只放通 VLAN 1。这意味着你在锐捷上配 Trunk,不写允许列表也能通,但换到华为/H3C 上就必须显式写,否则业务 VLAN 的流量直接被丢弃。反过来,从华为/H3C 迁移到锐捷时,如果保留了“逐个放通”的思维,可能漏配导致部分 VLAN 不通。这个不对称性我在联调时吃过亏,后来固定用show vlan/display vlan逐口核对放通列表。

4.3 链路聚合三种写法

链路聚合在跨设备对接、上联汇聚时几乎是标配。三家的逻辑端口名称完全不同,这是配置时的第一个坎。

华为用Eth-Trunk,H3C 用Bridge-Aggregation,锐捷用AggregatePort。名字不同但配置骨架相似:先建逻辑口,再把物理口加进去,然后设置工作模式(静态或 LACP)。

华为:

[Huawei] interface Eth-Trunk 1 [Huawei-Eth-Trunk1] mode lacp-static [Huawei-Eth-Trunk1] trunkport GigabitEthernet 0/0/1 to 0/0/2

H3C:

[H3C] interface Bridge-Aggregation 1 [H3C-Bridge-Aggregation1] link-aggregation mode dynamic [H3C-Bridge-Aggregation1] quit [H3C] interface GigabitEthernet 1/0/1 [H3C-GigabitEthernet1/0/1] port link-aggregation group 1

锐捷:

Ruijie(config)# interface AggregatePort 1 Ruijie(config-if-AggregatePort 1)# exit Ruijie(config)# interface range GigabitEthernet 0/1-2 Ruijie(config-if-range)# port-group 1

H3C 的写法是“在物理口里指向逻辑口”,跟华为“在逻辑口里拉物理口”方向相反,这个思维转换需要一点时间适应。锐捷则支持interface range批量操作,两台以上物理口做聚合时效率最高。

模式选择上,LACP(动态)优于静态。静态聚合的问题是对端如果没配聚合,本端照样认为聚合正常,链路状态显示 UP 但实际流量只走一条,排查起来极其隐蔽。LACP 有协商报文,对端不配合会直接显示 down 或者Selected: N不对,问题暴露得早。三家都支持 LACP,配置时记得把模式显式设成动态,别用默认值。

注意:聚合口建好之后,一定要用查看命令确认成员口状态。华为看display eth-trunk 1,H3C 看display link-aggregation verbose,锐捷看show aggregateport summary。重点看Selected或Up的成员数是不是等于你配置的数量,少了就是有问题。

4.4 三层接口与静态路由

三层接口的命名差异也值得单独说一下。华为叫Vlanif,H3C 叫Vlan-interface,锐捷叫VLAN。这三个名字背后的东西完全一样,都是给 VLAN 配 IP 的逻辑接口,但敲错一个字母就是命令不存在。

华为:[Huawei] interface Vlanif 10 [Huawei-Vlanif10] ip address 192.168.10.1 24 H3C: [H3C] interface Vlan-interface 10 [H3C-Vlan-interface10] ip address 192.168.10.1 24 锐捷:Ruijie(config)# interface VLAN 10 Ruijie(config-if-VLAN 10)# ip address 192.168.10.1 255.255.255.0

注意掩码写法:华为和 H3C 支持位数写法(24),锐捷在这一层通常要求写完整掩码(255.255.255.0),虽然部分新版本也支持位数,但为了兼容性还是写全更稳。

静态路由的写法差异在掩码的简写上:

华为:[Huawei] ip route-static 0.0.0.0 0.0.0.0 192.168.1.1 H3C: [H3C] ip route-static 0.0.0.0 0 192.168.1.1 锐捷:Ruijie(config)# ip route 0.0.0.0 0.0.0.0 192.168.1.1

H3C 允许把0.0.0.0简写成0,华为不行。这种细节在抄配置模板时最容易出错,复制过来一粘贴就报语法错误。我的做法是建一个自己的命令片段库,按厂商分目录存,需要时改 IP 不改语法。

4.5 保存、备份与回滚

配置保存这件事,说小不小。我见过割接当晚配置全对、业务全通,第二天早上重启后配置全丢的案例——原因是没执行保存。三家设备的配置都分运行配置和启动配置,改完不保存只存在内存里,重启即失效。

厂商保存命令是否有确认备份方式
华为save是,需输入y导出vrpcfg.zip
H3Csave是,回车确认导出.cfg文件
锐捷write否,直接写入show running-config复制存档

华为和 H3C 在保存时给了一次反悔机会,锐捷的write则是立即执行。这个差异意味着在锐捷上误操作后没有“不保存重启恢复”这条退路,所以改配置前先show running-config存一份文本档,是必须养成的习惯。

回滚这块,三家都有配置回滚点的机制,但配置复杂度差别很大。华为和 H3C 支持configuration replace file类的配置替换,锐捷则在部分型号上支持配置版本管理。日常运维里更实用的做法是改之前先备份,出问题手动比对恢复,别指望一键回滚。我自己的流程是:登录设备 →show running-config全量复制到本地文本 → 标注日期和变更内容 → 开始改。这个动作花不了两分钟,但能救命。

5. 从零把两台设备合成一台:三套配置全流程

5.1 动手之前必须先确认的四件事

虚拟化配置一旦做错,恢复起来需要拆链路、改配置、单独重启,在机房里蹲两小时是常事。所以动手前这四件事必须确认到位。

第一,固件版本必须完全一致。不是“差不多”,是版本号每一位都一样。查版本用前面说的display version/show version,对比输出里的版本字符串。不一致就先升级或降级,别抱侥幸心理。

第二,成员编号不能冲突。出厂的默认编号通常都是 1(或 0),两台直接连起来就是冲突。必须在配置阶段把其中一台改成 2,改完重启生效,再连堆叠线。

第三,堆叠链路必须先接好再上电,或者先关端口再接线。带业务在线接堆叠线,有概率触发短暂的环路或者广播风暴。稳妥做法是把堆叠口shutdown,接好线,配置完,再undo shutdown。

第四,准备好带外管理通道。虚拟化配置过程中设备会重启,重启后管理 IP 可能变化(变成虚拟 IP),如果没有 console 或者带外管理,一旦配错就只能去机房。这个教训我吃过一次,之后再也不敢裸配。

5.2 H3C IRF 配置全流程

以两台设备为例,目标是把 member 1(主)和 member 2(备)组成一个 IRF。假设用 49、50 两个万兆口做堆叠。

先在第一台(保持 member 1)上配置:

<H3C> system-view [H3C] irf member 1 priority 32 [H3C] interface Ten-GigabitEthernet 1/0/49 [H3C-Ten-GigabitEthernet1/0/49] shutdown [H3C-Ten-GigabitEthernet1/0/49] quit [H3C] interface Ten-GigabitEthernet 1/0/50 [H3C-Ten-GigabitEthernet1/0/50] shutdown [H3C-Ten-GigabitEthernet1/0/50] quit [H3C] irf-port 1/1 [H3C-irf-port1/1] port group interface Ten-GigabitEthernet 1/0/49 [H3C-irf-port1/1] quit [H3C] irf-port 1/2 [H3C-irf-port1/2] port group interface Ten-GigabitEthernet 1/0/50 [H3C-irf-port1/2] quit [H3C] interface Ten-GigabitEthernet 1/0/49 [H3C-Ten-GigabitEthernet1/0/49] undo shutdown [H3C-Ten-GigabitEthernet1/0/49] quit [H3C] interface Ten-GigabitEthernet 1/0/50 [H3C-Ten-GigabitEthernet1/0/50] undo shutdown [H3C-Ten-GigabitEthernet1/0/50] quit [H3C] irf-port-configuration active [H3C] save

注意irf-port 1/1里的第一个 1 是 member ID,第二个 1 是端口组编号。因为这台是 member 1,所以是 1/1 和 1/2。

第二台要先把 member ID 改成 2,改完必须重启才生效:

<H3C> system-view [H3C] irf member 1 renumber 2 [H3C] save [H3C] quit <H3C> reboot

重启后提示符会变成<H3C>但内部 member 已经是 2,此时接口名全部变成2/0/x。然后按同样的逻辑配 IRF 端口,注意绑定的是2/0/49和2/0/50,端口组编号是2/1和2/2:

<H3C> system-view [H3C] interface Ten-GigabitEthernet 2/0/49 [H3C-Ten-GigabitEthernet2/0/49] shutdown [H3C-Ten-GigabitEthernet2/0/49] quit [H3C] irf-port 2/1 [H3C-irf-port2/1] port group interface Ten-GigabitEthernet 2/0/49 [H3C-irf-port2/1] quit [H3C] interface Ten-GigabitEthernet 2/0/49 [H3C-Ten-GigabitEthernet2/0/49] undo shutdown [H3C-irf-port2/1] quit [H3C] irf-port-configuration active [H3C] save

两台都配完后重启,正常情况下会协商出主备角色。验证命令就是前面说的display irf,看 MemberID 1 和 2 是否都在,Role 是否正确。

5.3 华为 iStack 配置全流程

华为的逻辑类似,但命令词完全不同。以 S 系列盒式设备为例:

第一台(保持 slot 0):

<Huawei> system-view [Huawei] stack slot 0 priority 200 [Huawei] interface XGigabitEthernet 0/0/1 [Huawei-XGigabitEthernet0/0/1] shutdown [Huawei-XGigabitEthernet0/0/1] quit [Huawei] stack-port 0/1 [Huawei-stack-port0/1] port member-group interface XGigabitEthernet 0/0/1 [Huawei-stack-port0/1] quit [Huawei] interface XGigabitEthernet 0/0/1 [Huawei-XGigabitEthernet0/0/1] undo shutdown [Huawei] save

第二台先改 slot 编号并重启:

<Huawei> system-view [Huawei] stack slot 0 renumber 1 [Huawei] save [Huawei] quit <Huawei> reboot

重启后接口名变成1/0/x,然后配置堆叠端口:

<Huawei> system-view [Huawei] interface XGigabitEthernet 1/0/1 [Huawei-XGigabitEthernet1/0/1] shutdown [Huawei-XGigabitEthernet1/0/1] quit [Huawei] stack-port 1/1 [Huawei-stack-port1/1] port member-group interface XGigabitEthernet 1/0/1 [Huawei-stack-port1/1] quit [Huawei] interface XGigabitEthernet 1/0/1 [Huawei-XGigabitEthernet1/0/1] undo shutdown [Huawei] save

华为 iStack 没有irf-port-configuration active这一步,配置完重启即生效。验证用display stack,看成员列表和角色,display stack configuration看优先级和端口绑定关系。

这里有个容易忽略的点:华为的stack-port 0/1中,前面的 0 是 slot ID,后面的 1 是端口组编号。如果你的设备堆叠口不止两个,可以配 0/1、0/2 两个组做环形。堆叠口数量决定了冗余程度,单组堆叠口一旦断链就是分裂,双组环形能扛住一根线断。

5.4 锐捷 VSU 配置全流程

锐捷的 VSU 配置流程跟上面两家差别最大,因为它有“模式转换”这个动作。以两台设备为例:

第一台(规划为 Active,Switch ID 1,优先级 200):

Ruijie> enable Ruijie# configure terminal Ruijie(config)# switch virtual domain 1 Ruijie(config-vs-domain)# switch 1 Ruijie(config-vs-domain)# priority 200 Ruijie(config-vs-domain)# exit Ruijie(config)# vsl-port Ruijie(config-vsl-port)# port-member interface TenGigabitEthernet 0/49 Ruijie(config-vsl-port)# port-member interface TenGigabitEthernet 0/50 Ruijie(config-vsl-port)# exit Ruijie(config)# exit Ruijie# write Ruijie# switch convert mode virtual

switch convert mode virtual会提示确认,确认后设备重启并进入虚拟化模式。

第二台(规划为 Standby,Switch ID 2,优先级 100):

Ruijie> enable Ruijie# configure terminal Ruijie(config)# switch virtual domain 1 Ruijie(config-vs-domain)# switch 2 Ruijie(config-vs-domain)# priority 100 Ruijie(config-vs-domain)# exit Ruijie(config)# vsl-port Ruijie(config-vsl-port)# port-member interface TenGigabitEthernet 0/49 Ruijie(config-vsl-port)# port-member interface TenGigabitEthernet 0/50 Ruijie(config-vsl-port)# exit Ruijie(config)# exit Ruijie# write Ruijie# switch convert mode virtual

两台都转换完成、VSL 链路接通后,等一到两分钟协商,然后用show switch virtual验证。正常情况下会看到一台 Active、一台 Standby,Domain ID 都是 1,Switch ID 分别是 1 和 2。

这里有个非常关键的顺序问题:必须先配好 VSL 端口,再执行模式转换。如果先转换了模式再回来配 VSL 端口,中间那段时间两台设备已经进入虚拟化模式但没有链路,会出现双 Active,业务直接中断。我第一次配的时候就踩了这个坑,两台设备同时变成 Active,管理 IP 冲突,只能 console 进去逐个修。

提示:VSU 配置建议在业务窗口期做,两台设备最好一前一后转换,中间留出观察时间。第一台转换完先确认状态正常,再动第二台,这样出问题时影响面可控。

5.5 验证阶段该看哪几行

配置完不代表成功,验证才是关键。三家设备的验证命令前面提过,这里说清楚每条输出里该盯哪几行。

H3C 执行display irf,重点看三行:MemberID列表是否包含所有成员、Role是否一主一备(或多主多备)、Bridge MAC是否只有一个。Bridge MAC 如果出现两个不同的值,说明没合成功。

[H3C] display irf Configuration effectiveness: Normal MemberID Role Priority CPU-Mac Description 1 Master 32 00e0-fc0f-8c00 -- 2 Standby 1 00e0-fc0f-8c01 --

华为执行display stack,关注MemberID、Role、Priority三列,以及顶部的角色汇总。

锐捷执行show switch virtual,关注Switch mode是否为Virtual switch、Role是否为Active/Standby。再补一条show switch virtual link确认 VSL 链路状态是 UP。

如果状态都对,最后一步是做切换测试:把主设备断电或者重启,观察备设备是否在几秒内接管,业务是否中断。这个测试能暴露很多配置层面看不出来的问题,比如 MAD 没配、生成树没收敛、MAC 表没同步。生产环境上架前做一次,比事后救火划算得多。

6. 排查实录与速查表

6.1 堆叠起不来的典型原因

堆叠配置完了但两台设备各干各的,是最高频的问题。按我实际遇到的概率排序,原因大概是这么几类。

版本不一致排第一。表现是链路物理上 UP,但角色协商不出来,display irf里只看得到自己。处理方法就是统一版本,没有捷径。

成员编号冲突排第二。两台都是 1 或者都是 0,谁都认为自己是对的。表现是配置看起来都对,但就是合不起来。改编号、重启、再连。

IRF/VSL 端口配置不对称排第三。A 的 1/1 绑了 49 口,B 的 2/1 也绑了 49 口,线也接对了,但 A 的 1/2 绑了 50,B 的 2/2 没配,导致环形变链形。这种问题在线缆全接的情况下不容易发现,用拓扑查看命令能看出来。

物理链路问题排第四。光纤模块不匹配、光纤极性反了、铜缆质量差,这些属于物理层问题,表现是端口不 UP 或者 UP 了但大量 CRC 错误。用display interface看错误计数,涨得快就是线的问题。

激活命令漏敲是 H3C 特有的坑,前面说过。表现是配置全对、重启也做了,就是不生效。补一句irf-port-configuration active再重启就好。

端口没 shutdown 就绑定,这个在华为上会直接报错,反而好发现。但配置被中断后残留了半套配置,容易在后续排查时造成误判。

6.2 双主与 MAD 检测

虚拟化组分裂成两个独立的设备,各自认为自己是主,这就是双主。后果是网络里出现重复的 MAC 和 IP,ARP 表混乱,业务时通时断。这是虚拟化方案里必须提前防的风险。

防的手段是MAD 检测(Multi-Active Detection)。三家都支持,原理差不多:在分裂发生后,通过一条独立于业务链路的检测通道(通常是 BFD 或者专用链路)发现对方还活着,然后其中一台上报或者直接关闭业务端口,避免冲突扩大。

H3C 的 BFD MAD 配置大致是这样:

[H3C] interface Vlan-interface 999 [H3C-Vlan-interface999] mad bfd enable [H3C-Vlan-interface999] mad ip address 192.168.100.1 24 member 1 [H3C-Vlan-interface999] mad ip address 192.168.100.2 24 member 2

华为的配置思路类似,用mad detect mode direct配合mad ip address,具体命令随版本有差异,配置前用?查一下当前版本的支持情况。

锐捷的 VSU 支持 BFD MAD 和聚合口 MAD,配置入口在全局配置模式下,具体命令建议查当前版本的配置手册,不同型号的产品线差异比较大。

这里有个很容易忽略的前提:MAD 检测用的 VLAN 和 IP 必须独立于业务网段,而且这条检测链路不能和 VSL 链路走同一根物理线,否则 VSL 断了检测链路也断了,等于没配。我见过有人把 MAD 检测口和堆叠口接在同一个交换机上,分裂的时候一起断,双主照样发生。

6.3 命令敲不进去、参数报错的坑

排障过程中经常遇到命令敲不对的情况,有些是语法问题,有些是设备状态问题。

提示符不对。在锐捷的用户模式>下敲show running-config会报错,得先enable。华为和 H3C 在用户视图<>下敲配置命令也会报错,得先system-view。这个低级错误发生率比想象中高,尤其是切换设备的时候。

接口名写错。三家的接口命名规则不同,华为是GigabitEthernet0/0/1,H3C 是GigabitEthernet1/0/1,锐捷是GigabitEthernet 0/1。注意华为和 H3C 是三层编号(槽位/子卡/端口),锐捷是两层(槽位/端口)。虚拟化之后编号还会变,member 2 的接口在华为和 H3C 上要写成1/0/1或2/0/1,忘改就是“接口不存在”。

命令在低版本上不支持。同一厂商的不同版本,命令可能有增删。比如某些老版本不支持 LACP 的某种模式,敲进去报错。遇到这种情况别硬试,display version看版本,去查对应版本的命令手册。

配置被拒绝但没细看报错。设备返回一堆提示,很多人的习惯是直接翻页往下敲,结果配置没生效。我的习惯是配置完成后立刻display current-configuration | include 关键词核对,比事后回看日志高效。

6.4 速查表

最后把高频问题和排查方向整理成一张表,贴在机柜门上比记在心里靠谱:

现象优先排查对应命令
堆叠合不起来版本、成员编号、端口绑定display irf/display stack/show switch virtual
两台都显示主VSL/IRF 链路是否断,MAD 是否生效display irf topology/show switch virtual link
管理 IP 冲突是否双主,虚拟 IP 配置是否重复display ip interface brief
业务时通时断聚合口成员状态,生成树收敛display eth-trunk/show aggregateport summary
堆叠口频繁 UP/DOWN光模块、光纤、CRC 错误计数display interface看错误统计
配置重启后丢失是否执行保存display saved-configuration
跨设备流量慢堆叠链路带宽是否打满查看堆叠口流量统计

有个细节需要补充:跨设备流量慢这个现象特别隐蔽。虚拟化之后,两台交换机之间的流量要走 VSL/IRF 链路,如果这条链路只有千兆,而业务侧是万兆上联,那么跨设备的流量就会卡在堆叠口上。表现是“同设备内的主机互访正常,跨设备就慢”,很容易被误判成网络故障。规划阶段就要把堆叠链路带宽算够,至少不低于业务链路的带宽总和。

我自己在这些设备上折腾了几年,最深的体会是:虚拟化配置的技术难度不高,难的是流程纪律。命令就那么几条,背也背下来了,但版本核对、编号修改、端口 shutdown、存配置、重启验证这几个动作,少做一步就得多花一小时排查。与其事后拿着 console 线蹲机房,不如事前把那四件事确认三遍。另外,跨厂商混用的环境里,我习惯在每台设备的描述字段里写明对端设备型号和互联端口,display interface description一敲,拓扑关系一目了然,比翻台账快得多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询