Open Compute Project – ONIE

Dernière modification le 5 janvier 2021

Créé en 2012 par Cumulus Networks, le projet ONIE (Open Network Install Environment) est un petit système d’exploitation, préinstallé en tant que micrologiciel sur des commutateurs réseau « bare metal », qui fournit un environnement pour l’approvisionnement automatisé du NOS (Network Operating System).

Incubé et adopté par l’Open Compute Project en 2013, le projet ONIE permet un écosystème de commutateurs réseau « bare metal » où les utilisateurs finaux peuvent choisir parmi différents systèmes d’exploitation réseau.

ONIE First Time Boot
Source documentation ONIE
ONIE Subsequent Boots
Source documentation ONIE

Une question m’a été posée pour faire de la simulation et s’entrainer à l’automatisation sur du NOS Open Source : « Quel matériel minimum acheter pour faire des installations sur ONIE ? ». Il est vrai qu’on peut trouver sur internet des petits commutateurs DELL d’occasion qui peuvent faire l’affaire, mais ma réponse c’est plutôt la virtualisation.

D’une façon générale, c’est le même mode opératoire que pour installer un NOS sur ONIE dans le cadre d’un matériel physique. Afin de simplifier un peu la démarche, j’ai choisi de montrer un exemple d’installation sur VirtualBox plutôt que KVM. Voici les grandes étapes de la démarche.

Cross-compilation ONIE

Sur la base d’une machine virtuelle Ubuntu 18.04 (important pour avoir Python 2.7 encore nécessaire) à laquelle j’attribue 4096 Mo de RAM, 2 vCPUs et 20 Go de disque, les commandes suivantes sont exécutées.

sudo apt-get install build-essential git 
git clone https://github.com/opencomputeproject/onie
cd onie/build-config/
make debian-prepare-build-host
git config --global user.email "votre-email"
git config --global user.name "votre-nom"
make -j4 MACHINE=kvm_x86_64 all recovery-iso

En fonction de la puissance de la machine hôte et des ressources attribuées à la machine virtuelle, la compilation peut prendre beaucoup de temps (plus d’une heure dans mon cas). Plusieurs images sont générées dans le répertoire onie/build/images, mais le fichier qui nous intéresse s’appelle onie-recovery-x86_64-kvm_x86_64-r0.iso.

ONIE build images
ONIE build images

Cette image iso va être utilisée pour lancer une nouvelle machine virtuelle.

Environnement de simulation

Deux machines virtuelles sont utilisées sur VirtualBox pour un meilleur confort et pour ne rien installer sur la machine hôte.

Une machine Ubuntu sur laquelle screen est installé permet de servir de console à l’autre machine virtuelle. Un port COM1 est configuré en mode « host pipe » et pointe en mode création (ou maître) sur le fichier /tmp/myswitch. Dans la mesure ou COM1 correspond à ttyS0, la commande utilisée pour accéder à la console est : sudo screen /dev/ttyS0 115200.

Une autre machine virtuelle fait tourner l’image iso de ONIE avec un port COM1 configuré en mode passif sur le même fichier que la machine virtuelle utilisée pour être la console. Lors du premier démarrage, il faut choisir le mode « Embed ONIE » en ignorant les warnings de ONIE qui essaie de se mettre à jour tout seul et en arrêtant la VM pour lui retirer le CDROM.

ONIE Premier Boot
Premier boot ONIE avant installation

Après redémarrage sur le disque de la VM, on voit que ONIE est opérationnel et qu’il est prêt à pouvoir installer un NOS. Le mode « discover » du redémarrage est arrêté par un <ENTER> et la commande onie-stop.

ONIE Boot install
ONIE une fois installé

On peut faire un test avec une installation de l’image de la dernière version Open Network Linux. Initialement proposé à « Open Compute Project Engineering Workshop » à San Antonio par Big Switch Networks en 2013, Open Network Linux (ONL) est une distribution Linux pour les commutateurs «bare metal». Adopté par l’Open Compute Project en 2014, ONL est le système d’exploitation réseau de référence pour l’Open Compute Project. En outre, ONL est la base du nouveau NOS DentOS basé sur un Kernel 5.x et SwitchDev…

ONIE Install Open Network Linux
Installation Open Network Linux
ONIE Open Network Linux
Open Network Linux (root/onl)
ONIE Prompt ONL
Prompt ONL

Sur la même base d’installation ONIE, on peut également faire un test avec OpenSwitch (OPX). La plate-forme OpenSwitch est un NOS open source basé sur Linux pour les commutateurs désagrégés construits autour de matériel compatible OCP et utilisant un chargeur de démarrage ONIE. OpenSwitch fournit une pile de plans de contrôle complète avec prise en charge des protocoles réseau de couche 2 et 3.

ONIE Install OpenSwitch
Installation OpenSwitch
ONIE OpenSwitch
OpenSwitch (admin/admin)
ONIE Prompt OPX
Prompt OPX

Conclusion

Il est donc inutile d’investir dans du matériel pour tester des installations ONIE et puis noël est passé de toute façon… J’en profite pour vous présenter mes meilleurs voeux pour cette nouvelle année.