专栏
天翼云开发者社区

SONiC系统简介

2023-06-05 10:54:03 923阅读

SONiC系统诞生背景

       传统交换机上运行的都是厂商私有的系统,对用户不可见,比如华为的VRP、华三的COMWARE,这些系统代码未开源, 设备出厂时直接固化到存储器件里。我们称这种交换机为黑盒交换机,使用黑盒交换机对于用户来说存在以下几个问题:

  • 代码闭源, 用户无法基于该系统开发适配新的功能,不灵活,不方便扩展;
  • 系统封闭,用户无法看到系统内部运行机制,也就无从保证系统的安全性;
  • 发布周期长,厂商支持新特性或新产品,发布版本时间往往要以月或者是年来计,无法满足互联网和云客户对于网络特性快速支持的需求;
  • 运维成本高, 不同厂商的交换机提供的维护管理方式存在差异, 比如命令行风格不同, 私有协议不兼容,导致客户需要同时适配维护多套管理系统,难度大,成本高;

       由于以上问题的存在, 自研交换机的需求呼声越来越高。自研交换机的代码是自己内部开发维护,完全透明, 可灵活定制开发网络架构需要的特性功能;开发周期自行把控,可同网络架构迭代并行开展;同一套系统适配不同厂家的交换机硬件, 很好的屏蔽了厂家之间的差异,向运维人员提供统一的管理接口,一次适配,一劳永逸,极大降低了运维难度,节省成本。

       自研交换机优势很明显,各大互联网厂商很早就开始了自研交换机的开发工作。他们希望传统交换机厂商能够提供白盒交换机硬件,上面运行互联网公司自己开发的系统。那么关键的问题就是该选择什么样的系统。 对于系统的要求,一是支持的特性多,可灵活裁剪和扩展,二是问题少。最好的方式是推动交换机厂商的代码开源。互联网公司也确实抱着这种想法和厂商进行了一翻沟通,最后空手而回。厂商不会把自己吃饭的东西白白贡献出来。 交换机厂商的代码拿不到,互联网公司只好尝试使用现有的开源网络系统,或者购买一些小公司开发的私有交换机系统来进行自研交换机的开发,最后都因为系统的各种弊端和问题无法做到大批量使用。  

       直到2016年,微软开源SONiC(Software for Open Networking in the Cloud,云开放网络软件)系统,自研交换机才得以大批量上线使用。

       SONiC系统是微软为了支持内部云网络的发展,召集一众研发专家开发的网络操作系统。该系统软件架构简洁,方便定制开发,集成了大量优秀的网络特性。经过微软云网络大量使用和检验后,向社区开源。SONiC系统开源后,得到业界的一致认可,在大量开发者不断贡献和完善下,已成为自研交换机的主流操作系统。目前国内已有十万台以上的交换机运行着SONiC系统。 

 

SONiC系统架构简介

        SONiC以Linux系统为底座,采用容器、redis数据库和SAI三项关键技术进行开发。容器技术的使用使得SONiC系统可以快速将优秀的开源特性部署到自己的系统里。 应用软件直接通过redis数据库进行交互,极大减少了软件之间的耦合。SAI(Switch Abstraction Interface)接口是用于与硬件交互的接口。SAI接口定义了硬件平台必须实现的功能,使得软件能够与硬件无缝衔接。各厂商的硬件只要适配了SAI接口, 即可被SONiC系统使用,做到了一套软件快速兼容多个硬件平台。  

 

        SONiC系统软件架构框如图1所示,图中,dhcp_relay,pmon,snmp,lldp等网络特性均已docker方式运行在系统上,应用软件通过redis-server进行数据交换。对于需要下发到交换机转发芯片的数据, syncd docker从数据库获取到后,调用sai接口,下发到交换芯片。

 

                  图1

 

      SONiC系统路由转发表学习和下发交换机转发芯片流程举例, 如图2:

  1.   内核上送路由学习报文,bgpd获取报文后,学习路由信息。 
  2.   bgpd将学习到的路由信息通过zebra生成fib转发表。
  3.   zebra将路由转发表下发内核,用于指导内核的路由转发。 
  4.   zebra将路由信息发给fpmsyncd。
  5.   fpmsyncd整理路由信息并写入redis数据库(APPL_DB实例中)。 
  6.   orchagent订阅redis数据库中APPL_DB路由信息并进行处理。
  7.   orchagent将路由信息整理成SAI格式,写入ASIC_DB。
  8.   syncd订阅ASIC_DB,获取路由表信息。
  9.   syncd调用sai接口将路由表信息传递到芯片的驱动软件进行处理。 
  10.   驱动软件将路由表信息写入交换机芯片后, 芯片便可以指导硬件进行路由转发。 

图2

 

SONiC自研交换机的意义

       随着云计算业务蓬勃发展,数据中心规模呈现爆发式增长, 这对云底座网络的要求也越来越高, 高可靠、高可用、可编程、可运维、可视化的数据中心网络是云业务快速迭代发展的的基本保障。而传统商用交换机繁杂冗余的特性累积、漫长的版本发布速度、低效的运维保障、技术私有、高昂的价格已经跟不上云网络的发展要求。

       自研交换机使用开源开放式的SONiC网络操作系统,软硬件可自主定制研发,技术自研透明,快速的版本迭代,与公司云网络无缝衔接,快速支持网络需要的新特性,统一运管平台,公司内部技术人员参与运维,网络问题高效解决,必将成为未来支撑云网络底座的重要产品。

       自研交换机的优势如下:

  • 软件自研,积累公司网络技术栈。
  • 快速开发支持满足云网络架构需求的交换机产品,快速占领技术高地,及早享受高性能芯片带来的技术红利。 形成自有网络架构演进方案,摆脱厂商束缚,降低网络成本。
  • 向下屏蔽厂家和芯片的差异,统一运管平台,不同型号不同转发芯片的交换机对运维人员体现相同的接口,免去频繁适配各家交换机的重复工作,节约运管成本。
  • 针对云网络建设部署和运维流程中的一些卡点问题,开发适配相应特性功能, 从而实现自动化部署建设,智能化的运维管理。
  • 自研交换机软件平台稳定成熟后, 可以整合硬件, 选择合适的芯片,从而降低单机成本。 

 

  • 0
  • 0
  • 0
0 评论
0/1000
评论(0) 发表评论
h****n

h****n

2 篇文章 0 粉丝
关注

SONiC系统简介

2023-06-05 10:54:03 923阅读

SONiC系统诞生背景

       传统交换机上运行的都是厂商私有的系统,对用户不可见,比如华为的VRP、华三的COMWARE,这些系统代码未开源, 设备出厂时直接固化到存储器件里。我们称这种交换机为黑盒交换机,使用黑盒交换机对于用户来说存在以下几个问题:

  • 代码闭源, 用户无法基于该系统开发适配新的功能,不灵活,不方便扩展;
  • 系统封闭,用户无法看到系统内部运行机制,也就无从保证系统的安全性;
  • 发布周期长,厂商支持新特性或新产品,发布版本时间往往要以月或者是年来计,无法满足互联网和云客户对于网络特性快速支持的需求;
  • 运维成本高, 不同厂商的交换机提供的维护管理方式存在差异, 比如命令行风格不同, 私有协议不兼容,导致客户需要同时适配维护多套管理系统,难度大,成本高;

       由于以上问题的存在, 自研交换机的需求呼声越来越高。自研交换机的代码是自己内部开发维护,完全透明, 可灵活定制开发网络架构需要的特性功能;开发周期自行把控,可同网络架构迭代并行开展;同一套系统适配不同厂家的交换机硬件, 很好的屏蔽了厂家之间的差异,向运维人员提供统一的管理接口,一次适配,一劳永逸,极大降低了运维难度,节省成本。

       自研交换机优势很明显,各大互联网厂商很早就开始了自研交换机的开发工作。他们希望传统交换机厂商能够提供白盒交换机硬件,上面运行互联网公司自己开发的系统。那么关键的问题就是该选择什么样的系统。 对于系统的要求,一是支持的特性多,可灵活裁剪和扩展,二是问题少。最好的方式是推动交换机厂商的代码开源。互联网公司也确实抱着这种想法和厂商进行了一翻沟通,最后空手而回。厂商不会把自己吃饭的东西白白贡献出来。 交换机厂商的代码拿不到,互联网公司只好尝试使用现有的开源网络系统,或者购买一些小公司开发的私有交换机系统来进行自研交换机的开发,最后都因为系统的各种弊端和问题无法做到大批量使用。  

       直到2016年,微软开源SONiC(Software for Open Networking in the Cloud,云开放网络软件)系统,自研交换机才得以大批量上线使用。

       SONiC系统是微软为了支持内部云网络的发展,召集一众研发专家开发的网络操作系统。该系统软件架构简洁,方便定制开发,集成了大量优秀的网络特性。经过微软云网络大量使用和检验后,向社区开源。SONiC系统开源后,得到业界的一致认可,在大量开发者不断贡献和完善下,已成为自研交换机的主流操作系统。目前国内已有十万台以上的交换机运行着SONiC系统。 

 

SONiC系统架构简介

        SONiC以Linux系统为底座,采用容器、redis数据库和SAI三项关键技术进行开发。容器技术的使用使得SONiC系统可以快速将优秀的开源特性部署到自己的系统里。 应用软件直接通过redis数据库进行交互,极大减少了软件之间的耦合。SAI(Switch Abstraction Interface)接口是用于与硬件交互的接口。SAI接口定义了硬件平台必须实现的功能,使得软件能够与硬件无缝衔接。各厂商的硬件只要适配了SAI接口, 即可被SONiC系统使用,做到了一套软件快速兼容多个硬件平台。  

 

        SONiC系统软件架构框如图1所示,图中,dhcp_relay,pmon,snmp,lldp等网络特性均已docker方式运行在系统上,应用软件通过redis-server进行数据交换。对于需要下发到交换机转发芯片的数据, syncd docker从数据库获取到后,调用sai接口,下发到交换芯片。

 

                  图1

 

      SONiC系统路由转发表学习和下发交换机转发芯片流程举例, 如图2:

  1.   内核上送路由学习报文,bgpd获取报文后,学习路由信息。 
  2.   bgpd将学习到的路由信息通过zebra生成fib转发表。
  3.   zebra将路由转发表下发内核,用于指导内核的路由转发。 
  4.   zebra将路由信息发给fpmsyncd。
  5.   fpmsyncd整理路由信息并写入redis数据库(APPL_DB实例中)。 
  6.   orchagent订阅redis数据库中APPL_DB路由信息并进行处理。
  7.   orchagent将路由信息整理成SAI格式,写入ASIC_DB。
  8.   syncd订阅ASIC_DB,获取路由表信息。
  9.   syncd调用sai接口将路由表信息传递到芯片的驱动软件进行处理。 
  10.   驱动软件将路由表信息写入交换机芯片后, 芯片便可以指导硬件进行路由转发。 

图2

 

SONiC自研交换机的意义

       随着云计算业务蓬勃发展,数据中心规模呈现爆发式增长, 这对云底座网络的要求也越来越高, 高可靠、高可用、可编程、可运维、可视化的数据中心网络是云业务快速迭代发展的的基本保障。而传统商用交换机繁杂冗余的特性累积、漫长的版本发布速度、低效的运维保障、技术私有、高昂的价格已经跟不上云网络的发展要求。

       自研交换机使用开源开放式的SONiC网络操作系统,软硬件可自主定制研发,技术自研透明,快速的版本迭代,与公司云网络无缝衔接,快速支持网络需要的新特性,统一运管平台,公司内部技术人员参与运维,网络问题高效解决,必将成为未来支撑云网络底座的重要产品。

       自研交换机的优势如下:

  • 软件自研,积累公司网络技术栈。
  • 快速开发支持满足云网络架构需求的交换机产品,快速占领技术高地,及早享受高性能芯片带来的技术红利。 形成自有网络架构演进方案,摆脱厂商束缚,降低网络成本。
  • 向下屏蔽厂家和芯片的差异,统一运管平台,不同型号不同转发芯片的交换机对运维人员体现相同的接口,免去频繁适配各家交换机的重复工作,节约运管成本。
  • 针对云网络建设部署和运维流程中的一些卡点问题,开发适配相应特性功能, 从而实现自动化部署建设,智能化的运维管理。
  • 自研交换机软件平台稳定成熟后, 可以整合硬件, 选择合适的芯片,从而降低单机成本。 

 

文章来自专栏

自研交换机

2 篇文章 1 订阅
0 评论
0/1000
评论(0) 发表评论
  • 0
    点赞
  • 0
    收藏
  • 0
    评论