在之前笔者一文中,我们系统性介绍了SONiC的技术背景、功能特点及部署安装等。本节我们将重点介绍SONiC如何适配硬件平台以及适配过程应着重注意哪些能力。
SONiC(Software for Open Networking in the Cloud)作为一个开源的网络操作系统,主要用于数据中心和云环境中的网络设备。它支持多种硬件平台,但在适配硬件时需要注意多个方面。包括但不限于:选择合适的硬件、适配时的注意事项以及需要进行的测试等。
SONiC系统架构
硬件选择硬件兼容性支持的ASIC:SONiC主要支持Broadcom、Mellanox、Barefoot、Cavium等厂商的ASIC。因此,在选择硬件时,需要确认所选设备的ASIC是否在SONiC的支持列表中。平台支持:SONiC支持多种硬件平台,包括白盒交换机(如Edgecore、Dell、Celestica等)。确保所选平台已经通过SONiC社区的认证,或有良好的社区支持。支持 SONiC 的平台列表如下:
厂商
平台
ASIC厂商
交换机 ASIC
端口类型
成功构建
Accton
AS4630-54PE
Broadcom
Helix 5
48x1G + 4x25G + 2x100G
sonic-broadcom.bin
Accton
AS5712-54X
Broadcom
Trident 2
72x10G
sonic-broadcom.bin
Accton
AS5812-54X
Broadcom
Trident 2
72x10G
sonic-broadcom.bin
Accton
AS5835-54T
Broadcom
Trident 3
48x10G + 6x100G
sonic-broadcom.bin
Accton
AS5835-54X
Broadcom
Trident 3
48x10G + 6x100G
sonic-broadcom.bin
Accton
AS6712-32X
Broadcom
Trident 2
32x40G
sonic-broadcom.bin
Accton
AS7116-54X
Nephos
Taurus
48x25G + 6x100G
N/A
Accton
AS7312-54X
Broadcom
Tomahawk
48x25G + 6x100G
sonic-broadcom.bin
Accton
AS7312-54XS
Broadcom
Tomahawk
48x25G + 6x100G
sonic-broadcom.bin
Accton
AS7315-27XB
Broadcom
Qumran
20x10G + 4x25G + 3x100G
undefined
Accton
AS7326-56X
Broadcom
Trident 3
48x25G + 8x100G
sonic-broadcom.bin
Accton
AS7512-32X
Cavium
XPliantCNX880**
32x100G
N/A
Accton
AS7712-32X
Broadcom
Tomahawk
32x100G
sonic-broadcom.bin
Accton
AS7716-32X
Broadcom
Tomahawk
32x100G
sonic-broadcom.bin
Accton
AS7716-32XB
Broadcom
Tomahawk
32x100G
sonic-broadcom.bin
Accton
AS7726-32X
Broadcom
Trident 3
32x100G
sonic-broadcom.bin
Accton
AS7816-64X
Broadcom
Tomahawk 2
64x100G
sonic-broadcom.bin
Accton
AS9716-32D
Broadcom
Tomahawk 3
32x400G
sonic-broadcom.bin
Accton
Minipack
Broadcom
Tomahawk 3
128x100G
sonic-broadcom.bin
Accton
Wedge 100BF-32
Intel
Tofino
32x100G
sonic-barefoot.bin
Accton
Wedge 100BF-65X
Intel
Tofino
32x100G
sonic-barefoot.bin
Alphanetworks
SNH60A0-320Fv2
Broadcom
Tomahawk
32x100G
sonic-broadcom.bin
Alphanetworks
SNH60B0-640F
Broadcom
Tomahawk 2
64x100G
sonic-broadcom.bin
Alphanetworks
BES2348T
Broadcom
Trident 3.X2
48x1G+4x25G
sonic-broadcom.bin
Arista
CCS-720DT-48S
Broadcom
Trident 3.X2
48x1G + 4x10G
sonic-aboot-broadcom.swi
Arista
DCS-7050QX-32
Broadcom
Trident 2
32x40G
sonic-aboot-broadcom.swi
Arista
DCS-7050QX-32S
Broadcom
Trident 2
32x40G
sonic-aboot-broadcom.swi
Arista
DCS-7050CX3-32S
Broadcom
Trident 3
32x100G + 2x10G
sonic-aboot-broadcom.swi
Arista
DCS-7060CX-32S
Broadcom
Tomahawk
32x100G + 2x10G
sonic-aboot-broadcom.swi
Arista
DCS-7060DX4-32
Broadcom
Tomahawk 3
32x400G + 2x10G
sonic-aboot-broadcom.swi
Arista
DCS-7060PX4-32
Broadcom
Tomahawk 3
32x400G + 2x10G
sonic-aboot-broadcom.swi
Arista
DCS-7060DX5-32
Broadcom
Tomahawk 4T
32x400G + 2x10G
sonic-aboot-broadcom.swi
Arista
DCS-7060DX5-64
Broadcom
Tomahawk 4
32x800G + 2x10G
sonic-aboot-broadcom.swi
Arista
DCS-7060PX5-64
Broadcom
Tomahawk 4
32x800G + 2x10G
sonic-aboot-broadcom.swi
Arista
DCS-7060DX5-64S
Broadcom
Tomahawk 4
64x400G + 2x10G
sonic-aboot-broadcom.swi
Arista
DCS-7170-32CD
Intel
Tofino
32x100G + 2x10G
undefined
Arista
DCS-7170-64C
Intel
Tofino
64x100G + 2x10G
undefined
Arista
DCS-7260CX3-64
Broadcom
Tomahawk 2
64x100G + 2x10G
sonic-aboot-broadcom.swi
Arista
DCS-7280CR3-32D4
Broadcom
Jericho 2
32x100G + 4x400G
undefined
Arista
DCS-7280CR3-32P4
Broadcom
Jericho 2
32x100G + 4x400G
undefined
Celestica
DX010
Broadcom
Tomahawk
32x100G
sonic-broadcom.bin
Celestica
E1031
Broadcom
Helix4
48x1G + 4x10G
sonic-broadcom.bin
Celestica
midstone-200i
Marvell
Teralynx 7
128x100G
sonic-marvell-armhf.bin
Celestica
Silverstone
Broadcom
Tomahawk 3
32x400G
sonic-broadcom.bin
Celestica
Seastone_2
Broadcom
Trident 3
32x100G
sonic-broadcom.bin
Centec
E582-48X2Q
Centec
Goldengate
48x10G + 2x40G + 4x100G
sonic-centec.bin
Centec
E582-48X6Q
Centec
Goldengate
48x10G + 6x40G
sonic-centec.bin
Cig
CS6436-56P
Nephos
NP8366
48x25G + 8x100G
N/A
Cig
CS5435-54P
Nephos
NP8363
10GX48,100GX6
N/A
Cig
CS6436-54P
Nephos
NP8365
25GX48,100GX6
N/A
Dell
N3248PXE
Broadcom
Trident 3.X5
48x10GCU+4x25G-2x100G
sonic-broadcom.bin
Dell
N3248TE
Broadcom
Trident 3.X3
48x1G+4x10G-2x100G
sonic-broadcom.bin
Dell
S5212F
Broadcom
Trident 3.X5
12x25G+3x100G
sonic-broadcom.bin
Dell
S5224F
Broadcom
Trident 3.X5
24x25G+4x100G
sonic-broadcom.bin
Dell
S5232F-ON
Broadcom
Trident 3
32x100G
sonic-broadcom.bin
Dell
S5248F-ON
Broadcom
Trident 3
48x25G,4x100G,2x200G
sonic-broadcom.bin
Dell
s5296F
Broadcom
Trident 3
96x25G
sonic-broadcom.bin
Dell
S6000-ON*
Broadcom
Trident 2
32x40G
sonic-broadcom.bin
Dell
S6100-ON
Broadcom
Tomahawk
64x40G
sonic-broadcom.bin
Dell
Z9100-C32
Broadcom
Tomahawk
32x100G
sonic-broadcom.bin
Dell
Z9264
Broadcom
Tomahawk 2
64x100G
sonic-broadcom.bin
Dell
Z9332F
Broadcom
Tomahawk 3
32x400G,2x10G
sonic-broadcom.bin
Dell
Z9332f-C32
Broadcom
Tomahawk 3
32x100G
sonic-broadcom.bin
Delta
AG5648
Broadcom
Tomahawk
48x25G + 6x100G
sonic-broadcom.bin
Delta
AG9032V1
Broadcom
Tomahawk
32x100G
sonic-broadcom.bin
Delta
AG9032V2A
Broadcom
Trident 3
32x100G + 1x10G
sonic-broadcom.bin
Delta
AG9064
Broadcom
Tomahawk 2
64x100G
sonic-broadcom.bin
Delta
et-c032if
Marvell
Teralynx 7
32x400G
sonic-marvell-armhf.bin
Delta
ET-6448M
Marvell
Prestera 98DX3255
48xGE + 4x10G
sonic-marvell-armhf.bin
Delta
agc032
Broadcom
Tomahawk 3
32x400G + 2x10G
sonic-broadcom.bin
Embedway
ES6220 (48x10G)
Centec
Goldengate
48x10G + 2x40G + 4x100G
sonic-centec.bin
Embedway
ES6428A-X48Q2H4
Centec
Goldengate
4x100G + 2x40G + 48x10G
sonic-centec.bin
Wedge 100-32X
Broadcom
Tomahawk
32x100G
sonic-broadcom.bin
Ingrasys
S8810-32Q
Broadcom
Trident 2
32x40G
sonic-broadcom.bin
Ingrasys
S8900-54XC
Broadcom
Tomahawk
48x25G + 6x100G
sonic-broadcom.bin
Ingrasys
S8900-64XC
Broadcom
Tomahawk
48x25G + 16x100G
sonic-broadcom.bin
Ingrasys
S9100-32X
Broadcom
Tomahawk
32x100G
sonic-broadcom.bin
Ingrasys
S9130-32X
Nephos
Taurus
32x100G
N/A
Ingrasys
S9180-32X
Intel
Tofino
32x100G
sonic-barefoot.bin
Ingrasys
S9200-64X
Broadcom
Tomahawk 2
64x100G
sonic-broadcom.bin
Ingrasys
S9230-64X
Nephos
Taurus
64x100G
N/A
Ingrasys
S9280-64X
Intel
Tofino
64x100G
sonic-barefoot.bin
Inventec
D6254QS
Broadcom
Trident 2
72x10G
sonic-broadcom.bin
Inventec
D6356
Broadcom
Trident 3
48x25G + 8x100G
sonic-broadcom.bin
Inventec
D6556
Broadcom
Trident 3
48x25G + 8x100G
sonic-broadcom.bin
Inventec
D7032Q
Broadcom
Tomahawk
32x100G
sonic-broadcom.bin
Inventec
D7054Q
Broadcom
Tomahawk
48x25G + 6x100G
sonic-broadcom.bin
Inventec
D7264Q
Broadcom
Tomahawk 2
64x100G
sonic-broadcom.bin
Juniper Networks
QFX5210-64C
Broadcom
Tomahawk 2
64x100G
sonic-broadcom.bin
Juniper Networks
QFX5200-32C-S
Broadcom
Tomahawk 1
32x100G
sonic-broadcom.bin
Marvell
RD-ARM-48XG6CG-A4
Marvell
Prestera 98EX54xx
6x100G+48x10G
sonic-marvell-armhf.bin
Marvell
RD-BC3-4825G6CG-A4
Marvell
Prestera 98CX84xx
6x100G+48x25G
sonic-marvell-armhf.bin
Marvell
98cx8580
Marvell
Prestera CX
32x400G + 16x400G
sonic-marvell-armhf.bin
Mitac
LY1200-B32H0-C3
Broadcom
Tomahawk
32x100G
sonic-broadcom.bin
Netberg
Aurora 610
Intel
Tofino BFN-T10-032D-020
48x 25G + 8x 100G
sonic-barefoot.bin
Netberg
Aurora 710
Intel
Tofino BFN-T10-032D
32x 100G
sonic-barefoot.bin
Netberg
Aurora 750
Intel
Tofino BFN-T10-064Q
64x 100G
sonic-barefoot.bin
Nvidia
SN2010
Nvidia
Spectrum
18x25G + 4x100G
sonic-mellanox.bin
Nvidia
SN2100
Nvidia
Spectrum
16x100G
sonic-mellanox.bin
Nvidia
SN2201
Nvidia
Spectrum
48x1G + 4x100G
sonic-mellanox.bin
Nvidia
SN2410
Nvidia
Spectrum
48x25G + 8x100G
sonic-mellanox.bin
Nvidia
SN2700
Nvidia
Spectrum
32x100G
sonic-mellanox.bin
Nvidia
SN3420
Nvidia
Spectrum 2
48x25G + 12x100G
sonic-mellanox.bin
Nvidia
SN3700
Nvidia
Spectrum 2
32x200G
sonic-mellanox.bin
Nvidia
SN3700C
Nvidia
Spectrum 2
32x100G
sonic-mellanox.bin
Nvidia
SN3800
Nvidia
Spectrum 2
64x100G
sonic-mellanox.bin
Nvidia
SN4410
Nvidia
Spectrum 3
48x100 + 8x400
sonic-mellanox.bin
Nvidia
SN4600C
Nvidia
Spectrum 3
64x100G
sonic-mellanox.bin
Nvidia
SN4600V
Nvidia
Spectrum 3
64x200G
sonic-mellanox.bin
Nvidia
SN4700
Nvidia
Spectrum 3
32x400G
sonic-mellanox.bin
Nvidia
SN5600
Nvidia
Spectrum 4
64x800G
sonic-mellanox.bin
Pegatron
Porsche
Nephos
Taurus
48x25G + 6x100G
N/A
Quanta
T3032-IX7
Broadcom
Trident 3
32x100G
sonic-broadcom.bin
Quanta
T4048-IX8
Broadcom
Trident 3
48x25G + 8x100G
sonic-broadcom.bin
Quanta
T4048-IX8C
Broadcom
Trident 3
48x25G + 8x100G
sonic-broadcom.bin
Quanta
T7032-IX1B
Broadcom
Tomahawk
32x100G
sonic-broadcom.bin
Quanta
T9032-IX9
Broadcom
Tomahawk 3
32x400G
sonic-broadcom.bin
Ragile
RA-B6510-48V8C
Broadcom
Trident 3
48x25G+8x100G
sonic-broadcom.bin
Ragile
RA-B6910-64C
Broadcom
Tomahawk 2
64x100G
sonic-broadcom.bin
Ragile
RA-B6510-32C
Broadcom
Trident 3
32x100G
sonic-broadcom.bin
Ragile
RA-B6920-4S
Broadcom
Tomahawk 3
128x100G
sonic-broadcom.bin
Ragile
RA-B6010-48GT4X
Centec
Centec
48x1G+4x10G
sonic-centec.bin
Ruijie
B6510-48VS8CQ
Broadcom
Trident 3
48x25G+8x100G
sonic-broadcom.bin
Tencent
TCS8400-24CC8CD
Broadcom
Trident 4
24x200G + 8*400G
sonic-broadcom.bin
Tencent
TCS9400-128CC
Broadcom
Tomahawk 4
128x200G
sonic-broadcom.bin
Wistron
sw-to3200k
Marvell
Teralynx 7
32x400G
sonic-marvell-armhf.bin
Wistron
6512-32r
Marvell
Teralynx 7
32x400G
sonic-marvell-armhf.bin
Wnc
OSW1800
Intel
Tofino
48x25G + 6x100G
sonic-barefoot.bin
硬件规格CPU和内存:根据网络需求选择合适的CPU和内存配置。对于高性能需求的环境,建议选择多核CPU和大容量内存。端口密度和类型:根据网络拓扑和流量需求选择合适的端口密度和类型(如10G、25G、40G、100G等)。存储:确保有足够的存储空间用于SONiC操作系统和日志存储。硬件供应商选择具有良好市场信誉和售后服务的供应商,确保硬件质量和及时的技术支持。硬件适配注意事项固件和驱动支持固件更新:确保交换机的固件版本与SONiC兼容,并及时更新到最新版本。驱动支持:确认SONiC是否提供所选硬件平台的驱动支持,并根据需要进行驱动的编译和安装。配置文件和编译设备配置文件:根据所选硬件平台准备合适的设备配置文件,包括端口配置、ASIC配置等。编译SONiC:根据硬件平台的具体要求,编译定制化的SONiC镜像,确保所有必要的模块和驱动都已包含在内。适配测试基础功能测试启动测试:验证SONiC能否在所选硬件平台上正常启动,并检查所有硬件组件(如CPU、内存、端口)是否被正确识别。网络连通性测试:测试基本的网络连通性,包括端口状态、链路带宽和延迟等。高级功能测试协议支持:测试SONiC对各种网络协议(如BGP、OSPF、VXLAN等)的支持和兼容性。网络功能测试:测试ACL、QoS、VLAN、LLDP等网络功能,确保它们在实际环境中的稳定性和性能。性能测试吞吐量测试:使用流量生成工具(如Ixia、Spirent)测试交换机的最大吞吐量,确保其满足设计要求。延迟和抖动测试:测试网络延迟和抖动,确保交换机在高负载下仍能提供稳定的性能。稳定性测试:进行长时间的稳定性测试,观察SONiC在不同负载下的表现,并记录任何异常情况。故障测试故障模拟:模拟常见的故障场景,如端口故障、链路中断等,测试SONiC的容错机制和故障恢复能力。日志和监控:检查日志和监控工具是否能正确记录和报告故障信息,确保快速定位和解决问题。适配SONiC到特定硬件平台涉及多个步骤,包括选择合适的硬件、注意固件和驱动支持、准备配置文件和编译SONiC镜像,以及进行全面的测试。通过上述系统的适配方案,可以确保SONiC在实际环境中的稳定运行和高性能表现。
!!!【点赞】、【关注】不走丢^_^
!!!【点赞】、【关注】不走丢^_^