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 将每个???榉旁谧粤Φ膁ocker容器中,,以坚持语义仿射组件之间的高内聚性,,同时镌汰脱节组件之间的耦合。。每个组件都被编写为完全自力于平台特定的细节,,而这些细节是与低层笼统交互所必需的。。
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

