Definition Was ist SONiC (Software for Open Networking in the Cloud)?

SONiC ist ein auf Linux basierendes Open-Source-Betriebssystem für Routing- und Switching-Geräte in Netzwerken. Entwickelt wurde die Software von Microsoft und dem Open Compute Project. Das Betriebssystem ist auf der Hardware zahlreicher Hersteller und mit unterschiedlichen ASICs (Application-Apecific Integrated Circuits) einsetzbar. Microsoft verwendet die Software in großem Umfang für seine Azure-Cloud-Rechenzentren.

Firmen zum Thema

Die wichtigsten IT-Fachbegriffe verständlich erklärt.
Die wichtigsten IT-Fachbegriffe verständlich erklärt.
(Bild: © aga7ta - stock.adobe.com)

SONiC ist die Abkürzung für Software for Open Networking in the Cloud. Es handelt sich dabei um ein frei verfügbares, auf Linux basierendes Betriebssystem zur Bereitstellung von Routing- und Switching-Funktionen auf Hardware verschiedener Hersteller.

Ursprünglich wurde die Software unter dem Projektnamen Azure Cloud Switch von Microsoft entwickelt. Veröffentlicht wurde das Betriebssystem im Jahr 2016. 2017 übernahm das Open Compute Project (OCP) die Verantwortung für die Weiterentwicklung der Software. Konzipiert ist SONiC speziell für die Anforderungen an das Routing und Switching in Cloud-Rechenzentren.

Microsoft erhoffte sich durch die Entwicklung Einsparungen und mehr Effizienz in den eigenen Rechenzentren. Die Software for Open Networking in the Cloud setzt Microsoft daher auch in großem Umfang in den eigenen Azure-Rechenzentren ein. Das Betriebssystem ist auf der Hardware zahlreicher Hersteller und auf unterschiedlichen ASICs (Application-Apecific Integrated Circuits) einsetzbar. SONiC bietet umfangreiche Layer-2- und Layer-3-Netzwerkfunktionalität und unterstützt Quality of Service (QoS), Border Gateway Protocol (BGP), OOM (Open Optical Monitoring), VLAN Trunks, TACACS+ (Terminal Access Controller Access Control System Plus), Remote Direct Memory Access (RDMA) und vieles mehr.

Neben Microsoft nutzen andere Hyperscaler und zahlreiche Cloud-Service-Provider die Software in ihren Data Centern. Für die Cloud-Edge-Umgebungen in den 5G-Netzwerken der Telekommunikationsanbieter gewinnt SONiC zunehmend an Bedeutung. Zu den Unternehmen, die die Software for Open Networking in the Cloud einsetzen oder kompatible Hardware anbieten, gehören unter anderem Alibaba, Arista Networks, Facebook, Tencent, Broadcom, Dell, Cisco, Juniper, VMware und viele mehr. Die Software selbst ist auf GitHub verfügbar und steht unter verschiedenen Open-Source-Lizenzen wie GNU-GPL- und Apache-Lizenzen.

Architektur und Funktionsprinzip der Software for Open Networking in the Cloud

Die Architektur von SONiC ist modular aufgebaut mit der Zielsetzung einer einfachen Erweiterbarkeit und flexiblen Auswahl der benötigten Funktionalitäten oder Komponenten. Das Gesamtsystem besteht aus den disaggregierten Schichten Hardware-Ebene, Software-Ebene (die eigentliche SONiC-Funktionalität der Software) und Management-Ebene. Auf den Hardware-Plattformen läuft das Betriebssystem Linux.

Das Switch Abstraction Interface (SAI) stellt die Verbindung zu den ASICs her. Die verschiedenen SONiC-Module laufen auf Linux in unterschiedlichen Docker-Containern. Für die persistente Datenhaltung und den Informationsaustausch sorgt eine Redis-Datenbank-Engine. Aktuell realisiert die Software for Open Networking in the Cloud die verschiedenen Funktionskomponenten in diesen Containern:

  • DHCP-Relay-Container
  • PMON-Container
  • SNMP-Container
  • LLDP-Container
  • BGP-Container
  • Teamd-Container
  • Database-Container
  • SwSS-Container
  • Syncd-Container

Die Container interagieren über die zentrale Redis-Engine miteinander oder beziehen ihre Informationen teilweise auch aus anderen Quellen.

Der DHCP-Relay-Container erlaubt die Weitergabe von DHCP-Anfragen aus Subnetzen ohne DHCP-Server an Subnetze mit DHCP-Server. Der PMON-Container ist für die Abfrage von Hardware-Komponenten wie den Lüfterstatus zuständig und alarmiert bei Problemen. Die SNMP-Funktionen des Hosts sind im SNMP-Container untergebracht. Im Container arbeitet ein SNMP-Server, der für die Abwicklung der eingehenden SNMP-Anfragen verantwortlich ist, und ein SNMP-Agent, der dem Server Informationen aus den REDIS-Datenbanken bereitstellt.

Im LLDP-Container sind die Funktionalitäten rund um das LLDP-Layer-2-Protokoll (Link Layer Discovery Protocol) realisiert. Im Container laufen verschiedene Prozesse wie der LLDP-Daemon, LLDPsyncd und LLDPmgr. Für die Bereitstellung der Routing-Stacks ist der BGP-Container zuständig. Er ist zwar nach dem Border Gateway Protocol benannt, unterstützt aber auch anderer Protokolle wie OSPF (Open Shortest Path First) oder IS-IS (Intermediate System to Intermediate System). Der Teamd-Container führt die Link-Aggregation-Funktionen aus. Im Database-Container läuft die Redis-Datenbank-Engine. Die Engine stellt die APPL-Datenbank, die Config-Datenbank, die State-Datenbank, die ASIC-Datenbank und die Counters-Datenbank zur Verfügung.

Die Aufgabe des SwSS-Containers (Switch State Service) ist es, eine effektive Kommunikation zwischen den SONiC-Modulen zu ermöglichen. Hierfür stellt der Switch State Service geeignete Mechanismen zur Verfügung. Mit Hilfe des Syncd-Containers ist die Synchronisation zwischen dem Netzwerkstatus des Switches und der Hardware beziehungsweise den ASICs möglich. Aufgaben dieses Containers sind die Konfiguration und die Initialisierung der Hardware sowie das Sammeln des aktuellen ASIC-Status.

Bedeutung des Switch Abstraction Interface (SAI) für SONiC

Das Switch Abstraction Interface (SAI) ist für die Funktion der Software for Open Networking in the Cloud von hoher Bedeutung. Es handelt sich um eine API-Schnittstelle, über die die Software mit der Hardware und den ASIC-Chips kommuniziert. Per SAI-Schnittstelle lassen sich die Hardware-Schaltungen konfigurieren und programmieren. Die API wird von zahlreichen Hardware- und ASIC-Herstellern unterstützt. Damit stellt das Switch Abstraction Interface die Grundlage für ein herstellerübergreifendes Funktionieren der SONiC-Software auf unterschiedlichen Hardware-Plattformen bereit. Das Switch Abstraction Interface ist Open Source und kann von den Herstellern in den eigenen Produkten implementiert werden.

Die Vorteile von SONiC

Gegenüber proprietären, hardwareabhängigen Betriebssystemen für Switch- und Router-Systeme bietet die Software for Open Networking in the Cloud zahlreiche Vorteile. Durch das Konzept der Disaggregation und die Entkopplung der Hardware von der Software über das Switch Abstraction Interface lässt sich SONiC herstellerübergreifend einsetzen. Hard- und Softwareentwicklungen können unabhängig voneinander ablaufen und werden beschleunigt.

Das modulare Konzept der Software for Open Networking in the Cloud und der Einsatz von Docker-Containern erlauben es, die Software einfach zu erweitern und flexibel die tatsächlich benötigten Funktionen auszuwählen. Gegenüber monolithischen Betriebssystemen, wie sie in proprietären Umgebungen häufig zum Einsatz kommen, ist die Software for Open Networking in the Cloud wesentlich flexibler und die Systeme sind einfacher zu skalieren. Neue Features lassen sich hinzufügen, ohne dass andere Funktionalitäten davon betroffen sind. Die Innovationsgeschwindigkeit erhöht sich.

Eine zunehmende Zahl an Hardware-Herstellern weltweit unterstützen die Software. Die Community wächst kontinuierlich. Die Software ist Open Source und auf GitHub frei verfügbar. Durch den Einsatz von SONiC in großen Installationen und komplexen Umgebungen wie in den Azure-Cloud-Rechenzentren von Microsoft beweist SONiC seine Alltagstauglichkeit, Effektivität und Performance. Umfangreiche Monitoring- und Diagnosemöglichkeiten sowie intelligente Mechanismen für Upgrades und Fehlerbeseitigungen ohne Ausfallzeit sorgen für eine hohe Verfügbarkeit der Switching- und Routing-Plattformen.

(ID:47354480)

Über den Autor