**SONiC** (Software for Open Networking in the Cloud) is an open source network operating system based on Linux and Docker, originally developed by Microsoft and now a Linux Foundation project. It runs on white-box switches and provides a programmable, vendor-neutral alternative to proprietary switch operating systems. --- ### First Principle: Your switching fabric should be as software-defined and replaceable as your compute. Cisco IOS, Junos, and other proprietary NOSes create vendor lock-in at the physical switching layer. SONiC breaks this by running on commodity merchant silicon (primarily Broadcom Tomahawk) and exposing management via standard APIs. --- ### Key Considerations - **Architecture**: SONiC is a containerised application platform. Each networking function (BGP, LLDP, SNMP, ACL manager) runs as a separate Docker container communicating via Redis ASIC DB. Components can be updated independently. - **SAI (Switch Abstraction Interface)**: SONiC talks to switching hardware through SAI — a standardised hardware abstraction layer that works across different ASIC vendors. - **[[FRRouting (FRR)]] Integration**: SONiC uses FRR for its routing protocol stack (BGP, OSPF, IS-IS). This is how SONiC participates in underlay routing. - **Deployment**: Used at Microsoft Azure, Alibaba Cloud, Tencent, and Goldman Sachs. Proven at genuine hyperscaler scale. - **Management**: Supports SNMP, gNMI, OpenConfig, and REST APIs. Integrates with [[Ansible]] for automated configuration. --- ### How It Fits ``` [[FRRouting (FRR)]] (routing protocols: BGP/OSPF) → SONiC (NOS running on white-box switch hardware) → Merchant silicon (Broadcom/Mellanox ASICs) → [[Open vSwitch (OVS)]] / [[OVN]] (overlay on top) ``` [[FRRouting (FRR)]] | [[Open vSwitch (OVS)]] | [[Ansible]] | [[Open Source Hyperscaler MoC]]