Four open source networking projects explained
Mon 2 Feb 2015
Alex Henthorn-Iwane, VP of Marketing at QualiSystems, provides a brief overview of the four major open source networking initiatives…
Open source projects and protocols have huge potential for networking. Initiatives such as OpenStack and OpenDaylight have attracted the attention both of end-users, as evidenced by the Open Networking User Group (ONUG), major vendors participating in OpenDaylight, OpenFlow and OpenStack, and telecoms creating their own open source efforts like the Open Networking Lab.
Open networking standards are influencing network engineering as well as telecom and IT strategy. At a high level, it’s fair to say that due to the influence of open networking initiatives, the networking world is moving from a fixation on standards and reliability uber alles, to a focus on APIs, DevOps automation and business agility.
Open vSwitch (OVS)
Open vSwitch is a virtual switch licensed under the open source Apache 2.0 license that provides virtual switching for multi-server Linux-based hypervisors. Like VMWare’s vNetwork Distributed Switch (vDS) and the Cisco Nexus 1000v, OVS is designed for multi-server virtualization environments where there may be a high degree of network endpoint (VM) movement between different hosts. OVS has a rich feature set including:
• The ability to configure and migrate slow and fast network state between virtual switch instances on different hosts
• Standard management interfaces and protocols like NetFlow, sFlow, IPFIX, RSPAN, CLI, LACP, 802.1ag, etc.
• Both logical tagging and GRE tunnel methods for maintaining logical network domain contexts
• OpenFlow control plane integration
• A network state database (OVSDB) with remote triggers for orchestration support
• Support for forwarding plane offloading to hardware switching chipsets in NICs or external switches
OVS is the default switch in XEN, supports KVM, and is integrated into OpenStack. Its kernel datapath is distributed with Linux and is supported by FreeBSD and NetBSD.
The OpenFlow is a software-defined networking (SDN) standard managed by the Open Networking Foundation (ONF), which specifies the control of the forwarding plane operating on OpenFlow-compatible switches. OpenFlow is an important standard for establishing a SDN architecture, in which the control and data/forwarding planes are decoupled, and network intelligence and state are logically centralized (though not necessarily centralized on a single controller) so that northbound applications can deal with the underlying network infrastructure in an API-abstracted manner. OpenFlow specifies a southbound protocol between controller and switch, and defines the components and functions of an OpenFlow logical switch. The OpenFlow switch specification details how to communicate with the controller; manage forwarding plane processing of packets through a pipeline of flow tables that contain flow entries with priority-based match criteria, counters; and give instructions for packet forwarding, modification, and further pipeline processing by another flow table or via a group table. While OpenFlow has advanced considerably in specifying the southbound protocol and switch functionality, the northbound interface (NBI) is still a work in progress.
The Linux Foundation manages OpenDaylight, which is focused on being a SDN control layer. It provides a service abstraction model that includes services for conveying topology information, data packet delivery to northbound applications, flow programming, flow and other statistics, node and connection inventory, and resource status information.
The service abstraction model allows the OpenDaylight controller (which runs on a Java Virtual Machine) to support many southbound SDN approaches via plug-ins, and to provide a consistent northbound API to business applications via the OSGi framework and bidirectional REST. Southbound SDN technologies supported include BGP Path Computing Element Protocol (PCEP), LISP, OpenFlow, OVSDB, PacketCable DOCSIS, and Yang tools. OpenDaylight can integrate with OpenStack via its modular layer 2 (ML2) services plug-in.
OpenStack is a cloud computing platform managed by the OpenStack Foundation. OpenStack has multiple service components to build an Infrastructure as a Service (IaaS) cloud such as compute (Nova), object storage (Swift) and block storage (Cinder).
OpenStack Neutron is its networking services component that aims to provide “networking as a service” between interfaces managed by other OpenStack services such as Nova. Neutron provides an API that allows the construction of any type of network topology based on anything from standard network concepts like VLANs, to SDN via OpenFlow or VXLAN overlay tunnels. Neutron also provides IP Address Management (IPAM) functions. Neutron provides an extensible plug-in architecture for the integration of advanced network services, and provides reference plug-in drivers for load balancers, firewalls, and modular layer 2 (ML2) services. Available Neutron plug-ins include support for networking controllers and services from Big Switch, Brocade, Cisco, IBM, Juniper, Mellanogx Midokura, NEC, Nuage, OpenDaylight, OpenFlow, Open vSwitch, PlumGrid and VMWare and others.
There is much exciting development around open networking standards. Developed for cloud models, they largely assume new, virtualized infrastructure or propose how to virtualize networks over existing physical networking gear. There are many different use cases being hashed out, but investment and adoption is gaining, signaling that networking is steadily moving in a more open, programmable direction.