Testing networking infrastructure and building proof-of-concept (PoC) environments can be challenging and expensive. Traditional proprietary network systems often require costly licensing and advanced hypervisor software, making it difficult for developers to experiment freely. However, NVIDIA has introduced a solution that addresses these issues: integrating SONiC with NVIDIA Air.
Why SONiC?
SONiC (Software for Open Networking in the Cloud) is a free, community-developed, Linux-based network operating system (NOS) that has been hardened in the data centers of major cloud service providers. It offers scalability, flexibility, and security without the high costs associated with proprietary systems. SONiC supports standard networking functionalities and is constantly updated with new features.
Being open-source, SONiC eliminates licensing fees and vendor lock-in, significantly reducing costs. It allows for extensive customization, enabling users to build a custom image with only the necessary components, reducing complexity and resource usage. Key features include:
- Automation support
- Zero Touch Provisioning (ZTP)
- Docker container installation
- Custom routing configurations
- Proprietary feature integration
For more information, visit the NVIDIA Technical Blog.
NVIDIA Air and SONiC
NVIDIA Air provides an infrastructure-as-code (IaC) solution, allowing users to create virtual data center replicas with hundreds of switches and servers. This platform is free and enables users to test various configurations without incurring high costs. NVIDIA Air now includes a preconfigured SONiC lab, featuring the latest general availability (GA) release of community SONiC (202305) in a spine-and-leaf architecture commonly found in modern data centers.
The SONiC BGP EVPN VXLAN lab demo on NVIDIA Air showcases a standard spine-and-leaf topology with SONiC switches and Ubuntu servers demonstrating VLAN connectivity. The lab includes documentation, configuration files, and Ansible scripts available on the public GitLab repository.
SONiC Switch Configuration
The lab uses the SONiC image for virtual devices, known as sonic-vs
. This image is pre-installed on all SONiC switches, eliminating the need for manual installation. SONiC’s architecture is containerized, with similar functionalities grouped in Docker containers and managed by a redisDB instance called ConfigDB
. Configuration can be done manually or via the SONiC CLI. For more details, refer to the SONiC CLI documentation.
The lab implements a split-unified mode for separate switch and routing configurations. While the switch configuration is managed by ConfigDB, routing is handled by FRRouting (FRR) and placed into a single frr.conf
file. This setup simplifies management and is often preferred over the split mode, where each FRR daemon has its own configuration file.
Routing Configuration
FRR is a high-performance, free software IP routing suite for Linux and Unix platforms, implementing standard routing protocols like BGP, RIP, and OSPF. In this lab, FRR is used for numbered BGP EVPN as the control plane. Configuration can be done via VTYSH, an integrated shell for FRR commands. Example configurations include setting router IDs, remote AS numbers, and activating neighbors.
SONiC continues to evolve with contributions from the networking community and NVIDIA experts. Future plans include enabling users to bring their own SONiC images to NVIDIA Air, further enhancing the platform’s customizability and convenience.
To explore SONiC on NVIDIA Air, visit the NVIDIA Air marketplace.
Image source: Shutterstock
Credit: Source link