What do you think building an open network operating system based on SONiC-AsterNOS

What do you think building an open network operating system based on SONiC-AsterNOS

Fancy Wang 0707 2021

SONiC overview

SONiC (Software for Open Networking in the Cloud) and its associated SAI (Switch Abstraction Interface) are two open source projects in the field of open cloud networking led by Microsoft in recent years.

No alt text provided for this image


Due to its closed, black box, and lock-in, traditional network equipment cannot meet the requirements of open interfaces, software definition, modular construction, and rapid iteration proposed by the cloud management platform in the cloud computing era; it can be said that it should be the three major cloud computing The network, one of the infrastructures, has in turn become an insurmountable mountain that limits the development of cloud computing itself. In the process of building Azure, the public cloud platform, Microsoft gradually realized this and led the establishment of the SONiC/SAI open source project. The goal is to rebuild an open network system software based on the standard Linux kernel in response to Azure's network requirements. In order to conform to the historical trend of cloud computing, software definition, open source and open source, Microsoft did not make this system closed and private, but operated in an open, open source, and community model; the vigorous development of SONiC/SAI in recent years To a large extent it also benefits from this.

No alt text provided for this image



Figure 1: SONiC/SAI concept

In the open architecture defined by SONiC/SAI, the closed architecture of traditional network equipment software and hardware is broken, and software and hardware are completely decoupled; it seems that today’s Windows/Linux operating system can run on any third-party standards-based design Like the PC/Server hardware, the SONiC/SAI network software system can also run on any standard-compliant network hardware platform.


The most fundamental changes that SONiC/SAI has brought to the entire network industry are:


l The concept of software and hardware decoupling and standardized software and hardware interface definitions enable network software systems and network hardware platforms that were originally locked together to break free from each other's shackles, and both can develop rapidly;


l The open software architecture, container-based modular design, and standard Linux kernel enable the development of network software systems to evolve into an era similar to application software development. Rapid iteration, on-demand customization, and community co-construction are also in the world of network software. become possible;


l The development of network software breaks through the closed model of traditional equipment suppliers and forms a new network ecosystem of co-construction, sharing and openness, and then rapidly promotes the development of the network itself.


The brand-new concept and open architecture make SONiC/SAI glow with vigorous vitality, quickly gaining the favor of users and manufacturers in the cloud computing era, and becoming the first choice for building network software systems in the cloud computing era. It is precisely because of this that SONiC/SAI is positioned to build an open data center architecture OCP (Open Compute Project, Open Compute Project) and become two sub-projects of the OCP network group.


Introduction to SONiC System Architecture

SONiC is built on the Linux system, and uses key-value database (redis), container technology (docker), standardized hardware interface definition and other technologies to make it a completely decoupled software and hardware, loosely coupled software modules, high reliability, and easy to expand. , Open source and open network software system.

https://github.com/Azure/SONiC/raw/master/images/sonic_user_guide_images/section4_images/section4_pic1_high_level.png


The figure above depicts the overall architecture of SONiC. can be seen:


<a href="">l A system running in user space

The entire SONiC system runs in the user space of Linux, and there are only a few modules (pmon, swss, and syncd) that interact with the Linux kernel. This guarantees the overall stability of the system to a large extent, and the operation of the Linux kernel will not be interrupted due to errors in upper-layer applications.


<a href="">l Take redis key-value database as the interactive center

At the center of the SONiC system is the redis key-value database. redis builds a loosely coupled communication carrier for all software modules of SONiC, and provides mechanisms such as data consistency, information replication, and multi-process communication.

No alt text provided for this image



Figure 3: Loosely coupled architecture centered on redis

Based on the "publisher/subscriber" model of redis, software modules that need to communicate do not need to establish a fully connected complex communication mechanism, and each other does not need to pay attention to the details of each other's internal functions. A software module only needs to subscribe to redis the data of other software modules that it is concerned about; when the data of other modules changes and is written to redis, redis will automatically notify all software modules that subscribe to the data to update and update the status. Information processing.


<a href="">l Adopt the latest container architecture

Except for the two software modules, SONiC CLI and SONiC Configuration, running in the Linux system, the other software modules that make up the SONiC system are isolated in independent Docker containers. Such an architecture not only ensures the logical correlation between each software module and the system as a whole, but also reduces the degree of coupling between each software module to the greatest extent. The container architecture makes each software module no longer need to pay attention to the relevance of the underlying platform on which it is running, so that its development independence is greatly improved; the stability of a software module will not affect the overall stability of the system. The upgrade can be carried out in units of software modules, and such an upgrade can be carried out while the system is running without affecting the forwarding of underlying network traffic. After the software module is upgraded, only the corresponding container needs to be restarted.


<a href="">l SONiCa> Docker container included in the system

n teamd: Provides LAG function, named after it uses Linux-based open source software teamd;


n pmon: Provides monitoring functions for the hardware environment, mainly including various status monitoring of the fan and monitoring of various sensors of the hardware platform;


n snmp: Provides SNMP management functions, internally obtains various MIB data required by SNMP from the redis database, and is used to externally respond to query requests from SNMP clients;


n dhcp-relay: Provides the DHCP Relay function, which relays the DHCP requests that are not set with the DHCP Server subnet to other subnets;


n lldp: Provides the LLDP function, discovers the equipment at the opposite end of the line and its various capability parameters, and provides them to other software modules for use;


n bgp: Provide routing protocol based on Quagga or FRR. Although BGP is used for naming, it also includes various other routing protocols (such as OSPF, IS-IS, LDP, etc.);


n database: running redis key-value database engine, other applications access through UNIX Socket, mainly maintain APPL_DB, CONFIG_DB, STATE_DB, ASIC_DB, COUNTERS_DB and other databases;


n swss: Running Switch State Service (SwSS), responsible for maintaining, providing, and synchronizing various status, table items and other information in the switch for each module of SONiC;


n syncd: Responsible for synchronizing various status, table items and other information between the SONiC software system and the underlying exchange chip. Specific actions include initialization, dynamic configuration at runtime, reading chip information, etc. The SAI mentioned above mainly works here, Provide a unified and abstract switch chip interface layer for the SONiC system upward, and complete the operation of the chip by invoking the adaptation interface provided by each chip manufacturer;


n CLI and sonic-cfggen: command line and internal configuration management functions (it needs to be emphasized that, as mentioned earlier, these two functions run directly in Linux and are not isolated to Docker containers).


Xingrong builds an open network operating system based on SONiC

<a href="">l Xingrong is one of the earliest companies participating</a> in the SONiC community in China

After several years of development, SONiC has become one of the open source communities with very strong vitality and promising development in the field of cloud computing. The core members of the founding team of Asterfusion come from well-known network companies such as Huawei, Cisco, and Broadcom. They have a deep understanding of technologies and products in the field of network and cloud computing. They have been actively tracking and participating in depth before the founding of Asterfusion. SONiC and its community. As a new generation of cloud network provider, Xingrong has formally joined the SONiC community since its establishment, becoming one of the first cloud network companies in China to participate in the SONiC community.

No alt text provided for this image


The active members of the SONiC community can be roughly divided into the following categories:


n Internet giants/cloud computing companies: Alibaba, Baidu, Didi, Docker, Facebook, JD, LinkedIn, Microsoft, Tencent, etc.


n Traditional network equipment suppliers: Arista, Cisco, Dell, Juniper, Ruijie, etc.


n White box network equipment suppliers: Celestica, Edgecore, Quanta, etc.


n A new generation of cloud network providers: Apstra, Asterfusion, etc.


n Network switching chip suppliers: Barefoot, Broadcom, Cavium, Centec, Innovium, Marvell, Mellanox, etc.

It can be seen that the SONiC community has formed a comprehensive ecosystem from the lowest chip to the uppermost large-scale users. This ecosystem is promoting the development and maturity of SONiC from all levels of hardware chips, system architecture, system integration, and large-scale applications.


It is worth noting that, in terms of quantity and volume, the main members of the current SONiC community are giant Internet/cloud computing companies that have exploded in recent years. The fundamental reason behind this is: these companies’ own businesses They are all relying on cloud computing, or are transforming to cloud computing. When building a cloud computing platform that supports their own business internally and externally operates, they are the first to discover the limitations of traditional networks to cloud computing; and they are different from ordinary enterprise users. Yes, these companies happen to have strong technical capabilities, so they bypassed traditional network equipment suppliers, and transformed the network according to their own needs and expectations, and even self-researched; logically, the SONiC community was born and grew at the same time , These companies have also become the main force of the community; especially worthy of attention is that the leading company that single-handedly contributed to the birth of SONiC and the vigorous development of the community is Microsoft, which has been standing on the opposite side of open source and openness for decades.


On the other hand, traditional enterprise users who have the same strong demand for cloud computing and cloud networks, because they do not have the technical capabilities similar to those of Internet/cloud computing companies, are still imprisoned in the traditional network technology system and cannot enjoy open source and open new technologies. A generation of cloud network technology brings dividends to the development of the industry.


<a href="">l AsterNOS-an open network operating system based on SONiC

Xingrong is committed to providing a new generation of cloud network solutions for users in the cloud computing era. In order to provide a fully open, high-performance, and business-visible cloud network solution, Xingrong uses SONiC as the core to build a new generation of network operating system-AsterNOS.

No alt text provided for this image

AsterNOS is built on the standard Linux kernel and SONiC/SAI; based on the standard functions provided by SONiC, Xingrong has developed the following enhanced features for AsterNOS:

n VLAG, BGP EVPN, PICFATM, REST API and other native SONiC functions that are not currently available to improve the overall availability of the system;

n Open up all the capabilities of the network through REST API, so that the system can be centrally managed and automatically invoked by a third-party cloud management platform;

n Provides a Web UI based on REST API, which enables users to operate and manage cloud networks through a graphical interface;

No alt text provided for this image


n Application orchestration, business scheduling, resource management, strategy management and other operation and maintenance and operation enhancement features, so that the system can support the unified business planning and automatic deployment of the cloud management platform;


n Integrated DevOps support capabilities such as Python, Ansible, NETCONF, etc., so that the system can automatically dock with the DevOps platform;


n The open standard Docker container environment supports third-party applications to run directly on the network system.


It is also worth mentioning that Xingrong also provides a programmable hardware platform and a unified controller for AsterNOS:


n High-performance hardware platform based on programmable switching chip


Xingrong closely follows the most advanced technology development trends in the network field, and uses programmable switching chips as the core to build a high-performance hardware platform for AsterNOS, so that user needs can be quickly responded to at the hardware forwarding level, and the rapid iteration of the cloud is no longer limited. ASIC development cycle in 18-24 months.


n Unified Controller Asteria Fabric Controller (AFC)


AFC is the unified controller of Xingrong Cloud Network. It completes the centralized management, business deployment, and automatic scheduling of cloud networks by calling the atomic-level REST API opened by AsterNOS. At the same time, it provides business-level REST APIs to the cloud management platform to connect the network The complex operation process is encapsulated into simple software calls.


AsterNOS, AFC and high-performance programmable hardware platform together provide a new generation of SDN cloud network solutions for cloud computing:

No alt text provided for this image



Figure 6: The overall architecture of the Xingrong cloud network solution

<a href="">l Xingrong actively contributes to the SONiC community


Adhering to the spirit of open source and openness, Xingrong actively contributes to the SONiC open source community. As of April 2020, Xingrong has contributed a number of bug fixes to the community, of which 21 have passed the community review and have been merged into the mainline version. These 21 Bug Fixes are as follows:


20 for SONiC systems, distributed in routing protocols (FRR, docker-fpm-frr, vrfmgrd), application modules (dhcp-relay, libteam, lldp), VXLAN tunnel (vxlanorch), ACL module (portsorch), security protection (copporch) , Ebtables), quality of service (qosorch), system and configuration management (sonic-sfp, config, hostcfgd), system simulation (vstests) and other modules, please refer to:


https://github.com/search?p=1&q=org%3AAzure+asterfusion&type=Commits


One is for the SAI adaptation layer (saithrift), for details, please refer to:


https://github.com/opencomputeproject/SAI/search?q=asterfusion&type=Commits


In addition to the above-mentioned bug fixes, Xingrong is currently planning to contribute some of its self-developed enhancements to the SONiC community to help the community further improve the usability and ease of use of SONiC, and jointly promote the application and deployment of open source cloud networks in enterprise users.


<a href="">l Xingrong helps enterprise users to use SONiC

In response to some problems encountered by enterprise users in the use and deployment of SONiC and secondary development based on SONiC, Xingrong takes actions from the following aspects to help enterprise users use SONiC smoothly.

n Build a local Git warehouse

For various reasons, the process of downloading and compiling SONiC source code through https://github.com is not smooth for many enterprise users. They often encounter problems such as inability to connect, slow download speed, and compilation failure. In response to such problems, Xingrong has built a local Git code repository for business users in the cloud, and regularly and automatically clones relevant content on the source server to provide local mirroring. When you need to use it, you only need to connect to this local Git code repository. There is no need to connect to the source server.


n Provide technical consulting services

Aiming at the production environment of the enterprise, Xingrong has compiled a comprehensive test case. On the hardware platform based on various switching chips, each software module in the SONiC system has been subjected to detailed function, integration, performance, and stress testing, and the testing process After the problems found in the system are corrected, they are fed back to the community; as new functions and features are developed and released, Xingrong will continue to do this work. In this process, Xingrong has accumulated a deep understanding of the SONiC system and can provide a full range of SONiC technical consulting services to help enterprise users use SONiC clearly and plainly.

n Provide one-stop SONiC solution

For enterprise users who want to use native SONiC, Xingrong can provide comprehensive technical and consulting services to help users quickly complete the construction and deployment of open source and open cloud network systems on the selected hardware platform; for those who want to use a one-stop solution For users of the solution, StarRong can provide turn-key delivery and deployment based on AsterNOS, programmable switching hardware platform, AFC, easy-to-use operation interface, a full set of manuals, and complete support to help users easily enjoy the new generation of Cloud network technology brings speed and convenience to IT systems.

n Customized development of functions and features

After three years of development, Xingrong now has nearly 60 development/test engineers with SONiC experience, including technical experts with architectural capabilities, and the scale is still expanding. Therefore, for the special function requirements for the network proposed by the customer, Xingrong can provide customized development services. Based on the comprehensive grasp of the SONiC system and the high-performance programmable switching hardware platform, the waiting time for the customer’s needs can be increased from 18-24. The month is shortened to 2-4 weeks.

in conclusion

l The rapid development of cloud computing puts forward new requirements for cloud networks. Traditional network architecture and technology cannot meet these requirements, and SONiC came into being;

l SONiC is an open source and open network software system running on standard Linux. The SAI adaptation layer shields the differences of various underlying hardware for the SONiC system;

l The SONiC system uses the redis key-value database as the central hub to minimize the coupling between various modules, and uses the Docker container architecture to isolate each software module, thereby greatly improving the openness and reliability of the system;


As one of the earliest companies participating in the SONiC community in China, Xingrong actively follows up, conducts in-depth research, and comprehensively tests the SONiC system, and uses SONiC as the core to develop a new generation of cloud networks including AsterNOS, AFC and programmable switching hardware platforms solution;


l Asterfusion Data Technologies is committed to providing enterprise users with services including technical consultation and one-stop deployment, and helping enterprise users enjoy the technological dividends brought by the Internet, open source, and open networks.


Reference

1. SONiC official website: https://azure.github.io/SONiC/

2. Azure SONiC @ GitHub: https://github.com/Azure/SONiC

3. OCP SAI @ GitHub: https://github.com/opencomputeproject/SAI

4. SONiC system architecture: https://github.com/Azure/SONiC/wiki/Architecture

5. OCP official website: https://www.opencompute.org/

6. SONiC @ OCP: https://www.opencompute.org/projects/sonic-sub-project

7. SAI @ OCP: https://www.opencompute.org/project

要查看或添加评论,请登录

Fancy Wang的更多文章

社区洞察

其他会员也浏览了