开源网络操作系统-SONiC

龅牙兔谈科技 2024-05-13 02:46:15

SONiC(Software for Open Networking in the Cloud)是由微软于2016年发起的开源网络操作系统项目,最初目的是满足微软 Azure 数据中心网络的特殊需求。

SONiC 旨在提供一个灵活且可扩展的网络操作系统,以满足云计算的快速发展和数据中心网络架构的转变等现代数据中心的需求。

GitHub开源地址:https://github.com/sonic-net/SONiC

官网链接:https://sonicfoundation.dev

推动因素云计算的发展:随着云计算的快速普及,数据中心规模不断扩大,网络架构变得更加复杂,需要能够灵活扩展、支持自动化并具有较高可用性的网络操作系统。数据中心网络的开放:为应对不同硬件和软件供应商的需求,数据中心网络开始走向开放,硬件与软件的解耦成为关键目标。网络操作系统需要具备兼容不同硬件平台的能力。微软 Azure 数据中心:微软 Azure 作为一个大型云计算平台,需要管理和优化其数据中心网络以提供稳定、高效的服务。传统的网络设备和操作系统无法满足他们的需求。开放网络社区的合作:在开放网络的发展过程中,各大技术公司和网络设备厂商形成了广泛的合作,推动了开源网络操作系统的发展。发展历程2016 年发布:微软在 2016 年的 Open Compute Project(OCP)峰会上首次发布了 SONiC。它成为第一个支持在多个硬件供应商的交换机上运行的网络操作系统。开放的模块化架构:SONiC 采用模块化设计,基于 SAI(交换机抽象接口)与不同硬件解耦,使其能够适应各种交换机芯片和硬件平台。社区与生态系统:微软将 SONiC 贡献给开源社区,并在 GitHub 上公开了代码。SONiC 社区得到了思科、Broadcom、英特尔、Mellanox、阿里巴巴、谷歌等公司的支持,形成了一个活跃的生态系统。最终目标提供一个开放的、可扩展的网络操作系统平台,满足现代数据中心网络的需求。通过 SAI 接口支持不同的硬件供应商,实现软件和硬件的解耦。支持多种网络协议和高级网络功能,适用于各种规模和类型的数据中心。功能特点开源与开放性:SONiC 是一个完全开源的项目,由社区维护和开发,支持灵活的硬件平台,可以运行在各种网络交换机和设备上。模块化设计:采用模块化架构,允许用户根据实际需求选择和替换特定功能模块。硬件抽象:使用 SAI(Switch Abstraction Interface,交换机抽象接口)将硬件和软件隔离,使网络操作系统可以在不同的硬件平台上运行。多厂商支持:支持多种硬件供应商的设备,可以在 Broadcom、Mellanox、Barefoot 等芯片上运行。数据中心功能:提供数据中心级别的网络功能,包括 BGP 路由、VXLAN、ACL(访问控制列表)等。高可用性:支持热补丁和快速故障转移,确保网络的高可用性和稳定性。灵活的网络管理:提供丰富的 CLI(命令行界面)和 API,方便集成到现有的网络管理和自动化系统中。社区支持:由多个大型技术公司(如微软、阿里巴巴、谷歌等)支持,并在 GitHub 上由社区积极维护和开发。适用场景大型数据中心:可用于企业和云计算提供商的数据中心,管理大规模的网络基础设施。云网络服务:支持混合云或多云架构中的网络服务,适合构建弹性和可扩展的网络。边缘计算:可以在边缘设备或边缘计算节点上部署,提供灵活的网络连接。网络自动化与定制:网络设备制造商或企业可以定制和扩展 SONiC,以满足特定的业务需求或网络架构。硬件适配

SONiC 目前支持的芯片厂商

芯片供应商

支持的系列/型号

Broadcom

Trident 系列、Tomahawk 系列、Jericho 系列

Mellanox/NVIDIA

Spectrum-1、Spectrum-2

Barefoot Networks/Intel

Tofino 系列

Marvell

Prestera 系列

SONiC 目前支持的硬件厂商

硬件厂商

支持的交换机型号/系列

Dell EMC

Z9100-ON、Z9264F-ON、S5248F-ON、S5232F-ON

Arista Networks

7050X、7060X 系列

Cisco Systems

NCS5500 系列、Nexus 9300 系列

Mellanox/NVIDIA

SN2700、SN3700、SN4600C

Edgecore Networks

AS7312-54XS、AS5812-54X、AS7712-32X

Celestica

Seastone2、D50C Switch

Inventec

D7032Q28B、D10056 Switch

部署安装

官网安装指导手册https://github.com/sonic-net/SONiC/blob/master/doc/SONiC-User-Manual.md#111-installation-using-a-usb-thumb-drive

步骤

说明

1. 确认硬件和系统要求

确保交换机或路由器硬件支持 SONiC,并配备足够的内存和存储空间。

2. 下载 SONiC 镜像

从官方 GitHub 仓库下载或自行构建适合硬件的平台镜像。

https://github.com/sonic-net/SONiC/blob/sonic_image_md_update/supported_devices_platforms.md

3. 准备安装镜像

使用 TFTP 或 USB 设备准备镜像文件,并确保交换机能访问它们。

4. 进入安装模式

连接控制台,按照硬件手册进入交换机的引导或安装模式。

5. 安装 SONiC 镜像

在引导模式下通过 TFTP 或 USB 加载和安装 SONiC 镜像。

6. 启动并配置 SONiC

重启交换机,登录 SONiC 操作系统,进行基础网络配置。

7. 配置网络功能

使用 SONiC CLI 或配置文件,设置 VLAN、BGP、QoS 等功能。

8. 验证和测试

使用 ping、traceroute 等工具验证配置并测试网络功能。

9. 维护与监控

定期检查系统状态、日志,并使用监控工具监测网络性能。

GNU GRUB version 2.02~beta2+e4a1fe391+----------------------------------------------------------------------------+|*ONIE: Install OS <----- Select this one || ONIE: Rescue || ONIE: Uninstall OS || ONIE: Update ONIE || ONIE: Embed ONIE |+----------------------------------------------------------------------------+Use the ^ and v keys to select which entry is highlighted.Press enter to boot the selected OS, `e' to edit the commandsbefore booting or `c' for a command-line.ONIE:/ # ifconfig eth0 192.168.0.2 netmask 255.255.255.0ONIE:/ # ip route add default via 192.168.0.1ONIE:/ # onie-nos-install http://192.168.2.10/sonic-broadcom.binGNU GRUB version 2.02~beta2+e4a1fe391+----------------------------------------------------------------------------+|*SONiC-OS-7069cef || ONIE |+----------------------------------------------------------------------------+使用At Console:Debian GNU/Linux 9 sonic ttyS1sonic login: adminPassword: YourPaSsWoRdSSH from any remote server to sonic can be done by connecting to SONiC IPuser@debug:~$ ssh admin@sonic_ip_address(or SONIC DNS Name)admin@sonic's password:You are on____ ___ _ _ _ ____/ ___| / _ \| \ | (_)/ ___|\___ \| | | | \| | | |___) | |_| | |\ | | |___|____/ \___/|_| \_|_|\____|-- Software for Open Networking In the Cloud --Unauthorized access and/or use are prohibited.All access and/or use are subject to monitoring.admin@sonic:~$admin@sonic:~$ show versionSONiC Software Version: SONiC.HEAD.32-21ea29aDistribution: Debian 9.8Kernel: 4.9.0-8-amd64Build commit: 21ea29aBuild date: Fri Mar 22 01:55:48 UTC 2019Built by: johnar@jenkins-worker-4Docker images:REPOSITORY TAG IMAGE ID SIZEdocker-syncd-brcm HEAD.32-21ea29a 434240daff6e 362MBdocker-syncd-brcm latest 434240daff6e 362MBdocker-orchagent-brcm HEAD.32-21ea29a e4f9c4631025 287MBdocker-orchagent-brcm latest e4f9c4631025 287MBdocker-lldp-sv2 HEAD.32-21ea29a 9681bbfea3ac 275MBdocker-lldp-sv2 latest 9681bbfea3ac 275MBdocker-dhcp-relay HEAD.32-21ea29a 2db34c7bc6f4 257MBdocker-dhcp-relay latest 2db34c7bc6f4 257MBdocker-database HEAD.32-21ea29a badc6fc84cdb 256MBdocker-database latest badc6fc84cdb 256MBdocker-snmp-sv2 HEAD.32-21ea29a e2776e2a30b7 295MBdocker-snmp-sv2 latest e2776e2a30b7 295MBdocker-teamd HEAD.32-21ea29a caf957cd2ad1 275MBdocker-teamd latest caf957cd2ad1 275MBdocker-router-advertiser HEAD.32-21ea29a b1a62023958c 255MBdocker-router-advertiser latest b1a62023958c 255MBdocker-platform-monitor HEAD.32-21ea29a 40b40a4b2164 287MBdocker-platform-monitor latest 40b40a4b2164 287MBdocker-fpm-quagga HEAD.32-21ea29a 546036fe6838 282MBdocker-fpm-quagga latest 546036fe6838 282MB

!!!【点赞】、【关注】不走丢^_^

!!!【点赞】、【关注】不走丢^_^



0 阅读:0

龅牙兔谈科技

简介:感谢大家的关注