NOX Introduction - noxrepo/nox-classic GitHub Wiki

Welcome to the NOX network control platform. NOX is intended to provide a programmatic platform for controlling one or more OpenFlow switches. It is an open platform for developing management functions for enterprise and home networks. NOX runs on commodity hardware and provides a software environment on top of which programs can control large networks at Gigabit speeds. More practically, NOX enables the following:

  • NOX provides sophisticated network functionality (management, visibility, monitoring, access controls, etc.) on extremely cheap switches.
  • Developers can add their own control software and, unlike standard *nix based router environments, NOX provides an interface for managing off the shelf hardware switches at line speeds.
  • NOX provides a central programming model for an entire network – one program can control the forwarding decisions on all switches on the network. This makes program development much easier than in the standard distributed fashion.
NOX can be extended both in C++ or Python and provides an abstracted interface to OpenFlow. The current version contains a set of example applications and some built in libraries which provide useful network functions such as host tracking and routing.

How does NOX work?

NOX’s control software runs on a single commodity PC and manages the forwarding tables of multiple switches.

NOX exports a programmatic interface on top of which multiple network programs (which we call applications) can run. These applications can hook into network events, gain access to traffic, control the switch forwarding decisions, and generate traffic.

NOX is able to do this in a scalable manner by operating on network flows (as opposed to every packet). For each new flow on the network, the first packet is sent to NOX which passes it to interested applications. The applications can then: determine whether (and how) to forward the flow on the network; collect statistics; modify the packets in the flow (e.g. adding a VLAN tag); or view more packets within the same flow to gain more information.

This flow-level network view provides applications with a tremendous amount of control. Applications have already been built on NOX which reconstruct the network topology, track hosts as they move around the network, provide fine-grained network access controls, and manage network history (thereby allowing reconstruction of previous network states).

Versioning

There is always two versions of NOX that are supported:

  1. master [aka] where things are relatively stable and the majority of the commits are bug fixes
  2. destiny [aka] where "random" things are committed and tried out.
Each release from unstable [aka] would be given a name on the date of release. Each release will be named after a mobile suit in the GUNDAM SEED Destiny anime (because ONIX is a pokemon). The following releases has been made:
  • Sept 15, 2010: NOX-Zaku (0.9.0)
⚠️ **GitHub.com Fallback** ⚠️