ONIE with Dell S-4048-ON

The Dell S-4048T-ON

This system is a baremetal switch that in our case came preinstalled with Dell OS9 and ONIE.

On this hardware, several Network Operating Systems from different vendors can be installed, for example:

  • Cumulus Linux
  • Big Switch Networks Switch Light OS
  • Dell OS9
  • Dell OS10 (in the future)
  • OpenNetworkLinux

The switch itself is a low latency 48 X 10GbE + 6 X 40 GbE platform, aiming primarily at datacenter use cases.

When we started the switch up, its boot process did not differ from any vendor provided traditional closed system, and the switch drops you to a standard prompt as you would expect.

Dell#?

bmp BMP commands

cd Change current directory

clear Reset functions

clock Manage the system clock

configure Configuring from terminal

crypto Crypto Commands

copy Copy from one file to another

debug Debug functions

Here you will find all the features expected by a modern switch of this type, just to name a few:

    • VRF-lite to share the network infrastructure
    • VXLAN gateway
    • 1:4 local mirroring, Remote Port Mirroring
    • Jumbo frames
    • 128 link aggregation groups
    • VLAN Tagging and double Tagging
    • OSPF
    • BGP
    • Multicast
    • IPv6

One can see that Dell's OS9 covers everything that traditional vendors cover in their devices.

This changes when we reboot the switch. At one point, it will display the following screen, and pressing escape brings us the options to access the bootloader environment:

ONIE is a part of the Open Compute Project, and provides a standardized install environment for the different Network OS products that can run on this platform. It is an open source project lead by the OCP that was started by Cumulus Networks. We will describe ONIE more in detail later.

This is the screen presented after esc was pressed.


The interesting part for us at this point is the ONIE option, selecting this presents us with the different functions ONIE provides

This menu allows us now to fully control and install / uninstall the NOS on the switch. It also allows to update ONIE itself, and this is where the flexibility of this device comes into play.

The different options represent the following behavior:

    • Install OS: start the firmware discovery process
    • Reinstall: Remove currently installed OS and return to the “out of box” provisioning state Uninstall: Completely wipe out everything, except ONIE
    • Rescue: Reboot box into ONIE for repair, debug and forensics
    • Update: Install a new ONIE version
    • Diag: Run HW Vendor’s diag (optional)

ONIE provides several ways to install a new OS, which are tried one after another by a discovery process. It also allows to update itself, and a CLI to control the behavior.

The install process is standardized, and in a nutshell works this way:

Step one is trying to configure the network connection:

    • Tries to configure the network interface:
      • First method is through a static configuration
      • Then DHCP is tried to acquire an address
      • Last method is using an link local / APIPA address (169.254.0.0)
      • Configures DNS and hostname

Step two is trying to find the location of an installer executable

    • Examines local file systems, e.g. USB flash drives
    • Uses DHCP options, DNS Service Discovery, Multicast DNS and IPv6 Neighbors to locate the firmware file on the network
    • The supported DHCP options for passing the location of the installer image to the switch are:
      • 60 – Vendor Class Identifier
      • 77 User Class
      • 125 Vendor-Identifying Vendor-Specific Information
      • 55 Parameter Request List

If one of these methods is successful, ONIE start to install the image

    • The image first is downloaded onto the device
    • ONIE passes various environment variables to installer
    • Then the installer is executed, and takes over from there

This is in theory how things work, in our next blog post we will go step by step through the process of installing a new NOS onto this hardware platform.