Supermicro SONiC Configuration Guide: Switch Basics - 夜莺博客

Supermicro SONiC Configuration Guide: Switch Basics

Supermicro 的 SSE-G3748(48×1G + 6×25G)与 SSE-T7132(32×400G QSFP-DD + 2×10G)是两款典型的 SONiC 数据中心交换机。本文基于官方配置指南(Rev 1.7),讲解初始访问、管理 IP、接口属性(自协商/FEC/速率)、BGP 路由反射器、ACL、MCLAG 与端口镜像(SPAN/Everflow)的核心配置命令,帮助管理员在 SONiC 平台上快速落地。

Supermicro SONiC 平台与硬件概览

Supermicro 的以太网交换机产品线把商用 x86 控制平面与 Broadcom Trident/Tomahawk 系列交换芯片组合在一起,出厂预装 ONIE,再由 ONIE 安装 SONiC 镜像。理解这一点是理解后面所有配置命令的前提:交换机本质上是一台 Linux 服务器加上一块可编程 ASIC。

  • SSE-G3748 — 48×1G RJ45 下行 + 6×25G SFP28 上行,Trident 系列芯片,适合 1G 接入/管理网络与小型数据中心 ToR 场景。管理口 eth0 与 BMC 管理口物理分离。
  • SSE-T7132 — 32×400G QSFP-DD + 2×10G SFP+,Tomahawk 系列芯片,面向 Spine/骨干层,支持拆分(breakout)为 4×100G 或 2×200G。
  • ONIE — 负责发现并安装网络操作系统;安装完成前交换机只有 ONIE 环境,可通过 ONIE DHCP 或 U 盘安装 SONiC。
  • BMC / 串口 — 带外带外管理口提供 IPMI/Redfish,用于在 SONiC 完全不启动时仍然能进入控制台。

两台设备的散热方向、PSU 冗余和机架前后风道在装机时就要确认,因为 400G 端口满载时的功耗远高于 1G 接入场景;散热方向装反会导致温度告警甚至降速。

上架与物理部署检查清单

在接通管理网并开机之前,按下面的顺序做一次物理核查,可以避免相当多的"装完不会通"问题:

  • 光模块与线缆型号匹配端口速率;400G QSFP-DD 端口上 100G 模块需要显式配置拆分。
  • 上下行端口的 FEC 模式要一致。一台设备配 RS-FEC、对端配无 FEC 会导致链路 up 但丢包。
  • 管理口 eth0 接入带外管理 VLAN,BMC 接入同一管理 VLAN 的另一个地址段。
  • 记录每台交换机的序列号、机架位置、上行端口对端设备,这些信息在排障时比任何命令都值钱。
  • 先接好所有光纤再接电源,避免端口在无光情况下反复 flapping 产生大量 syslog。

初始访问

管理口 eth0 默认 DHCP;查看管理 IP:

admin@sonic:~$ show ip interfaces | grep eth0
eth0 192.168.86.10/24 up/up

注意 ZTP 默认开启,不用请先禁用:sudo ztp disable -y,保存配置 sudo config save -y。

如果管理网没有 DHCP 服务器,用串口登录并手工设置地址;BMC 的 IPMI 可以在 SONiC 未启动时提供同样的入口:

sudo config interface ip add eth0 192.168.86.10/24
sudo config interface ip add eth0 192.168.86.1/24 --gw
sudo config save -y
show ip route

设置完成后立刻修改默认用户名与口令,并为 admin 配置 SSH 密钥登录。生产环境还应把 /etc/sonic/config_db.json 纳入版本管理,任何一次 config save 之后都提交一份快照。

接口属性

自协商与 FEC

SSE-G3748 的 Fx 口默认 RS-FEC:

config interface fec Ethernet48 rs
config interface autoneg Ethernet48

SSE-T7132 的 400G 自协商需在创建 devport 时配置,链路训练与 base-page tech ability 按 lane 数设置。实际操作中记住三条经验:

  • 同一条链路两端 FEC 必须一致,rs(Reed-Solomon)、fc(Firecode)与 none 互不兼容。
  • 25G/100G 光模块通常默认 RS-FEC;直连 DAC 铜缆在短距离下可以关闭 FEC,但两端必须同时关闭。
  • 修改 FEC 会导致端口重新 up/down,务必在维护窗口执行,并提前确认是否有业务跑在这个端口上。

接口计数与速率

show interfaces counters rates
show interfaces counters rif Ethernet4
config interface speed Ethernet0 40000

show interfaces counters rates 给出的是实时速率(每秒比特/包数),适合判断链路利用率;show interfaces counters rif 给出的是累计计数,适合定位错误包。若 RX_ERR 或 CRC 计数器持续增长,优先怀疑光模块、光纤或 FEC 配置,而不是软件。

show interfaces counters errors
show interfaces transceiver eeprom Ethernet48
show interfaces status

BGP 与路由反射器

SONiC 使用 FRRouting 实现 BGP,路由反射器可避免 IBGP 全互联:在 RR 上配置 client 列表,其它 IBGP 路由器作为 client 只与 RR 建邻。配置后必须 sudo config save -y 持久化。

典型 Spine 作为 RR、Leaf 作为 client 的配置在 FRR 内部完成:

admin@sonic:~$ sudo vtysh
sonic# configure terminal
sonic(config)# router bgp 65001
sonic(config-router)# bgp router-id 10.1.1.1
sonic(config-router)# neighbor CLIENT peer-group
sonic(config-router)# neighbor CLIENT remote-as 65001
sonic(config-router)# neighbor CLIENT update-source Loopback0
sonic(config-router)# neighbor 10.1.1.11 peer-group CLIENT
sonic(config-router)# neighbor 10.1.1.11 route-reflector-client
sonic(config-router)# address-family ipv4 unicast
sonic(config-router-af)# neighbor CLIENT activate
sonic(config-router-af)# neighbor 10.1.1.11 activate
sonic(config-router-af)# end
sonic# write

验证部分同样重要,show bgp summary 里的 State/PfxRcd 列如果显示数字说明会话已经建立并收到了前缀,显示 Active 或 Idle 则要看 show bgp neighbor 10.1.1.11 里的 Last reset reason:

show ip bgp summary
show ip bgp neighbors 10.1.1.11
show ip bgp
show ip route bgp

常见原因是 update-source 指向的 Loopback 地址没有在三层可达,或 ASN 与 Device Metadata 中记录的值不一致。注意区分:FRR 的 write 只保存 FRR 配置,sudo config save -y 才是保存 SONiC 自身的配置,两者都要做。

ACL 配置

# 先建 ACL 表,再用 JSON 下发规则
root@sonic:~# config acl add table MyACL L3 --stage ingress --ports Ethernet0
root@sonic:~# config acl update full /tmp/ACL-Rules.json
root@sonic:~# show acl rule

SONiC 的 ACL 用 JSON 描述规则,一条最简单的丢弃规则长这样:

[
  {
    "ACL_RULES_ORDER": { "name": "MyACL", "rules": ["rule_1"] },
    "rule_1": {
      "PACKET_ACTION": "DROP",
      "SRC_IP": "10.10.10.0/24",
      "DST_IP": "10.20.20.0/24",
      "IP_PROTOCOL": "6",
      "L4_DST_PORT": "445"
    }
  }
]

要点:ACL 表必须先绑定端口再下发规则,否则规则不会命中;修改规则同样用 config acl update full 全量覆盖,而不是增量添加;用 show acl table 与 show acl rule 确认表和规则都已落到 ASIC。计数器增长(show acl rule | grep -i count)是判断规则是否真正生效的最直接证据。

MCLAG

MCLAG 支持 L2、L3(IPv4)与混合场景,标准流程:创建 port-channel → 创建 VLAN → 移除相关接口 IP → 添加聚合成员 → 添加 VLAN 成员并分配 IP,两台 peer 上对称执行。

两台 MCLAG peer 之间必须有一条独立的 peer-link(通常用直连的 100G/400G 端口,不做 VLAN 成员),并且两端 Switch ID、域 ID 必须显式区分:

sudo config mclag add Domain1 1 1.1.1.1
sudo config mclag member Domain1 PortChannel0001
show mclag brief
show mclag interface PortChannel0001

顺序很容易出错:必须先删除下行口上的三层 IP 再把端口加入 PortChannel,否则 SONiC 会拒绝该操作。两台设备配置完成后,用 show mclag brief 确认角色(active/standby 或 active/active)与 peer-link 状态;如果对端显示 not ready,优先检查 peer-link 本身和两端 Switch ID 是否重复。

端口镜像

# SPAN 与 Everflow(基于 ACL 的镜像)
root@sonic:~# config acl add table Everflow-ACL-Table MIRROR --description 'ACL for Everflow' --stage ingress --ports Ethernet0

本地 SPAN 把流量镜像到一个物理端口,Everflow 则基于 ACL 匹配并可以把流量封装后送到远端分析器。两者的配置路径不同,但排障时的用法一致:先在监控口上用 tcpdump 确认收到报文,再回来看 ACL 计数器。

sudo config interface mirror add Ethernet0 MirrorPort Ethernet4
show mirror_session
sudo tcpdump -i Ethernet4 -nn -c 20

注意:镜像功能用于排障,生产高流量下可能拖慢交换机,慎用。镜像口的速率必须不低于被镜像流量的速率,否则 tail drop 会让分析结果产生偏差;排障结束后记得删除镜像会话。

保存、重载与版本升级

SONiC 的配置持久化模型与其他厂商不同,务必区分"运行配置"和"启动配置":

sudo config save -y                 # ConfigDB -> /etc/sonic/config_db.json
sudo config reload -y               # 重载并重启相关服务
show version                        # 当前 SONiC 镜像版本
sudo sonic-installer list           # 已安装镜像
sudo sonic-installer install /host/sonic-broadcom.bin -y

升级前先执行 sudo config save -y 并把 config_db.json 备份到管理网,升级完成后再用 sudo sonic-installer set-default 切换默认镜像并重启。保留上一个镜像作为回滚点是标准做法。

健康检查与日常验证

把下面这组命令做成每周巡检脚本,可以在故障发生前发现问题:

show version
show platform summary
show interfaces status
show interfaces counters errors
show interfaces transceiver eeprom
show ip bgp summary
show mclag brief
show logging | tail -100
sudo generate_dump

特别关注三项:光模块的 rx power 是否接近灵敏度下限、接口错误计数是否在增长、BGP 会话是否发生过 reset。这三类指标覆盖了数据中心交换机绝大多数硬件与配置类故障。

相关阅读

SONiC 概念与安装见本站 SONiC Network OS Configuration with GNS3;Dell 平台实践见 Dell S-Series SONiC 4.0: Basic Switch Management;ConfigDB 的保存与重载机制见 SONiC config_db.json: Save, Reload and Replace Safely;命令行速查见 SONiC CLI Cheat Sheet: Show, Config and Config-DB Commands。

原文链接:https://www.supermicro.com/manuals/network/Supermicro_Datacenter_SONiC_Configuration_Guide.pdf