新一代开源网络操作系统SONiC 之二

2. SONIC

有了 SAI, 这让网络操作系统不再关心底层怎么与专有硬件通信,操作系统厂商可以专注于网络操作系统的开发,其中以 SONIC 最为突出,他是 Microsoft/Azure 网络操作系统,由微软和多家厂商一起开发,并且开源。

2.1. 什么是SONIC?

SONiC 是一个基于 Linux 的开源网络操作系统,运行在多个供应商和 ASICs 的交换机上。SONiC 提供一整套网络功能,如 BGP 和 RDMA,这些功能在一些最大的云服务提供商的数据中心经过生产验证。它为团队提供了创建所需网络解决方案的灵活性,同时利用大型生态系统和社区的集体力量。

2.2. SONIC 系统架构[13]

SONIC 系统的体系结构由各种模块组成,这些模块通过一个集中的、可伸缩的基础设施彼此交互。这个基础结构依赖于 redis-database 引擎的使用: 键值数据库提供独立于语言的接口、数据持久性、复制和所有声音子系统之间的多进程通信的方法。

SONIC 通过依赖 redis-engine 基础结构提供的发布者/订阅者消息传递范式,应用程序可以只订阅它们所需的数据视图,并避免与其功能无关的实现细节。

SONIC 将每个模块放在独立的docker容器中,以保持语义仿射组件之间的高内聚性,同时减少脱节组件之间的耦合。每个组件都被编写为完全独立于平台特定的细节,而这些细节是与低层抽象交互所必需的。

SONIC 将其主要功能组件分解为以下 docker 容器:

  • Dhcp-relay
  • Pmon
  • Snmp
  • Lldp
  • Bgp
  • Teamd
  • Database
  • Swss
  • Syncd

2.3. SONIC 的功能发展

我们来看一下 SONIC 的功能发展 (来源于 SONIC 官网) [14]

Release Release Date SAI version Features Included
SONiC.201705 5/15/2017 0.9.4 BGP
ECMP
LAG
LLDP
QoS – ECN
QoS – RDMA
Priority Flow Control
WRED
COS
SNMP
Syslog
Sysdump
NTP
COPP
DHCP Relay Agent
SONiC to SONiC upgrade
Multiple Images support
One Image
SONiC.201709 9/15/2017 0.9.4 VLAN
ACL permit/deny
IPv6
Tunnel Decap
Mirroring
Post Speed Setting
BGP Graceful restart helper
BGP MP
SONiC.201712 12/15/2017 1 Fast Reload
SONiC Support SAI 1.0
TACACS+
LACP Fallback
MTU Setting
Vlan Trunk
Static Port breakout1
Dynamic ACL Upgrade
SWSS Unit Test Framework
CobfigDB framework
SONiC.201803 3/15/2018 1.2
Critical Resource Monitoring
MAC Aging
IPv6 ACL
BGP/Neighbor-down fib-accelerate
PFC WD
SONiC.201807 7/30/2018 1.3
gRPC
Dtel support
SONiC Architecture and User Manual (Documentation)
Sensor transceiver monitoring
LLDP extended MIB: lldpremtable, lldplocporttable, lldpremmanaddrtable, lldplocmanaddrtable, lldplocporttable, lldpLocalSystemData
SONiC.201811 11/30/2018 1.3 Release Note
Debian Kernel Upgrade to 4.9
Warm Reboot
Incremental Config (IP, LAG, Port shut/unshut)
Asymmetric PFC
PFC Watermark
Routing Stack Graceful Restart
Basic VRF and L3 VXLAN
SONiC.201904 4/30/2019 1.4 Release Note
FRR as default routing stack
Upgrade each docker to stretch version
Upgrade docker engine to 18.09
Everflow enhancement
Egress ACL bug fix and ACL CLI enhancement
L3 RIF counter support
PMon Refactoring
BGP-EVPN support(type 5), (related HLD Fpmsyncd,Vxlanmgr,template)
Transceiver parameter tuning PR pending on CR sign off
SONiC.201910 10/30/2019 1.5 Progress Tracking
ZTP – design review in progress
BFD – SW – 100ms interval from FRR
NAT
STP/PVST
Mgmt VRF
Multi-DB optimization
Test to Pytest
sFlow
Management Framework (Tentative )
Platform Driver Development Framework
Build Improvements
Error handling enhancements
L2 functional and performance enhancements
L3 perf enhancement
BroadView BST
VRF
Configuration Validation
Dynamic Break Out
Platform APIs move to new APIs *
Sub-port support
Backlog
CLI framework
VRF (Taken)
L3 MLAG (Taken)
EVPN
RDMA CLI enhancement
Virtual path for streaming telemetry (pushed off)
Management VRF (pushed off)
Port and Vlan configuration and validation (TBD)

3. 结束语

今天我们先聊这些,我们大致了解一下开放型网络包含的几个重要组件,开源软件的概念,开源的网络操作系统的概念,开放的计算硬件有何而来,软件定义网络的概念,但是开放型网络中还包含以下组件:

  • 网络功能虚拟化
  • 云计算
  • 自动化
  • 敏捷型开发方法和处理过程

SONIC 作为网络操作系统在其中扮演很重要的角色,如果想进一步了解 SONIC 子系统的各个功能以及逻辑,网络功能虚拟化,云计算,网络自动化,以及敏捷型开发方法和处理过程,请关注我们。

参考文献:
[1] https://en.wikipedia.org/wiki/Software-defined_networking
[2] https://en.wikipedia.org/wiki/Open_source
[3] https://en.wikipedia.org/wiki/Open-source_software
[4] https://www.opencompute.org/about
[5] https://aptira.com/what-is-open-networking/
[6] https://events19.linuxfoundation.org/wp-content/uploads/2017/11/Open-Hardware-and-Open-Networking-Software-How-We-Got-Here-and-Where-We-are-Going-Steven-Noble-Big-Switch-Networks-_-NetDEF.pdf
[7] https://www.opencompute.org/wiki/Networking/ONIE
[8] https://www.openswitch.net/about/
[9] http://opennetlinux.org/
[10] https://events19.linuxfoundation.org/wp-content/uploads/2017/11/Open-Hardware-and-Open-Networking-Software-How-We-Got-Here-and-Where-We-are-Going-Steven-Noble-Big-Switch-Networks-_-NetDEF.pdf
[11] https://events19.linuxfoundation.org/wp-content/uploads/2017/11/Open-Hardware-and-Open-Networking-Software-How-We-Got-Here-and-Where-We-are-Going-Steven-Noble-Big-Switch-Networks-_-NetDEF.pdf
[12] https://www.opencompute.org/documents/switch-abstraction-interface
[13] https://github.com/Azure/SONiC/wiki/Architecture
[14] https://github.com/Azure/SONiC/wiki/Sonic-Roadmap-Planning

菜单