ONIE – Open Network Install Environment
Abkürzung: ONIE
ONIE (Open Network Install Environment) ist eine herstellerneutrale Installationsumgebung, die ab Werk in der Firmware eines Switches liegt und beim ersten Start ein Betriebssystem aus dem Netz holt und installiert.
Wozu dient ONIE
Ein Switch mit herstellereigenem Betriebssystem braucht so etwas nicht: Software und Gerät kommen zusammen. Bei einem White-Box-Switch wird die Hardware ohne Betriebssystem geliefert, und damit stellt sich eine Frage, die es im klassischen Modell nicht gab — wie kommt die Software auf ein Gerät, das nichts hat, worüber man sie aufspielen könnte?
ONIE beantwortet sie. Es ist eine kleine Linux-Umgebung, die im Flash-Speicher des Geräts liegt und die Rolle übernimmt, die beim Server das BIOS zusammen mit dem Netzwerkstart spielt: Sie bringt genug mit, um eine Netzwerkverbindung aufzubauen, ein Abbild zu finden und es auszuführen.
Das Ergebnis ist eine Trennung, die das ganze Modell erst tragfähig macht. Der Gerätehersteller liefert Hardware plus ONIE, der Betreiber wählt das Betriebssystem unabhängig davon. Weil alle Geräte dieselbe Installationsumgebung mitbringen, funktioniert derselbe Ablauf über Hersteller hinweg.
Ablauf ONIE
Beim Einschalten eines Geräts ohne installiertes Betriebssystem startet ONIE im Installationsmodus und sucht nach einem Abbild. Es probiert dabei mehrere Wege nacheinander und wiederholt den Durchlauf, bis eine Installation gelingt:
- eine im Bootloader fest hinterlegte Adresse
- lokale Datenträger, etwa ein USB-Stick
- vollständige Adressen aus der DHCP-Antwort
- unvollständige Adressen, die ONIE aus der DHCP-Antwort zusammensetzt
- IPv6-Nachbarn
- TFTP, in absteigender Genauigkeit der Dateinamen
Beim dritten Weg liefert der DHCP-Server die Adresse des Abbilds in Option 114, die dort default-url heißt:
option default-url = "http://192.0.2.14/onie-installer-x86_64";
Findet ONIE keine vollständige Adresse, setzt es selbst eine zusammen und sucht nach Dateinamen absteigender Genauigkeit — vom gerätespezifischen onie-installer-<arch>-<hersteller>_<modell>-r<revision> bis zum schlichten onie-installer. Dadurch kann ein Server einen gemischten Bestand bedienen: Wer für ein bestimmtes Modell eine eigene Datei hinterlegt, bekommt diese, alle übrigen Geräte greifen auf die allgemeine zurück.
Das gefundene Abbild ist ein selbstentpackendes Shell-Archiv, das das Betriebssystem und dessen Installationsroutine enthält. ONIE führt es aus und übergibt damit die Kontrolle.
Nach der Installation
ONIE verschwindet nicht. Es bleibt im Flash-Speicher und lässt sich über den Bootloader wieder aufrufen — mit vier Betriebsarten:
Install installiert ein Betriebssystem, der Zustand ab Werk.
Rescue startet eine Kommandozeile ohne Installationsversuch, für Diagnose und Handarbeit.
Uninstall löscht das installierte Betriebssystem samt seiner Daten und stellt den Auslieferungszustand her.
Update erneuert ONIE selbst.
Damit ist ein Switch wiederbespielbar wie ein Server. Ein Betriebssystemwechsel ist ein Neustart in den Installationsmodus, kein Gerätetausch.
Herkunft
ONIE entstand 2012 bei Cumulus Networks und wurde 2013 an das Open Compute Project übergeben, wo es seither als offenes Projekt geführt wird. Es ist damit älter als die meisten Betriebssysteme, die es heute installiert, und gilt als die Voraussetzung dafür, dass sich der Markt für Netzwerkbetriebssysteme überhaupt von der Hardware lösen konnte.
Stolperstellen
Option 114 ist doppelt belegt. ONIE nutzt sie seit 2013 als default-url. RFC 8910 hat dieselbe Option 2020 dem Captive Portal zugewiesen. In einem Netz, in dem beides vorkommt, kollidieren die Bedeutungen — in der Praxis ein Grund, für die Bereitstellung ein eigenes Netzsegment zu verwenden, in dem kein fremder DHCP-Server antwortet.
Die Installation ist nicht abgesichert. Wer im Bereitstellungsnetz einen DHCP-Server betreiben kann, bestimmt, welches Abbild ein Switch installiert. Das Verfahren setzt ein vertrauenswürdiges Segment voraus.
Das Abbild muss zur Plattform passen. ONIE erkennt Architektur und Modell und legt sie in /etc/machine.conf ab. Ein Abbild für eine andere Plattform wird abgewiesen — was Schaden verhindert, aber voraussetzt, dass die Bezeichnungen bekannt sind.
Abgrenzung
SONiC ist eines der Betriebssysteme, die über ONIE installiert werden. ONIE ist die Installationsumgebung, SONiC das Ergebnis der Installation.
SAI liegt eine Ebene tiefer und betrifft den laufenden Betrieb, nicht die Installation.
Ein White-Box-Switch ist das Gerät, auf dem ONIE ab Werk liegt.
ZTP (Zero Touch Provisioning) setzt an, wo ONIE aufhört: ONIE bringt das Betriebssystem auf das Gerät, ZTP versorgt das bereits installierte System mit seiner Konfiguration.
Quellen
- Open Compute Project: ONIE Design Specification, Abschnitt „Installer Discovery"
- RFC 8910: Captive-Portal Identification in DHCP and Router Advertisements
- Open Compute Project: Networking Project