在当今由人工智能和高性能计算驱动的世界中,网络性能至关重要。各种规模的企业都依赖强大且可扩展的网络来支持从电子商务平台到创意服务的关键业务应用程序。
在传统交换机的架构下,网络操作系统由各设备厂商基于芯片厂商提供的ASIC芯片及配套SDK(软件开发包)自行设计、开发(但不开放底层细节)。设备厂商需要开发上层APP、适配层以在特定设备上完成应用,实现各种网络功能。
传统交换机的软硬件开发均由设备厂商提供,锁定在特定芯片的生态中,系统完全封闭,如同“戴着镣铐跳舞”。已经无法适应新功能快速开发部署的需求。
为构建一个开放的系统,OCP(Open Compute Project, 开发计算项目)开始推动硬件、网络操作系统开源与标准化进程。SONiC(Software for Open Networking in the Cloud)的诞生是云计算巨头与封闭网络设备生态博弈的必然结果,其起源可追溯至微软 Azure 应对超大规模数据中心网络挑战的“自救行动”。
“将网络操作系统拆分为容器化微服务,并通过开放接口解耦硬件”Azure 网络架构师 Dave Maltz
2017年3月正式开源 SONiC/SAI,并贡献给OCP的项目,作为OCP网络组的两个子项目。其核心代码托管 GitHub(Azure/SONiC / OpenComputeProject/SAI)
SONiC的所有软件功能模块都开源,这极大地推动了OCP社区以及其他厂商/用户在开放网络方面的创新。
SONiC通过将SAI作为南北向互联的中间件,屏蔽不同ASIC之间的驱动差异,也正是由于SAI的存在,SONiC的网络功能应用才能够支持多个厂家的ASIC。网络软件建立在SAI(交换机抽象接口,SAI接口适配ASIC的工作由各个厂家实现)上,使其可以运行在各种硬件设备中,形成白盒交换机软件生态链。
我们需要知道,SONiC是成长最快的开源网络操作系统,运作在不同厂商的硬件芯片上,使网络运营商能构建和运营自己高效的网络。
SONiC构建在Linux系统之上,并且利用键值数据库(redis)、容器技术(docker)、标准化硬件接口定义等技术,使其成为一个软硬件彻底解耦、软件模块松耦合(loose coupling)、高可靠、易于扩展、开源开放的网络软件系统。其架构特点主要体现以下几个方面:
作为国内第一批SONiC社区成员,围绕开放网络技术进行了长期、持续的投入,并结合各种典型应用场景做了足够的测试验证和缺陷修复,所提供的SONiC企业级发行版AsterNOS目前已可稳定兼容几乎所有主流商业交换芯片,构建的一系列有特色的硬件平台,能够实现从数据中心到云化园区的跨场景使用。
截至2022年底,AsterNOS已针对社区原生版本的缺陷和不足完成了大量开发工作,并切实提升了软件的可靠性和易用性,这其中就包含了VXLAN、ARP Host Routing、BGP EVPN、VLAG、Monitor-link、STP/MSTP等网络功能补充和增强,以及对思科风格的CLI的支持。
为了更加充分地发挥开源开放的力量,AsterNOS还在SONiC云原生的架构之上提供了强大的SDK能力——用户可通过丰富的API(RESTful API和系统级API)在网络设备上简单快速地开发第三方APP,以及与各种开源运维工具/平台无缝集成。
主要提供 L2/L3/VXLAN/Routing/EVPN 等云数据中心所需的各种功能,以及对智算等场景的RoCE、智能路由等特性的增强支持(未来也将主要基于此版本平滑支持下一代以太网协议,例如超以太网)。
将SONiC的核心原则——开放性、易用性和灵活性引入园区。提供VXLAN 和 BGP-EVPN 虚拟化,实现灵活的逻辑网络编排;选定型号上采用 MPLS,可实现运营商级场景的无缝 WAN 集成;部分型号采用 PTP(精确时间协议),为关键应用提供高精度时间同步的网络。
从数据中心场景到园区网络,这不仅仅是“更换操作系统”,而是一次深度集成和系统级重构。我们针对资源受限的硬件平台(甚至是 1G 端口的接入交换机)移植并优化了SONiC,并围绕其他开放网络技术(例如OpenWiFi/OLS)提供端到端的新一代云化园区网整体解决方案。
从硬件角度来看,业界已有很多强大的基础平台如各类 DPU 网卡、高性能服务器或虚拟化主机;在软件方面,VPP等数据平面解决方案也已经显著成熟,两者共同为构建开放路由平台奠定了坚实的基础。
然而,SONiC 仍难以在这些新平台上提供完整的路由功能——市场上明显缺乏一种能够真正取代昂贵的封闭式黑盒路由器的商用级、成熟且用户友好的开放式路由解决方案。
AsteNOS-VPP 则是目前我们围绕SONiC的最新实践。具体而言是将 SAI 接口集成到 VPP 上,使基于 SONiC 的 AsterNOS 能够从交换机 ASIC 平台扩展到具有完整路由功能的 DPU 和服务器平台。
参考文献
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。