如果你从思科CCNA那套命令行走过来,第一次登录 Mellanox Onyx 交换机的时候大概率会愣一下:提示符长得不一样,端口命名也不是 GigabitEthernet0/1,甚至连“保存配置”的命令都得翻手册。这很正常。Mellanox Onyx 交换机在数据中心、HPC、存储网络里出现频率很高,尤其近几年随着RoCEv2、DPDK、无损网络这些概念火起来,很多团队开始把Mellanox交换机和它自家的ConnectX网卡搭配使用。这篇就围绕Mellanox Onyx交换机的基本使用展开,从开机上电、命令行逻辑、常用配置到排障思路,给准备把设备纳入现网的朋友一份能直接落地的参考。
文章既有命令思路,也有我在实际环境里踩过的坑。我尽量用“机器实际是什么逻辑”来讲,而不是背手册。版本不同命令会有差异,但核心思路一致,你掌握了套路,换版本也只是细节变化。
1. 搞清Onyx是什么:它不是一台“普通交换机”那么简单的角色
1.1 Mellanox交换机、Spectrum芯片和Onyx系统的关系
Mellanox这个名字,早期更多是做InfiniBand和以太网卡。后来收购了交换芯片团队,推出了Spectrum系列交换芯片,也做了自己的交换机设备,比如SN2000、SN3000、SN4000这些型号。运行在它们上面的网络操作系统就是Onyx,早期还有一个叫MLNX-OS的版本,你可以把Onyx理解成新一代的统一系统,功能和API体系更完善。
Onyx系统的底层是Linux内核,但对外暴露的是一套完整的交换机CLI,不是让你直接进Linux shell。它的架构设计思路偏向数据中心场景:二层、三层、VXLAN、RoCE、Telemetry这些能力是重点,不像传统园区交换机那样在复杂接入功能上花太多功夫。所以你在Onyx设备上看不到大量“combo口”“语音VLAN”之类的杂项能力,它的强项在转发性能、缓冲管理、低延迟、可编程性和流控生态。
我见过不少人把Mellanox交换机和H3C、华为的设备放在一起对比,其实定位就不一样。Cisco、华为、H3C是“通用网络设备厂商”,从核心到接入全都覆盖;Mellanox更聚焦在数据中心内部,尤其是高性能计算、分布式存储、AI训练集群这类场景。你拿它做园区接入不是不行,但成本和学习优势都体现不出来。
1.2 端口编号规律和前面板布局
第一次拿到设备,先别急着插线。Mellanox Onyx交换机的物理端口命名一般是Ethernet1/1、1/2这样的格式,第一个数字是模块号,第二个是端口号。大多数固定端口设备前面只有一个模块,所以看到Ethernet1/1到Ethernet1/N很常见。如果用了端口拆分(Breakout),会出现Ethernet1/1/1、1/1/2这种三级编号,这一点在配置时特别容易看走眼。
前面板上除了业务口,通常还有console口、带外管理口和USB接口。console口是调试救命的路径,管理口用于带外远程管理,USB口可以用来升级镜像或拷贝配置文件。如果你想把一台设备快速纳入现网,第一件事就是把管理口IP配上,而不是用业务口做管理。业务口做管理一旦VLAN、路由配置出错,你就得跑机房插console,这是得不偿失的。
1.3 选型建议:什么时候选Onyx,什么时候不选
选型不是“哪个好”,而是“哪个匹配”。如果你对延迟和确定性转发要求极高,比如跑分布式存储、HPC计算集群,Mellanox Onyx交换机配合ConnectX网卡是成熟方案。如果团队已经在用SONiC或Cumulus Linux,那要评估的是运维习惯,Onyx的CLI和监控体系是一门相对独立的技能树。
另外要考虑团队排障能力。Onyx文档确实多,但中文社区沉淀相对少,很多问题需要去官方文档和社区翻。如果你的团队对命令行接受度低,老老实实用华为或H3C,至少出了问题能搜到一大把中文帖子。网络设备不是参数单好看就行,可维护性才是长期运营的关键。
2. 首次上电与基础登录配置:串口、管理口和三个最容易卡住的细节
2.1 上电后从console登录:默认账号和波特率
拿到新设备后我习惯先接console线。Mellanox设备的console口默认参数一般是波特率115200,8数据位,1停止位,无校验。部分老设备或特殊型号可能不一样,连不上就试9600、57600这个组合,别一上来就怀疑设备坏了。
第一次登录的默认账号通常是admin,默认密码也是admin。登录后系统会提示修改密码,这里不要跳过。很多机房事故不是因为bug,而是因为设备挂着默认密码暴露在网络上,被人扫到直接进配置。改密码只是顺手的事,但能挡掉绝大多数低级风险。
登录之后你会进入一个类似“switch (config-...) #”的CLI环境。Onyx没有传统思科那种“用户模式/特权模式”的强区分,登录后基本就是操作模式,可以执行show命令;要改配置就进configure terminal,这个逻辑和大多数现代交换机系统类似。
2.2 配置带外管理IP和开启SSH的推荐顺序
配置管理网络建议在console下先完成,避免SSH配置一半断掉。我的推荐配置顺序是:
switch (config) # interface mgmt0 switch (config if mgmt0) # ip address 192.0.2.10/24 switch (config if mgmt0) # exit switch (config) # ip default-gateway 192.0.2.1 switch (config) # ssh server enable switch (config) # configuration write管理接口不是默认就配好IP的,必须手动指定。管理口一般不参与业务转发,它是独立的带外通道,千万别把管理口和某一个业务口混在一起。配好IP后先用ping验证网关,再从跳板机试SSH,通了再把console线收起来。这样后面所有操作都能远程完成了,也方便同时开多个终端查看配置。
带外管理IP应该规划好,不要随手拉一个互联网地址或者和业务段混用。我见过有人把管理IP配在业务VLAN里,防火墙策略一变,整台设备直接失去远程管理权限。
2.3 首次使用最容易卡住的三个细节
第一个细节是“配置保存”。Onyx系统里配置修改后最好执行configuration write持久化,不然设备重启后修改全部丢失。不同版本提示符可能写成copy running-config startup-config,但基本逻辑一样。养成改完配置就保存的习惯,能省掉很多无谓的返工。
第二个细节是tab键和问号。Onyx的CLI支持补全和在线帮助,命令敲一半按Tab能补全,输入?会列出后续可用的关键字。很多人第一次用觉得陌生,其实这套交互很友好。遇到不确定的语法,多按几次?比查文档快得多。
第三个细节是线缆和光模块。Mellanox设备对光模块参数检测比较严格,不是所有第三方光模块都能被正确识别。插上去显示DOWN不代表线有问题,先看模块的告警和型号识别情况。如果用的是兼容模块,先确认固件版本对模块有兼容记录,否则后续排查会绕很远。
3. Onyx命令行体系:不用硬背,掌握这套逻辑就够了
3.1 配置模式和接口命名体系
Onyx的命令行大致分两层:操作模式和配置模式。操作模式负责看状态、看日志、测试连通性,配置模式负责修改系统。配置模式下还可以继续往下钻,比如进入某个物理接口、VLAN接口、聚合口,这时提示符会跟着变化。模块化设计就是告诉你“你当前在配置什么东西”。
接口命名贯穿所有配置过程,所以必须花两分钟把它弄明白。物理口是Ethernet1/x,管理口是mgmt0,聚合口一般叫port-channel,VLAN三层接口通常叫interface vlan。命名逻辑很直白,不像某些老系统那样为了兼容历史搞得命名规则云里雾里。
3.2 日常巡检必用show命令速查
我把日常最常用的show命令整理成了表格,适合刚接触Onyx的人贴在笔记里。不用全会,记住这几个就能应付大多数场景。
| 命令用途 | 命令示例 | 说明 |
|---|---|---|
| 系统版本 | show version | 查看系统版本、硬件型号、运行时间 |
| 接口汇总 | show interfaces summary | 查看所有接口状态、速率、协议状态 |
| 接口详情 | show interfaces ethernet 1/1 | 查看单个接口状态、协商模式、错误计数 |
| 流量计数 | show interfaces counters | 查看接口收发流量和错误包计数 |
| VLAN信息 | show vlan | 查看VLAN表和端口成员关系 |
| 路由表 | show ip route | 查看三层路由表 |
| 邻居发现 | show lldp neighbors | 查看对端设备信息,排查链路非常有用 |
| 系统健康 | show system health | 查看电源、风扇、温度状态 |
看到没,日常巡检基本围绕这几个维度:状态、计数、路由、邻居、硬件健康。遇到问题先跑一遍这些命令,绝大部分故障都能定位到一个大概范围。
3.3 配置保存、备份和回滚
Onyx的配置保存不能只靠记忆,要在文档里固定下来。修改配置后执行configuration write,把运行配置写入启动配置。不同版本命令可能有差异,但核心目标都一样:把当前有效配置固化到下次启动加载的文件里。
配置变更前建议先把当前运行配置备份一份,可以保存到本地文本,也可以通过SCP、TFTP拷贝到管理服务器。备份文件名最好带日期和设备名,不要叫“backup.cfg”这种。回滚的时候直接load备份配置,比一条条手敲撤销命令更可靠。网络设备配置回滚最忌讳临时起意,没有备份就大改,一旦改错方向,恢复成本远超那几分钟“省事”。
3.4 时间、NTP和日志:故障定位的基石
日志排障最怕设备时间不准。两台设备日志时间对不上,哪怕一条链路同时报错,你也无法判断先后顺序。所以配置NTP是上电后就要做的事,而且要让所有交换机和服务器同步到同一时间源。
日志可以配置发送到远程日志服务器,比如常见的syslog服务器。设备本地日志会滚动覆盖,出问题后再回去翻可能已经被冲掉了。远程日志服务器不仅保存时间长,还能统一检索,是生产环境必须补齐的一环。我见过不少团队设备跑得好好的就懒得配日志,等出了安全问题才发现什么都没有,这个教训希望你不要亲自踩一遍。
4. 常用配置场景:VLAN、端口聚合与三层路由一次说清
4.1 VLAN规划:Access和Trunk怎么分
数据中心里最常见的配置就是划分VLAN。Onyx创建VLAN的套路和我用过的其他厂商设备差不多,先定义VLAN,再把端口放进去。
switch (config) # vlan 10 switch (config vlan 10) # name production switch (config vlan 10) # exit switch (config) # interface ethernet 1/1 switch (config interface ethernet 1/1) # switchport mode access switch (config interface ethernet 1/1) # switchport access vlan 10 switch (config interface ethernet 1/1) # no shutdown这段命令的大意是:创建VLAN 10,命名为production;把Ethernet1/1这个物理口设为access模式并划入VLAN 10。主机侧端口用access,上联交换机之间用trunk,这是基本规则。Trunk口要明确允许哪些VLAN通过,不要图省事放行所有VLAN,否则广播域会被无意义地扩大,排障时也会增加干扰。
我见过有人把服务器网卡口配置成trunk且允许所有VLAN,结果服务器自己发的无标签流量全扇出到每个VLAN里,造成广播风暴。这种问题查起来让人头大,因为表象是“网络很卡”,实际是VLAN划分不干净。所以,端口角色定义越严格,网络越稳定。
4.2 链路聚合LACP:别在模式匹配上翻车
服务器双网卡绑定、交换机之间多链路扩容,都用链路聚合。Onyx里创建聚合端口加成员口的逻辑不复杂:
switch (config) # interface port-channel 10 switch (config interface port-channel 10) # exit switch (config) # interface ethernet 1/1 switch (config interface ethernet 1/1) # channel-group 10 mode active switch (config interface ethernet 1/1) # exit switch (config) # interface ethernet 1/2 switch (config interface ethernet 1/2) # channel-group 10 mode active两端都要配置LACP,一端active、一端active或passive,不能一端active另一端不开LACP。否则聚合口会一直不起来。还有两个容易踩的坑:成员口的速率和双工模式必须一致;成员口划分到聚合口之前必须是干净的access或trunk配置,不要带着杂七杂八的配置去加组。
链路聚合之后,判断是否生效不能只看端口物理状态,还要看LACP状态和成员口计数。如果只有单个成员口转发,说明聚合负载不均或另一端没识别。用show命令看聚合口状态,确认成员口都进入“收集/分发”状态才算成功。
4.3 三层路由:配置SVI和默认路由
在Onyx上给VLAN配置三层地址,实际上就是创建VLAN接口并配IP。这个“VLAN接口”叫法很多,有的厂商叫SVI,有的叫interface vlan,逻辑都一样:让该VLAN内的主机可以通过这个IP做网关。
switch (config) # interface vlan 10 switch (config interface vlan 10) # ip address 10.0.10.1/24 switch (config interface vlan 10) # no shutdown switch (config interface vlan 10) # exit switch (config) # ip route 0.0.0.0/0 10.0.0.1这段配置里第一段是给VLAN 10配置网关地址10.0.10.1/24,第二段是写默认路由,把所有目标未知的流量交给上行设备10.0.0.1。注意,接口必须执行no shutdown,否则接口置为管理Down状态,ping不通第一反应根本不会想到是接口没启用。
如果是三层网络环境,还经常用到等价路由,也就是给同一个目的地址写多条下一跳路由,实现ECMP负载均衡。Onyx对ECMP的支持是原生的,和多网卡服务器配合能提高整体转发带宽。但ECMP配置前一定要确认下一跳设备都能正常工作,否则等价路由会不分青红皂白地把流量发向故障链路。
4.4 一个小型配置实例:接入交换机怎么串起来
我拿一个典型场景举例:一台Onyx接入交换机,下挂两个服务器网段,上联两台核心交换机做链路聚合。配置顺序是:
- 创建VLAN 10和VLAN 20,分别给服务器段和存储段。
- 两个服务器端口分别设置为access,划入对应VLAN。
- 上联两个口创建port-channel并配置为trunk,允许VLAN 10和20通过。
- 创建interface vlan 10和interface vlan 20,配置网关IP。
- 添加默认路由指向核心设备。
- 执行 configuration write 保存。
把配置拆成这几步,思路就非常清晰。千万不要想到哪配到哪,配置到一半又去翻VLAN规划表,这样最容易出现端口划错VLAN、trunk漏放行这种低级问题。提前在Excel或文档里画好端口-VLAN-IP对应关系,再上设备操作,效率会高很多。
5. 把交换机接入监控体系:SNMP、日志和与Mellanox网卡的协同
5.1 用SNMP接入Prometheus或Zabbix
交换机不是配完就撒手不管的,监控体系要跟上。Mellanox Onyx支持SNMP,配置一个只读团体字后,用Prometheus的snmp_exporter或Zabbix就能采集交换机指标。配置思路大致如下:
switch (config) # snmp-server community public ro生产环境不要用public这种默认团体字,改成随机字符串,并限制SNMP来源地址。监控数据重点关注交换机CPU、内存、端口流量、丢包计数、光模块收发功率和温度。这些指标能提前暴露链路质量下降和硬件老化问题。
有条件的团队还可以看Onyx的Telemetry能力,它能把流表和端口统计流式推送给采集端,比轮询SNMP更实时。不过Telemetry要额外做一套采集通道,环境小的话先用SNMP足够。
5.2 流镜像与抓包:让异常流量无处躲
有时候端口计数正常,但业务就是慢。这时候需要抓包。Onyx支持端口镜像,把某个端口或VLAN的流量复制一份送到监控端口,用Wireshark或tcpdump分析。镜像不会影响原流量,但要注意监控端口带宽要大于被镜像端口的实际吞吐,否则会丢包,抓出来的包反而不完整。
抓包前先想清楚要抓什么:是广播包、组播包,还是某个微突发流量。不要直接抓全量,文件巨大且难以分析。一般先抓ARP、VLAN标签、TCP握手重传这几个关键信息,基本能定位大多数二层和三层问题。
5.3 和ConnectX网卡配合:DPDK测试和RoCE场景的经验
Mellanox交换机经常和自家ConnectX网卡搭配,尤其在DPDK和RoCE场景。很多同学第一次做DPDK测试时,只看testpmd的数据,完全不看交换机端口状态,结果延迟高、丢包,绕了半天发现是物理链路问题。
我建议的配合方式是:先用交换机侧确认端口协商速率、CRC错误计数、光模块功率正常,再上DPDK层做测试。如果测试环境开了RoCE无损网络相关功能,交换机侧还要检查PFC/ECN相关计数器,这一项在普通交换机上很少接触,但在Mellanox环境里是标配。
另外要做大包性能测试就要保证MTU一致。网卡侧改MTU到9000,交换机端口也要同步改;两边不一致会导致分片或丢包。这个事情不起眼,但运维现场十次性能问题里有三四次是MTU不一致造成的。
5.4 日常巡检脚本:让环境自己发现风险
经验丰富之后,你会发现很多故障早期都有征兆,比如光模块功率下降、端口CRC轻微增长、温度悄悄升高。靠人每天登录设备看不现实,写个脚本定期采集关键指标更合适。用SNMP拉数据写到监控系统,设置阈值告警,比天天翻日志靠谱得多。
Mellanox交换机在学校实验室或小型机房通常没有专职网络工程师,自动化巡检尤其重要。我习惯每隔一小时采集一次端口错误计数和光模块功率,保留30天。这样即使没人实时盯着,出问题后也能回看历史趋势,判断故障是从什么时候开始的。
6. 排障思路与实测记录:从端口DOWN到丢包,一次走完整个排查链路
6.1 设备起不来或控制台没反应怎么办
先别慌,按顺序查:电源、串口线、终端软件串口参数、启动进度。Mellanox交换机开机需要一点时间,如果console一直没输出,检查USB转串口驱动和终端软件设置的波特率。确定终端设置没问题的前提下,再考虑镜像或启动配置损坏。
镜像崩溃的情况比较少见但要预防。新设备到手先做一个干净备份,把启动镜像和配置备份都保存到外部服务器。一旦系统起不来,可以用USB或网络引导方式恢复。恢复镜像不是日常操作,但你必须知道入口在哪,不然真遇到又急又没法百度的时候会很被动。
6.2 一台服务器ping不通网关:完整排查链路
我拿一次实际排障经历举例。新接入一台服务器,配好IP后ping网关不通。看着交换机端口是UP,VLAN也在,但就是不通。很多人这时候开始怀疑交换机bug,其实没用,还得按链路来。
第一步,先在交换机上看物理状态:show interfaces ethernet 1/5,确认端口是UP还是DOWN。如果端口DOWN,看光模块和线缆;如果端口UP但是错误计数一直在涨,很大概率是光模块或线缆质量问题。
第二步,确认VLAN归属:show vlan,看Ethernet1/5到底在哪个VLAN里。有时候端口配置被上一次操作覆盖了,VLAN归属跟规划完全不一样,导致流量进错VLAN。
第三步,ping网关测试。如果交换机自己ping服务器IP能通,说明二层转发没问题,问题可能出在服务器防火墙或静态路由。这一条排查路径走下来,大多数“莫名其妙”的故障都能定位到具体原因。
6.3 常见问题对照表:先拧螺丝再看系统
| 现象 | 优先排查方向 |
|---|---|
| 端口一直DOWN | 光模块识别、线缆类型、对端设备是否down |
| 端口UP但大量CRC错误 | 光模块衰减、线缆距离、电磁干扰、模块与端口速率不匹配 |
| 聚合口只有一个成员在转发 | 成员口速率不一致、对端未配置LACP、VLAN配置不一致 |
| 配置重启后丢失 | 未执行configuration write,配置未固化 |
| SSH连接超时 | 管理IP不通、SSH服务未开启、管理ACL限制 |
| SNMP采集不到数据 | 团体字错误、SNMP来源限制、防火墙阻断UDP 161端口 |
| 组播或广播流量异常 | VLAN划分、igmp snooping配置、环路问题 |
这张表只是起点。排障一定要带着“数据说话”的心态,先看每个环节的计数和状态,再判断问题出在哪一层。直接靠猜测换线换模块,运气好能解决,运气不好会反复发作。
6.4 个人习惯:变更前备份,变更后验证,平时留好退路
网络设备的坑踩多了,我现在养成三个习惯。第一,任何配置变更前先把当前配置备份并保存,别偷懒。第二,变更后不只是ping通就完事,还要看端口错误计数有没有增长,看日志有没有新告警。第三,每次排障结束,把原因和解决步骤记录下来,形成团队内部笔记,而不是让踩坑经验只留在个人脑子里。
Onyx说到底就是一台运行着特定操作系统的交换机,它没有想象中那么难,也不像有些人吹得那么神秘。只要把CLI模式、端口命名、配置保存这三个基础点吃透,后面的配置其实都是重复的组合。希望这篇围绕Mellanox Onyx交换机基本使用的内容,能让你少走几步弯路。拿一台设备慢慢敲,多看一下show命令的输出,上手速度会比你预想的快得多。