H3C交换机常用配置命令速查:从开局到排障
半夜十一点被电话叫起来,说某个机房的接入层设备配置被人清空了,业务全断——这种时候没人会去翻几百页的手册,能救命的是脑子里那几十条H3C交换机常用配置命令。我把这些年攒下来的命令清单重新梳理了一遍,从进设备的第一条system-view到最后的save,从 VLAN 划分到 DHCP 下发,中间夹着一堆踩过坑才记住的细节。这篇东西不是手册翻译,而是按"一台裸机上线"到"出故障能定位"的顺序,把真正高频用到的东西摊开讲。
不管你刚接手一批设备、准备考个认证、还是临时被拉去顶班,只要接触的是基于 Comware 平台的设备,这套命令逻辑都通用。我尽量把每条命令背后的"为什么"写出来,因为见过太多人背下了port link-type trunk却不知道为什么业务不通,最后在机房里耗掉一整晚。适合零基础照着抄,也适合有经验的人拿来当速查表对照检查。
1. 命令体系的底层逻辑:先把"视图"这件事想明白
1.1 从登录到退出:一条命令的完整"进门路径"
Comware 平台的命令行是分层的,这个概念不理解,后面所有命令都是死记硬背。设备刚登录进去是用户视图,提示符是尖括号<H3C>,这个视图下只能做查看、测试、保存这类轻量操作,改不了任何配置。想动配置必须先敲system-view进入系统视图,提示符变成方括号[H3C]。再往下是接口视图、协议视图、VLAN视图等等,每一层只认自己那一层的命令。
我用一个生活化的比喻:这台设备像一栋楼,用户视图是大门口,系统视图是一楼大厅,接口视图是某个具体房间。你在房间里只能摆弄这个房间的家具,想去隔壁得先quit退出来。所以新手最常遇到的报错就是"命令不存在",九成情况下不是命令写错了,而是站错了楼层。比如port link-type access这条命令,只有站在接口视图下才认,在系统视图下敲必然报错。
层级结构带来的操作习惯是:每条命令前先确认提示符。我自己的做法是,改配置前先看一眼提示符,改完一条quit或者直接return回用户视图做一次display current-configuration核对。return的好处是不管你在多深的层级里,一条命令直接回顶层,比连敲五个quit稳妥得多。
还有一点值得强调:用户视图下的save才是真正写盘的操作。所有在系统视图里改的东西都活在内存里,断电就没了。这个设计对调试很友好——改错了直接reboot不保存,回到原状态;但对生产环境很危险,我见过不止一次改完之后直接拔电源走人,第二天重启发现配置全丢。所以我的习惯是每完成一个模块(比如 VLAN 全划完、路由全配完)就save一次,而不是攒到最后。
提示:不确定当前处于哪个视图时,敲一个
quit看提示符变化,比瞎猜快。连按return也能直接回到最顶层。
1.2 三条救命的辅助功能:问号、Tab 与上下方向键
命令行的效率差距,基本就体现在这三个功能上。问号?是随身携带的说明书:在任意视图下单独敲一个?,列出当前视图所有可用命令;敲前半截再加?(比如display ?),列出这个命令下所有子参数。这招在考试或者现场没有文档的时候特别管用,我至今保留着用问号探路的习惯,比翻手册快。
Tab 键补全要配合前几个字母用。H3C 的命令都支持唯一前缀匹配,输入sys再按 Tab 会自动补成system-view。这在长命令上省事,比如display interface GigabitEthernet1/0/1,敲到dis int g1/0/1加 Tab 就够了。但要注意前缀必须唯一,dis int后面如果还有别的候选,Tab 不会补全,这时候多敲两个字母或者直接上问号。
上下方向键调历史命令是老手的肌肉记忆。排查故障时经常要反复执行同一条display interface看计数器变化,或者重复 ping 某个地址,用方向键翻回去比重敲快得多。更进阶一点的是display history-command,把这次会话敲过的所有命令列出来,适合复盘"我刚才到底改了啥"。我出过一次事故排查,就是靠这条命令发现自己在半小时前误删了一条 ACL 规则。
这三条功能本身不值钱,真正值钱的是养成先探路再动手的习惯。我在带新人的时候反复讲:不要凭记忆敲完整命令然后回车看结果,先?确认参数空间,再 Tab 补全,最后回车。多花三秒,少一次误操作。
1.3 Comware V5 与 V7 的差异:别把旧经验直接套用
这是个必须提前说清楚的问题。市面上流通的设备横跨好几个版本,V5 和 V7 在命令语法上有大量差异,网上搜到的教程十有八九不会标注版本,照抄就容易翻车。判断方法很简单:登录后敲display version,输出里有一行Comware Software, Version 7.1.xxx或者5.20.xxx。
差异最大的几个点:保存命令在 V7 里不能直接save后等提示,很多场景要写save force才能免交互;STP 的全局开关在 V5 里是stp enable,V7 里变成了stp global enable;链路聚合的物理口加入聚合组的命令,V5 常见写法是port link-aggregation group 1,V7 在部分型号上行为一致但聚合口本身要先用link-aggregation mode dynamic声明模式;用户线配置V5 是user-interface vty 0 4,V7 扩展到了user-interface vty 0 63。
我的建议是:拿到一台陌生设备,第一件事永远是display version加display current-configuration,前者告诉你版本,后者告诉你现有配置的语法风格,两下一对照就能判断出该用哪套写法。别嫌麻烦,这一步花不了一分钟,能省掉后面几小时的试错。另外,同版本号不同型号之间也可能有细微差别,比如某些低端型号不支持某些高级特性,命令敲进去不报错但功能不生效,这种坑只能靠实际验证来发现。
2. 开局配置:设备从裸机到可管理的八步
2.1 Console 接入与基础信息设置
新设备或者配置被清空的设备,只能走 Console。接法是:Console 线一头插设备面板上的 Console 口,一头接电脑的串口(现在的笔记本基本没串口了,得用 USB 转串口线)。终端软件的参数是波特率 9600、数据位 8、停止位 1、无校验、无流控,这组参数是所有网络设备的通用值,配错了就是一堆乱码或者干脆没反应。
连上之后按几下回车,出现<H3C>就成功了。第一件事是给设备起个名字:进入系统视图后sysname SW-Access-3F-01。命名规范很重要,我见过太多设备全叫 H3C,出故障时得靠display lldp neighbor一个个反查物理位置。我的习惯是位置+角色+序号三段式,比如SW-Core-01、SW-Access-3F-02,一眼能看出来是核心还是接入、在哪一层。
命名完成后是时钟。设备出厂时间可能停在几年前,如果不校准,日志时间戳全是错的,排查故障时根本对不上事件顺序。手动设置用clock datetime 14:30:00 2024-06-15,格式是时:分:秒 年-月-日。生产环境更应该配 NTP 自动同步,命令是ntp-service enable加上ntp-service unicast-server <服务器地址>,这样所有设备的日志时间才能横向对齐。
紧接着关掉一些默认开启但不需要的功能,比如空闲超时。默认情况下 VTY 会话挂在那里几分钟不动就断了,调试长任务时挺烦人。改法是在user-interface vty 0 4视图下idle-timeout 10 0(10分钟0秒),或者干脆idle-timeout 0 0永不超时——后者只建议在受控环境用,安全风险自己掂量。
2.2 管理地址与远程登录通道
Console 只能救急,日常运维必须走远程。给设备配管理地址通常有两种做法:一是直接用interface Vlan-interface 1配个地址(简单但所有设备都挤在 VLAN 1 里,不安全也不好管),二是新建一个专用管理 VLAN,比如 VLAN 100,把管理地址放在Vlan-interface 100上。我强烈推荐第二种,把管理面和业务面隔开。
完整命令流是这样:先vlan 100创建 VLAN,然后interface Vlan-interface 100,再ip address 10.10.100.1 255.255.255.0。配完之后要确保上联口允许这个 VLAN 通过,否则本地能通、远端不通,这是新手最容易漏的一步。命令是在上联接口视图下port trunk permit vlan 100。
远程登录有 Telnet 和 SSH 两条路。Telnet 明文传输,只适合内网临时调试;SSH 加密,是生产环境的标准做法。SSH 的配置分三步:先生成密钥对public-key local create rsa(有些版本是public-key local create rsa后会提示输入密钥长度,直接回车用默认 1024 位,安全要求高的可以指定 2048),再开启服务ssh server enable,最后在 VTY 视图下把认证方式改成authentication-mode scheme表示走本地账号认证,protocol inbound ssh只允许 SSH 接入。
注意:
protocol inbound ssh配下去之后 Telnet 就进不来了,如果 SSH 还没配通,你就把自己锁在门外了。稳妥顺序是先配好账号和 SSH,验证能登录,再关 Telnet。
2.3 账号权限与本地认证配置
没有集中认证服务器的情况下,本地账号是标配。命令是local-user admin class manage,然后在这个视图下依次配三样东西:密码password simple 你的密码(simple 是明文存储,password cipher是密文,生产环境用 cipher)、服务类型service-type ssh telnet、权限级别authorization-attribute user-role network-admin。
权限级别这块值得多说两句。Comware 的角色体系里,network-admin是最高权限,能改一切;network-operator只能看不能改;还有更细粒度的自定义角色可以限制到具体命令。我一般会建两个账号:一个管理员账号给自己用,权限拉满;一个只读账号给监控或者值班同事用,避免误操作。密码策略上,V7 支持password-control系列命令强制复杂度,比如password-control length 8要求最短8位,password-control login-attempt 3 exceed lock-time 5表示连错3次锁定5分钟。这些在合规要求高的环境里是必配项。
另外提醒一个常见误区:很多人在user-interface vty下配了authentication-mode scheme却忘了在 VTY 下指定user-role,结果账号能认证通过但进去啥也干不了。V7 的写法是在 VTY 视图下user-role network-admin,或者在本地账号里用authorization-attribute user-role。两种方式都行,我习惯在账号里定义,因为按角色管理更清晰。
3. 二层配置:VLAN、端口与链路聚合
3.1 端口类型怎么选:Access、Trunk、Hybrid
二层配置的核心问题只有一个:这个端口要承载几个 VLAN。答案决定了端口类型。
| 端口类型 | 承载 VLAN 数 | 典型场景 | 帧的处理方式 |
|---|---|---|---|
| Access | 1 个 | 接电脑、打印机、AP | 收无标签帧打上 VLAN 标签,发出去时剥掉标签 |
| Trunk | 多个 | 交换机级联、接服务器网卡 | 只放行 permit 列表里的 VLAN,默认 VLAN 1 不打标签 |
| Hybrid | 多个 | 特殊场景,比如一个口同时给 IPTV 和上网 | 可以灵活配置哪些 VLAN 打标签、哪些不打 |
新手最稳妥的选择是:接终端用 Access,级联用 Trunk,除非明确需要否则别碰 Hybrid。Hybrid 灵活但容易配错,我在实际项目里见过一个口配了 Hybrid 但untagged和tagged写反,导致用户能拿到地址但上不了网,查了半天。
Access 口的配置就两行:port link-type access和port access vlan 10。注意顺序不能反,必须先声明类型再指定 VLAN,否则会报错。Trunk 口是三行:port link-type trunk、port trunk permit vlan 10 20 30、如果要放行全部就写port trunk permit vlan all。这里有个坑:Trunk 口默认只放行 VLAN 1,新加的业务 VLAN 必须显式 permit,否则跨交换机不通。我排查过的二三层故障中,这个原因占了相当大的比例。
还有一个容易忽略的细节:Trunk 口的默认 VLAN(PVID)。默认是 VLAN 1,意味着不带标签的帧会被归到 VLAN 1。如果对端把某个业务 VLAN 设成 untagged 发过来,这边就会认错 VLAN。规范和做法是两边保持一致,或者干脆全用 tagged。
3.2 VLAN 划分与批量配置的效率技巧
建 VLAN 本身很简单,vlan 10然后quit,或者在系统视图下一次性vlan 10 to 20批量创建。真正耗时的是给几十个端口划 VLAN。一条条敲interface GigabitEthernet1/0/1再配,24 口交换机得敲上百行,效率太低。
批量操作有两招。第一招是端口组:port-group manual group1创建一个手动端口组,然后用group-member GigabitEthernet1/0/1 to GigabitEthernet1/0/12把端口加进去,之后在这个组视图下配的命令会作用到所有成员端口。这个功能在 V5 和部分 V7 上都支持,是批量配置的利器。
第二招是interface range:interface range GigabitEthernet1/0/1 to GigabitEthernet1/0/12直接进入多端口视图,配置一次性下发。V7 上这个写法更常见。两种方式效果类似,具体支持哪个取决于型号和版本,敲一下试试就知道。
配置完一定要验证。display vlan看所有 VLAN 及成员端口,display vlan 10看单个 VLAN 的详细信息,display port或者display interface brief看端口的 link 状态和 VLAN 归属。我习惯配完一个模块就display vlan brief扫一眼,确认端口归属没串。
提示:给端口加描述是个好习惯。
description To-3F-Printer这种写法,半年后回来看还能知道这个口接的是什么。display interface brief会显示描述,排障时特别好用。
3.3 链路聚合与防环:让带宽叠加、让环路闭嘴
两台交换机之间单条千兆线不够用,就做链路聚合。Comware 的做法是:先建聚合口interface Bridge-Aggregation 1,在这个口下配link-aggregation mode dynamic(动态 LACP 模式,推荐;静态模式是link-aggregation mode static),然后把物理口加进来,在物理口视图下port link-aggregation group 1。物理口加进去之后就不能单独配业务命令了,所有配置都在聚合口上做。
这里有个必须先讲清楚的前提:对端设备也必须配聚合,而且模式要匹配。一边动态一边静态是起不来的,两边都动态但 LACP 报文过不去(比如中间有透传设备)也不行。验证命令是display link-aggregation summary,看 Selected 状态的成员口数量是否符合预期;display link-aggregation verbose能看到更详细的协商信息,排查起不来的时候必看。
再说防环。二层网络一旦成环,广播风暴能在几秒内打满所有链路,设备 CPU 飙到 100%,整个网络瘫痪。STP 是默认开启的,但默认模式不一定是最优的。我的建议是配成 RSTP(快速生成树):stp mode rstp,V7 上还要确认stp global enable。核心交换机上手动指定根桥:stp root primary,让生成树的拓扑稳定可预测,而不是让设备自己选举。
接终端的端口要配边缘端口:接口视图下stp edged-port。边缘端口不参与生成树计算,接上电脑立刻能用,不用等 30 秒的收敛。但注意,边缘端口绝不能接交换机,否则一旦有环路,边缘端口不收 BPDU 就不会触发保护,环路照样炸。配套的保护措施是stp bpdu-protection,全局开启后,边缘端口一旦收到 BPDU 就自动 shutdown,把环路掐死在萌芽状态。
还有一个实用功能是环路检测:loopback-detection enable vlan 10配合接口下的loopback-detection enable,设备会主动发检测报文,发现环路就告警甚至自动关端口。这个和 STP 是互补关系,STP 管正常拓扑,环路检测兜底防止有人私接小交换机。
3.4 端口安全与隔离:把不该通的东西隔开
同一个 VLAN 里的端口默认是互通的,但很多场景不需要。比如酒店客房、宿舍网口、公共区域的网口,一个口中毒能横向感染一整片。这时候用端口隔离:port-isolate enable group 1,同组的端口之间二层隔离,但都能和上行口通信。这个功能配置极简,效果立竿见影。
端口安全解决的是另一个问题:防止私接。port-security enable全局开启后,接口下port-security max-mac-count 1限制这个口只能学到一个 MAC,port-security port-mode autolearn表示自动学习第一个 MAC 并锁定。有人把路由器接上来想共享网络,第二个 MAC 出现就会触发动作,可以配成丢弃、告警或者直接关端口。命令是port-security intrusion-mode disableport-temporarily。
MAC 地址表的查看和清理也是日常操作:display mac-address看全表,display mac-address interface GigabitEthernet1/0/5看某个口的,display mac-address mac-move看重表项迁移记录——MAC 漂移是环路最典型的信号,同一个 MAC 在两个口之间反复跳,基本可以断定有环。发现异常表项要清理用undo mac-address或者针对接口undo mac-address interface GigabitEthernet1/0/5。
4. 三层配置:网关、路由与 DHCP
4.1 VLAN 接口与静态路由的配置逻辑
三层交换的核心是给每个业务 VLAN 配一个网关地址,命令是进interface Vlan-interface 10然后ip address 192.168.10.1 255.255.255.0。这个接口是逻辑接口,只要 VLAN 里有一个物理口是 up 的,这个接口就 up。反过来,如果一个 VLAN 里没有任何 up 的物理口,接口就是 down 状态,网关不生效——这个特性有时候会被误判成"网关配错了",其实是物理层没通。
静态路由的语法是ip route-static 目标网段 掩码 下一跳。默认路由是ip route-static 0.0.0.0 0 192.168.10.254,前两个 0 代表任意目标,最后是出口网关。写静态路由最容易犯的错是下一跳不可达:下一跳地址必须在本设备某个直连接口的网段内,否则路由不会生效。查这个问题用display ip routing-table,看路由表里有没有这条,以及状态是不是 Active。
路由优先级也值得了解。直连路由优先级是 0,静态路由默认是 60,OSPF 是 10(内部路由)。数值越小越优先。如果同时存在静态和 OSPF 路由,OSPF 会胜出——很多人配了静态路由发现不生效,就是因为动态路由把静态盖住了。想强制走静态,就在命令末尾加preference 5手动调高优先级。
4.2 OSPF 骨架配置与验证要点
网络规模一上去,静态路由维护成本就爆炸了。OSPF 的最小可用配置只有四行左右:ospf 1 router-id 10.0.0.1启动进程并指定 router-id,area 0.0.0.0进区域视图,network 192.168.10.0 0.0.0.255宣告直连网段,完事。注意这里的掩码是反掩码,255.255.255.0 对应的反掩码是 0.0.0.255,这个格式和 ACL 一致。
router-id 必须是全网唯一的,格式是点分十进制。不配的话设备会自动选一个接口地址,但可能因为接口 down 而变化,导致邻居关系震荡。我的习惯是手动指定,一般用 Loopback 口的地址。没有 Loopback 就用管理地址,关键是固定。
邻居建立不起来的排查顺序我总结成固定套路:先display ospf peer看邻居状态,卡在 Init 说明单向收到 Hello 包,通常是组播过滤或者 ACL 挡了;卡在 ExStart 多半是 MTU 不一致;一直 Down 就查接口有没有ospf enable、区域 ID 是否一致、认证是否匹配。验证路由学习结果用display ospf routing看 OSPF 自己算出来的路由,display ip routing-table protocol ospf看最终进全局路由表的部分。
4.3 DHCP 服务与中继:地址自动下发的两种姿势
小网络里让三层交换机直接做 DHCP 服务器最省事。开启流程是:全局dhcp enable,然后dhcp server ip-pool vlan10建地址池,池内配network 192.168.10.0 mask 255.255.255.0、gateway-list 192.168.10.1、dns-list 114.114.114.114,再配租期expired day 1。别忘了把网关地址和其他静态设备地址排除掉:dhcp server forbidden-ip 192.168.10.1 192.168.10.50这样批量排除一段最省事。
验证命令是display dhcp server ip-in-use,看已经分配出去的地址和对应的 MAC;display dhcp server pool看池的配置和剩余数量。如果客户端拿不到地址,先确认客户端所在接口有没有dhcp select server(部分版本需要显式指定),再看全局dhcp enable有没有敲。
大网络里 DHCP 服务器通常是集中部署的,这时候网关设备要做中继。命令是进 VLAN 接口视图dhcp select relay,然后dhcp relay server-address 10.10.100.20指向服务器。中继的原理是把客户端的广播请求转成单播发给服务器,服务器按 giaddr 字段判断该分配哪个网段。最常见的故障是服务器上没有配置对应网段的地址池,请求过去了但服务器不知道给什么地址,静默丢弃。所以中继配完不通,先查服务器侧。
5. 运维排障:命令速查与实战场景
5.1 十类高频诊断命令速查表
排障效率取决于你对命令的熟悉程度。我按"从下往上"的顺序整理了一张表,网络问题永远先看物理层和二层,再往上看。
| 排查层次 | 命令 | 看什么 |
|---|---|---|
| 设备健康 | display version/display device | 版本、型号、模块在位状态 |
| 电源风扇 | display power/display fan | 状态是否 Normal |
| 温度 | display environment | 各传感器温度是否超阈值 |
| 资源占用 | display cpu-usage/display memory | CPU 和内存是否异常飙高 |
| 端口状态 | display interface brief | link 状态、速率、双工、VLAN |
| 端口详情 | display interface GigabitEthernet1/0/1 | 收发字节、错包、CRC、丢包计数 |
| 光模块 | display transceiver interface/display transceiver diagnosis interface | 收发光功率是否在范围内 |
| MAC 表 | display mac-address/display mac-address mac-move | 终端位置、是否有漂移 |
| ARP 表 | display arp | IP 与 MAC 对应关系 |
| 路由表 | display ip routing-table | 目标网段是否可达、下一跳是谁 |
| 邻居 | display lldp neighbor-information | 对端设备和端口,画拓扑用 |
| 日志 | display logbuffer/display trapbuffer | 最近的告警和事件 |
这张表里的命令我几乎每天都在用。特别说一下display interface里的错包统计,那是判断物理链路质量最直接的证据:CRC 错误持续增长基本就是线缆或者光模块的问题,input errors里包含的 giants、runts 各指向不同的帧长异常。reset counters interface可以把计数器清零,然后观察一段时间看增量,比看累计值准确。
5.2 三个典型故障场景的排查路径
场景一:某个办公室的电脑突然上不了网。排查顺序是:先display interface brief看那个口是不是 down 的,down 了就查线缆和电脑网卡;up 的话看 VLAN 归属对不对,display vlan确认端口在正确的 VLAN 里;再看display mac-address interface GigabitEthernet1/0/5有没有学到 MAC,学不到说明二层没通;学到了就看display arp有没有对应的 ARP 表项,没有说明三层没通,可能是网关问题或者客户端 IP 配错。这套"链路→VLAN→MAC→ARP→路由"的逐层推进,能覆盖 90% 的接入故障。
场景二:整个楼层网速奇慢,ping 网关丢包严重。这种大概率是广播风暴。第一反应是display cpu-usage,CPU 打满基本坐实。然后display mac-address mac-move看有没有大量 MAC 在两个口之间跳,有就是环路。快速止血的办法是找到环路所在的口直接shutdown,代价是断一小片,但比全网瘫强。事后要在那个口上配stp edged-port加stp bpdu-protection,防止再次发生。如果 MAC 漂移不明显,就看display interface的广播包计数,某个口广播占比特别高就是源头。
场景三:跨网段访问不通,但同网段正常。这说明二层没问题,问题在三层。先display ip routing-table看目标网段有没有路由,没有就看是缺静态路由还是 OSPF 没学到;有路由就ping下一跳,不通说明链路断了;下一跳通但目标不通,多半是目标侧没回程路由,或者中间有 ACL 拦截。ACL 排查用display acl all看规则,重点看rule deny的匹配范围是不是写得比预想的宽。我遇过一次事故,某条 ACL 的源地址写成了any,把管理流量也拦了,结果设备直接失联。
注意:
reset counters interface、shutdown、undo这类操作都会实时影响业务,在生产环境动手前先确认影响范围,必要时先display备份当前配置。
5.3 配置备份、恢复与版本升级
配置丢失是所有故障里最恶心的,因为前面所有排查工作都要重来。备份分三个层次:设备本地备份用save写进 flash,但 flash 坏了就一起完蛋;异地备份用backup startup-configuration to <tftp服务器> 文件名,把配置文件传到外部服务器;版本化备份是把每次变更后的配置按日期存档,出问题能回滚到任意历史状态。
TFTP 备份的完整流程是:设备上先配置tftp client source interface Vlan-interface 100指定源接口(多网段环境必须配,否则可能用错源地址导致不通),然后backup startup-configuration to 10.10.100.50 SW-01-20240615.cfg。恢复是反向操作restore startup-configuration from <服务器> <文件名>,恢复完必须reboot才生效,且提示是否保存当前配置时选不保存,否则新恢复的配置又被覆盖。
版本升级要谨慎得多。步骤是:先查当前版本display version,去官方渠道确认目标版本和升级路径(有些版本不能跨大版本直升,要经过中间版本过渡),然后备份配置和当前固件,把新固件传到设备 flash,用boot-loader file flash:/xxx.bin指定下次启动文件,最后reboot。升级期间业务会中断,必须安排在窗口期。我踩过的坑是没检查 flash 剩余空间,传到一半空间不足,设备重启后找不到启动文件,只能进 BootWare 恢复,那才叫一个手忙脚乱。
6. 避坑清单:那些年踩过的配置坑
6.1 十条高频错误与正确写法
这些错误我或者身边的人基本都犯过,列出来对照自查能省很多时间。
第一,改完配置忘记save。这是造成事故最多的一条,没有之一。养成习惯:每个模块配完立刻保存,别攒着。
第二,Trunk 口忘permit vlan。新建的 VLAN 不会自动放行,跨交换机必然不通。配完 Trunk 用display port trunk核对放行列表。
第三,接口类型先配 VLAN 后改类型。顺序反了会报错,正确顺序是port link-type在前。
第四,管理地址和管理 VLAN 没打通。VLAN 100 配了地址,但上联口没 permit,本地通远端不通,人会懵很久。
第五,DHCP 池的掩码和网关不匹配。network的掩码决定了可分配范围,gateway-list必须是同网段的地址,写错了客户端拿到地址也用不了。
第六,OSPF 的 router-id 重复。两台设备配了同一个 ID,邻居时好时坏,排查起来极痛苦。建议全网规划一套 ID 规则。
第七,光模块型号不匹配。单模模块配多模跳线,收光功率直接掉到阈值以下。用display transceiver diagnosis interface看实际收发光值,比对模块规格。
第八,端口速率双工写死。一端写死速率一半,另一端是自协商,自协商端会降级到半双工,出现大量冲突和丢包。要么两端都自协商,要么两端都写死且一致。
第九,ACL 规则顺序搞反。Comware 的 ACL 是按序号从小到大匹配,命中即停。rule deny写在rule permit前面,后面的 permit 就永远不生效。
第十,边缘端口接了交换机。stp edged-port配在级联口上,一旦有环,STP 完全失效。记住边缘端口只接终端。
6.2 日常维护的固定动作
设备上线之后才是工作的开始。我给自己定了一套固定动作,每周或每月执行一次,能提前发现大部分隐患。
每月做一次配置备份,并且是异地备份。只存本地等于没备份,设备一坏全没。备份文件按"设备名-日期"命名,存到一个统一的目录,这样回滚时有据可查。
每季度核对一次资源占用。display cpu-usage和display memory的正常值应该稳定在一个区间,如果某台设备的 CPU 突然从 10% 涨到 40% 并保持,说明有异常流量或者某个进程跑飞了,趁没出问题赶紧查。
定期清理 MAC 和 ARP 表。长期运行的表里会积累大量失效条目,占用表项空间。虽然设备有老化机制,但大表环境下手动undo mac-address清理一次能缓解。
关注日志。display logbuffer里的告警不要视而不见,端口频繁 up/down 说明线缆在劣化,温度告警说明风扇或者环境有问题,这些都是故障的前兆。有条件的话配个日志服务器,把日志统一收集起来,info-center loghost 10.10.100.60一行命令就能把日志推出去。
固件版本保持相对统一。同型号设备尽量用同一个版本,避免因为版本差异导致命令行为不一致、特性支持不同,排查问题时产生误判。升级前看一遍发行说明,重点看修复了哪些已知问题。
我个人在实际操作中的体会是,命令本身并不难,难的是在正确的时机想起来用哪一条。上面这些命令我建议不要一次性背,而是按场景分组记忆——开局一组、VLAN 一组、路由一组、排障一组,每组就那么十几条,配上?和display的验证习惯,基本上现场就够用了。真遇上特别偏的需求,现场翻官方命令手册比背下来靠谱,关键是要知道"这个功能该往哪个方向找"。