您的位置  > 互联网

云计算、软件定义、开源开放的网络系统软件

SONiC(Open in the Cloud)及其关联的SAI()是微软()近年来主导的开放云网络领域的两个开源项目。

传统网络设备由于其封闭性、黑匣子、锁定性,完全无法满足云计算时代云管理平台对网络提出的开放接口、软件定义、模块化构建、快速迭代等需求。 可以说,这应该是云计算的三大技术。 网络作为基础设施之一,反过来又成为限制云计算本身发展的一座难以逾越的大山。 微软在打造公有云平台Azure的过程中,逐渐认识到了这一点,因此主导成立了SONiC/SAI开源项目。 目标是根据Azure的网络需求,重建一个基于标准Linux内核的开放网络系统软件。 为了顺应云计算、软件定义、开源的历史潮流,微软并没有让这个系统封闭、私有,而是以开放、开源、社区的模式运行; SONiC/SAI 近年来蓬勃发展。 这很大程度上是由于这个原因。

图 1:SONiC/SAI 概念

SONiC/SAI定义的开放架构中,打破了传统网络设备软硬件的封闭架构,软硬件完全解耦; 就像今天的Linux操作系统可以运行在任何第三方基于标准的设计上一样,SONiC/SAI网络软件系统也可以运行在任何符合标准的网络硬件平台上。

SONiC/SAI给整个网络行业带来的最根本的变化是:

软硬件解耦的理念和标准化的软硬件接口定义,使得原本锁在一起的网络软件系统和网络硬件平台相互脱离,快速发展;

开放的软件架构、基于容器的模块化设计以及标准的Linux内核,使得网络软件系统的开发演进到类似于应用软件开发的时代。 快速迭代、按需定制、社区共建也成为网络软件世界的趋势。 可能的;

网络软件的发展突破了传统设备供应商的封闭模式,形成了共建、共享、开放的网络新生态系统,从而快速推动了网络本身的发展。

全新的理念和开放的架构使SONiC/SAI充满活力,迅速获得云计算时代用户和厂商的青睐,成为云计算时代构建网络软件系统的首选。 为此,SONiC/SAI被定位为构建开放数据中心架构的OCP(Open,开放计算项目)吸纳,成为OCP网络组的两个子项目。

SONiC系统架构简介

SONiC基于Linux系统构建,采用键值数据库(redis)、容器技术()、标准化硬件接口定义等技术,使其成为软硬件完全解耦、软件模块松散耦合、可靠性高、易于部署扩展,开源、开放的网络软件系统。

图2:SONiC系统架构

/Azure/SONiC/raw///ges//evel.png

上图描绘了SONiC的整体架构。 看得到:

l 系统运行在用户空间

整个SONiC系统运行在Linux用户空间,只有少数模块(pmon、swss和syncd)与Linux内核交互。 这在很大程度上保证了系统的整体稳定性,Linux内核的运行不会因为上层应用程序的错误而中断。

l 以redis键值数据库为交互中心

SONiC 系统的核心是 Redis 键值数据库。 Redis为SONiC的所有软件模块构建了一个松耦合的通信载体,同时提供了数据一致性、信息复制、多进程通信等机制。

图3:以redis为中心的松耦合架构

基于redis的“/”模型,需要通信的软件模块不再需要建立全连接的复杂通信机制,彼此之间也不需要关注彼此内部的功能细节。 一个软件模块只需要向redis订阅它所关心的其他软件模块的数据即可; 当其他模块的数据发生变化并写入redis时,redis会自动通知所有订阅这些数据的软件模块进行状态更新和信息处理。

l 采用最新的容器架构

除了SONiC CLI和SONiC这两个运行在Linux系统中的软件模块外,组成SONiC系统的其他软件模块都隔离在独立的容器中。 这样的架构不仅保证了各个软件模块与系统整体的逻辑关联性,而且最大程度地降低了各个软件模块之间的耦合性。 容器架构使得各个软件模块无需关注其运行的底层平台的相关性,从而大大提高其开发独立性; 某一软件模块的稳定性不会影响系统整体的稳定性,系统的稳定性也不会受到影响。 升级可以以软件模块为单位进行,并且可以在系统运行时进行升级,不会影响底层网络流量的转发。 软件模块升级完成后,只需重启相应容器即可。

l SONiC系统中包含的容器

teamd:提供LAG功能,因使用基于Linux的开源软件teamd而得名;

pmon:提供硬件环境的监控功能,主要包括风扇的各种状态监控以及硬件平台的各种传感器的监控;

snmp:提供SNMP管理功能,内部从redis数据库获取SNMP所需的各种MIB数据,外部用于响应SNMP客户端的查询请求;

dhcp-relay:提供DHCP Relay功能,将未设置的DHCP子网的DHCP请求中继到其他子网;

lldp:提供LLDP功能,发现线路上的对端设备及其各种能力参数,提供给其他软件模块;

bgp:提供基于或FRR的路由协议。 虽然使用BGP命名,但还包括其他各种路由协议(如OSPF、IS-IS、LDP等);

:运行redis键值数据库引擎,其他应用通过UNIX访问,主要维护、、、、等几个数据库;

swss:运行状态(SwSS),负责为SONiC的各个模块维护、提供、同步交换机内部的各种状态、条目等信息;

syncd:负责同步SONiC软件系统与底层交换芯片之间的各种状态、条目等信息。 具体动作包括初始化、运行时动态配置、读取芯片信息等; 上面提到的SAI主要工作在这里,向上为SONiC系统提供统一的抽象交换芯片接口层,通过调用各个芯片厂商提供的适配接口来完成对芯片的操作;

CLI和sonic-:命令行和内部配置管理功能(需要强调的是,前面提到,这两个功能直接运行在Linux中,没有隔离到容器中)。

兴融源基于SONiC构建开放网络操作系统 l 兴融源是国内最早参与SONiC社区的公司之一

经过几年的发展,SONiC 已经成为云计算领域最具活力和前景的开源社区之一。 兴融源()创始团队核心成员来自华为、思科等知名网络公司。 他们对网络和云计算领域的技术和产品有着深入的了解。 他们在创立兴融园之前就一直积极跟踪、深度参与。 SONiC 及其社区。 作为新一代云网络提供商,兴融源自成立以来就正式加入SONiC社区,成为国内首批参与SONiC社区的云网络公司之一。

图 4:SONiC 社区成员

SONiC社区的活跃成员大致可分为以下几类:

互联网巨头/云计算公司:阿里巴巴、百度、滴滴、京东、腾讯等。

传统网络设备供应商:思科、戴尔等。

白盒网络设备供应商:、、等

新一代云网络提供商:等

网络交换芯片供应商:、、、、、、等

可以看到,SONiC社区已经形成了从最底层的芯片到最顶层的大规模用户的全面生态系统。 这个生态系统正在从硬件芯片、系统架构、系统集成、大规模应用等各个层面推动SONiC的发展和成熟。

值得注意的是,无论从数量还是规模来看,目前SONiC社区的主要成员都是近年来爆发的互联网/云计算巨头公司。 这背后的根本原因是:这些公司本身的业务都依赖于云计算,或者正在向云计算转型。 当他们搭建云计算平台,对内支撑自己的业务,对外进行运营时,他们最先发现了传统网络对云计算的局限性; 与普通企业用户不同,是的,这些公司拥有强大的技术能力,因此他们直接绕过传统的网络设备供应商,根据自己的需求和期望改造网络,甚至进行自研; 自然地,当SONiC社区诞生并发展壮大时,这些公司就成为了社区的主力军; 尤其值得关注的是,一手促成SONiC诞生和社区蓬勃发展的龙头公司几十年来似乎一直站在开源和开放的对立面。

另一方面,那些对云计算、云网络有着同样强烈需求的传统企业用户,由于不具备与互联网/云计算企业类似的技术能力,仍被锁定在传统网络技术体系中,无法享受新的开源和开放技术。 第一代云网络技术给产业发展带来的红利。

l ——以SONiC为核心的开放式网络操作系统

兴荣致力于为云计算时代的用户提供新一代云网络解决方案。 为了提供完全开放、高性能、业务可视的云网络解决方案,兴荣构建了以SONiC为核心的新一代网络操作系统。

图5:整体架构

基于标准Linux内核和SONiC/SAI构建; 基于SONiC提供的标准功能,兴荣开发了以下增强功能:

VLAG、BGP EVPN、REST API等原生SONiC目前没有的功能,提高系统整体可用性;

通过REST API开放所有网络能力,让系统集中管理并由第三方云管理平台自动调用;

提供基于REST API的Web UI,允许用户通过图形界面操作和管理云网络;

应用编排、业务调度、资源管理、策略管理等运维和运营增强功能使系统支持统一业务规划和云管理平台自动部署;

集成支持功能,例如

开放标准的容器环境支持第三方应用直接在网络系统中运行。

另外值得一提的是,兴荣还为以下领域提供可编程硬件平台和统一控制器:

基于可编程交换芯片的高性能硬件平台

兴荣紧跟网络领域最先进的技术发展趋势,以可编程交换芯片为核心构建高性能硬件平台,让用户需求在硬件转发层面得到快速响应,从而实现网络的快速迭代。云不再受 18-24 个月 ASIC 开发周期的限制。

统一控制器(AFC)

AFC是兴荣云网的统一控制器。 通过调用开放的原子级REST API,完成云网络的集中管理、业务部署和自动调度。 它还向云管理平台提供业务级REST API,以整合网络的复杂性。 操作过程被封装成简单的软件调用。

、AFC与高性能可编程硬件平台共同为云计算提供了新一代SDN云网络解决方案:

图6:兴荣云网络解决方案整体架构

兴荣源积极回馈SONiC社区

星荣秉承开源、开放的精神,积极为SONiC开源社区做出贡献。 截至2020年4月,兴荣已向社区贡献了多个Bug修复,其中21个已通过社区审核并合并到主线版本中。 这21个Bug修复的详细信息如下:

20个用于SONiC系统,分布在路由协议(FRR、-fpm-frr、)、应用模块(dhcp-relay、、lldp)、VXLAN隧道()、ACL模块()、安全防护(、)、服务质量保证( )、系统及配置管理(sonic-sfp、、)、系统仿真()等模块。 详细信息请参见:

/?p=1&q=org%+&type=

1.为SAI适配层(),具体请参见:

//SAI/?q=&type=

除了上述的Bug修复之外,兴荣目前还计划向SONiC社区贡献一些自主研发的增强功能,帮助社区进一步提高SONiC的可用性和易用性,共同推动开放式的应用和部署。为企业用户提供源云网络。

l 兴荣源帮助企业用户使用SONiC

针对企业用户在使用和部署SONiC以及基于SONiC进行二次开发过程中遇到的一些困难,兴荣从以下几个方面采取了行动,帮助企业用户顺利使用SONiC。

构建本地Git存储库

由于种种原因,很多企业用户下载和编译SONiC源码的过程并不顺利。 他们经常会遇到无法连接、下载速度慢、然后编译失败等问题。 针对此类问题,兴荣为企业用户在云端搭建了本地Git代码仓库,并定期自动在源服务器上克隆相关内容,提供本地镜像。 需要的时候,只需要连接到这个本地Git代码仓库即可。 就是这样,不需要连接到源服务器。

提供技术咨询服务

针对企业的生产环境,兴荣编制了全面的测试用例,在基于各种交换芯片的硬件平台上对SONiC系统中的各个软件模块进行了详细的功能、集成、性能、压力测试,并将测试过程放入发现的问题中系统中将予以修正并反馈给社区; 随着新功能和特性的开发和发布,兴荣将继续以这种方式工作。 在这个过程中,兴荣积累了对SONiC系统的深入了解,能够提供全方位的SONiC技术咨询服务,帮助企业用户清晰明了地使用SONiC。

提供一站式SONiC解决方案

对于想要使用原生SONiC的企业用户,兴荣可以提供全面的技术和咨询服务,帮助用户在选定的硬件平台上快速完成开源和开放云网络系统的搭建和部署; 对于想要使用一站式解决方案的用户,兴荣可以提供基于可编程交换硬件平台、AFC、简单易用的操作界面、全套手册以及完善的支持,帮助用户轻松享受新一代云。 网络技术给IT系统带来了速度和便利。

功能和特性定制开发

经过三年的发展,兴荣目前拥有近60名具有SONiC经验的开发/测试工程师,其中不乏具有架构能力的技术专家,且规模还在不断扩大。 因此,针对客户对网络的特殊功能需求,兴荣可以提供定制开发服务。 基于对SONiC系统的全面了解和高性能可编程交换硬件平台,兴荣可以将客户需求的等待时间从18-24天减少。 一个月缩短为2-4周。

综上所述

l 云计算的快速发展对云网络提出了新的要求。 传统的网络架构和技术无法满足这些要求,SONiC应运而生;

l SONiC是一个运行在标准Linux上的开源、开放的网络软件系统。 SAI适配层屏蔽SONiC系统不受各种底层硬件差异的影响;

l SONiC系统采用redis键值数据库作为中心枢纽,最大限度地减少各个模块之间的耦合,并采用容器架构隔离各个软件模块,从而大大提高了系统的开放性和可靠性;

l 作为国内最早参与SONiC社区的公司之一,兴融源积极跟进,深入研究,全面测试SONiC系统,开发出以SONiC为核心的新一代云网络,包括AFC和可编程交换硬件平台。 解决方案;

l 兴融源致力于为企业用户提供技术咨询、一站式部署等服务,帮助企业用户享受互联网、开源、开放网络带来的技术红利。

参考

1.SONiC官网:azure..io/SONiC/

2.Azure SONiC@:/Azure/SONiC

3.OCP SAI@://SAI

4.SONiC系统架构:/Azure/SONiC/wiki/

5.OCP官网:/

6.SONiC@OCP://sonic-sub-

7.SAI@OCP://sai-sub-