SONiC
SONiC ist ein quelloffenes Betriebssystem für Switches. Es trennt die Software vom Gerät und läuft auf Hardware verschiedener Hersteller.
Definition SONiC
SONiC steht für Software for Open Networking in the Cloud. Es ist ein Betriebssystem für Netzwerk-Switches, das auf Debian aufsetzt und unter einer freien Lizenz steht.
Der Ansatz bricht mit dem üblichen Modell. Ein Switch wird gewöhnlich als Einheit aus Gerät und Betriebssystem gekauft, beides vom selben Hersteller und nicht trennbar. SONiC läuft dagegen auf Geräten unterschiedlicher Anbieter, solange deren Chips unterstützt werden.
Entstanden ist es bei Microsoft für den Betrieb der eigenen Rechenzentren und wurde 2016 veröffentlicht. Seit 2022 wird es unter dem Dach der Linux Foundation weiterentwickelt.
Aufbau
SONiC ist kein einzelnes Programm, sondern eine Sammlung von Diensten, die jeweils in einem eigenen Container laufen. Darunter sind das Routing, die Verwaltung der Schnittstellen, die Nachbarschaftserkennung und die Überwachung.
In der Mitte steht eine Datenbank im Arbeitsspeicher, über die alle Dienste miteinander sprechen. Sie ist in mehrere Bereiche unterteilt: die gewünschte Konfiguration, der Zustand der Anwendungen, der Zustand des Chips und die Zähler.
Daraus ergibt sich das Grundprinzip. Ein Dienst schreibt seinen Wunsch in die Datenbank, ein anderer liest ihn und setzt ihn um. Die Dienste kennen einander nicht, sie kennen nur die Datenbank.
Das Routing übernimmt FRRouting, eine eigenständige quelloffene Sammlung von Routingprotokollen. In Rechenzentren wird üblicherweise BGP eingesetzt, auch innerhalb des Standorts.
Die Verbindung zur Hardware läuft über einen Dienst, der die Einträge der Datenbank in Aufrufe der Abstraktionsschicht SAI übersetzt. Erst diese spricht mit dem Chip des jeweiligen Herstellers.
Wo es eingesetzt wird
Der Schwerpunkt liegt in großen Rechenzentren. Dort sprechen drei Gründe dafür.
Unabhängigkeit vom Hersteller. Wer tausende Switches betreibt, will nicht an einen Anbieter gebunden sein. Mit SONiC lässt sich die Hardware wechseln, ohne den Betrieb umzustellen.
Einheitliche Verwaltung. Dieselbe Software auf allen Geräten bedeutet dieselben Abläufe, unabhängig davon, von wem der Switch stammt.
Eigene Erweiterungen. Der Quelltext ist offen, Anpassungen sind möglich. Für Betreiber mit besonderen Anforderungen ist das ein Argument, das kein geschlossenes System bietet.
In Netzen für KI-Lasten kommt hinzu, dass die dafür nötigen Verfahren unterstützt werden, insbesondere die Flusskontrolle und die Stau-Anzeige, die RDMA über Ethernet voraussetzt.
Was dagegen spricht
SONiC ist kein Ersatz für ein herstellereigenes Betriebssystem in kleinen und mittleren Netzen.
Betriebsaufwand. Wer es einsetzt, betreibt es selbst. Es gibt keine zentrale Stelle, die bei einem Problem einspringt, sofern keine kommerzielle Fassung gekauft wird.
Funktionsumfang. Der Schwerpunkt liegt auf dem, was in Rechenzentren gebraucht wird. Vieles, was in Unternehmensnetzen selbstverständlich ist, fehlt oder ist weniger ausgereift.
Fassungen und Pflege. Neben der Gemeinschaftsfassung gibt es mehrere kommerzielle, die sich im Funktionsumfang unterscheiden. Welche davon auf welcher Hardware läuft und wie lange gepflegt wird, ist vor der Entscheidung zu klären.
Einarbeitung. Der Aufbau aus Containern und zentraler Datenbank ist ungewohnt. Fehlersuche verlangt Kenntnis dieser Struktur.
Unterstützte Hardware
SONiC läuft auf Switches mit Chips mehrerer Hersteller, darunter die verbreiteten Rechenzentrums-Bausteine von Broadcom und Nvidia sowie Chips von Marvell, Cisco und Intel.
Voraussetzung ist, dass es für den Chip eine SAI-Umsetzung gibt und dass der Gerätehersteller die nötigen Anpassungen bereitstellt. Welche Modelle unterstützt werden, steht in der Liste des Projekts.
Die Geräte bringen üblicherweise eine Installationsumgebung mit, über die sich ein Betriebssystem über das Netz aufspielen lässt. Damit wird ein Switch wie ein Server behandelt.
Abgrenzung
SAI ist die Abstraktionsschicht zwischen Betriebssystem und Chip. SONiC nutzt sie, ist aber nicht dasselbe.
Ein White-Box-Switch ist die Hardware ohne Betriebssystem. SONiC ist eine der Optionen, die darauf laufen können.
Herstellereigene Betriebssysteme wie Cisco IOS oder die Systeme anderer Anbieter sind fest an deren Geräte gebunden.
OpenWrt ist ebenfalls ein freies Betriebssystem für Netzwerkgeräte, zielt aber auf Router im Heim- und Kleinbereich.
Quellen
- SONiC Project, Linux Foundation: Architektur und unterstützte Plattformen
- Open Compute Project: Switch Abstraction Interface (SAI)
- FRRouting Project: Routingprotokolle unter SONiC