The Open Network Install Environment (ONIE) is an open source initiative that defines an open “install environment” for modern networking hardware. ONIE enables an open networking hardware ecosystem where end users have a choice among different network operating systems.
Before the advent of ONIE, Ethernet switches were procured with pre-installed, captive operating systems, effectively creating networking appliances that locked end users into a vertical supply chain.
Initially, ONIE enabled the “white box” and “bare metal” network switching ecosystem by opening up the hardware to multiple operating system vendors. Over time ONIE’s popularity grew, to where now ONIE is the de facto install environment across the networking hardware industry.
Modern network switches have a management subsystem, based on a variety of CPU architectures that typically include serial console, out-of-band Ethernet and mass storage. This subsystem can function independently from the switching ASIC(s) associated with the “front panel” Ethernet interfaces.
ONIE defines an open source “install environment” that runs on this management subsystem utilizing facilities in a Linux kernel and BusyBox environment. This environment allows end users and channel partners to install the target NOS as part of data center provisioning, in the fashion that servers are provisioned.
ONIE enables switch hardware suppliers, distributors and resellers to manage their operations based on a small number of hardware SKUs. This in turn creates economies of scale in manufacturing, distribution, stocking, and RMA enabling a thriving ecosystem of both network hardware and operating system alternatives.
Highlights:
Note
For the complete design, see the Design Specification.
ONIE is the combination of a boot loader and a small operating system for network switches that provides an environment for automated provisioning. ONIE utilizes the CPU complex of the switch, but not the forwarding data plane as shown in the following figure:
When a new machine boots for the first time, ONIE locates and executes an NOS vendor’s installation program, as shown here:
ONIE is not used on every boot of the system. After the initial installation, subsequent boots go straight into the NOS, bypassing ONIE. This is depicted here:
Mechanisms exist for a system to re-enter the installation phase. An API is defined so that network operating systems can direct the system to re-enter the installation phase.
ONIE uses a number of methods to locate the NOS installer, including, but not limited to:
The preferred method for image download is HTTP as it offers robust performance for large image sizes. TFTP is also supported, but its use is discouraged in favor of HTTP.
Once an image is located, ONIE proceeds to execute the NOS installer.
The following diagram illustrates an example of the location and execution steps:
In the previous diagram the “Less Exact Methods” box refers to mechanisms that use probing techniques to locate an image, such as:
When executing the installer, ONIE exports a number of environment variables for the installer to use. These variables include system identification information as well as information learned during the image discovery process.
An example of the information exported to the installer includes:
These variables allow an installer to integrate with other process automation and orchestration, immediately tying together product serial numbers, MAC addresses and NOS versions.
The installer’s responsibility is to persistently install the operating system into the hardware. In fulfilling that role an ONIE-compliant NOS installer has a lot of flexibility.
Some examples of what an installer could do:
kexec(8)
into itONIE provides an environment for the NOS to perform system provisioning and maintenance operations, including:
This environment forms an interface between ONIE and the NOS.
ONIE provides a mechanism for updating itself. This mechanism proceeds much like the network installer discovery and executing phase, but the image in this case is an ONIE update image. Once located, the ONIE update image is downloaded and executed.
ONIE provides a mechanism for updating the firmware of the machine. In this context, firmware refers to software like CPLD/FPGA code and BIOS firmware. This mechanism proceeds much like updating ONIE itself, except the image in this case is ONIE firmware update image. Once located, the ONIE update image is downloaded and executed.