Open vSwitch

Last updated

Open vSwitch
Open vSwitch Logo.svg
Initial releaseJuly 29, 2009;10 years ago (2009-07-29) [1]
Stable release
2.12.0 [2] / September 10, 2019;8 months ago (2019-09-10)
Repository OOjs UI icon edit-ltr-progressive.svg
Written in C
Operating system Linux, Hyper-V, FreeBSD and NetBSD
Type Virtual network switch
License Apache License 2.0
Website openvswitch.org

Open vSwitch, sometimes abbreviated as OVS, is an open-source implementation of a distributed virtual multilayer switch. The main purpose of Open vSwitch is to provide a switching stack for hardware virtualization environments, while supporting multiple protocols and standards used in computer networks. [3]

Contents

The project's source code is distributed under the terms of Apache License 2.0.

Overview

Open vSwitch deployed as a cross-server virtual network switch, transparently distributed across multiple physical servers. Distributed Open vSwitch instance.svg
Open vSwitch deployed as a cross-server virtual network switch, transparently distributed across multiple physical servers.

Open vSwitch is a software implementation of a virtual multilayer network switch, designed to enable effective network automation through programmatic extensions, while supporting standard management interfaces and protocols such as NetFlow, sFlow, SPAN, RSPAN, CLI, LACP and 802.1ag. In addition, Open vSwitch is designed to support transparent distribution across multiple physical servers by enabling creation of cross-server switches in a way that abstracts out the underlying server architecture, similar to the VMware vNetwork distributed vswitch or Cisco Nexus 1000V. [4] [5] [6]

Open vSwitch can operate both as a software-based network switch running within a virtual machine (VM) hypervisor, and as the control stack for dedicated switching hardware; as a result, it has been ported to multiple virtualization platforms, switching chipsets, and networking hardware accelerators. [7] Open vSwitch is the default network switch in the XenServer virtualization platform since its version 6.0, [8] and in the Xen Cloud Platform via its XAPI management toolstack. [9] It also supports Xen, Linux KVM, Proxmox VE and VirtualBox hypervisors, while a port to Hyper-V is also available. [10] Open vSwitch has also been integrated into various cloud computing software platforms and virtualization management systems, including OpenStack, openQRM, OpenNebula and oVirt. [4] [5]

The Linux kernel implementation of Open vSwitch was merged into the kernel mainline in kernel version 3.3, which was released on March 18, 2012; [11] [12] official Linux packages are available for Debian, Fedora, openSUSE and Ubuntu. [4] As of January 2014, FreeBSD and NetBSD implementations are also available, with the NetBSD's implementation operating completely in userspace. [13] [14] [15]

The majority of the Open vSwitch source code is written in platform-independent C language, which provides easy portability to various environments. The source code is licensed under the Apache License 2.0. [4]

Features

As of September 2015, features provided by Open vSwitch include the following: [16] [17]

See also

Related Research Articles

Network interface controller hardware component that connects a computer to a computer network

A network interface controller is a computer hardware component that connects a computer to a computer network.

Xen Hypervisor

Xen is a type-1 hypervisor, providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently. It was originally developed by the University of Cambridge Computer Laboratory and is now being developed by the Linux Foundation with support from Intel.

This is a list of operating systems specifically focused on security. General-purpose operating systems may be secure in practice, without being specifically "security-focused".

Netfilter is a framework provided by the Linux kernel that allows various networking-related operations to be implemented in the form of customized handlers. Netfilter offers various functions and operations for packet filtering, network address translation, and port translation, which provide the functionality required for directing packets through a network and prohibiting packets from reaching sensitive locations within a network.

Filesystem in Userspace (FUSE) is a software interface for Unix and Unix-like computer operating systems that lets non-privileged users create their own file systems without editing kernel code. This is achieved by running file system code in user space while the FUSE module provides only a "bridge" to the actual kernel interfaces.

Link aggregation computer networking technology to increase throughput by using multiple connections in parallel

In computer networking, the term link aggregation applies to various methods of combining (aggregating) multiple network connections in parallel in order to increase throughput beyond what a single connection could sustain, and to provide redundancy in case one of the links should fail. A link aggregation group (LAG) combines a number of physical ports together to make a single high-bandwidth data path, so as to implement the traffic load sharing among the member ports in the group and to enhance the connection reliability.

FreeBSD Free Unix-like operating system

FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular open-source BSD operating system, accounting for more than three-quarters of all installed simply, permissively licensed BSD systems.

A Bluetooth stack is software that refers to an implementation of the Bluetooth protocol stack.

Kernel-based Virtual Machine Virtualization module in the Linux kernel

Kernel-based Virtual Machine (KVM) is a virtualization module in the Linux kernel that allows the kernel to function as a hypervisor. It was merged into the Linux kernel mainline in kernel version 2.6.20, which was released on February 5, 2007. KVM requires a processor with hardware virtualization extensions, such as Intel VT or AMD-V. KVM has also been ported to other operating systems such as FreeBSD and illumos in the form of loadable kernel modules.

In computing, network virtualization or network virtualisation is the process of combining hardware and software network resources and network functionality into a single, software-based administrative entity, a virtual network. Network virtualization involves platform virtualization, often combined with resource virtualization.

OpenFlow is a communications protocol that gives access to the forwarding plane of a network switch or router over the network.

NetBSD Open-source Unix-like operating system

NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was forked. It continues to be actively developed and is available for many platforms, including servers, desktops, handheld devices, and embedded systems.

Virtual Extensible LAN (VXLAN) is a network virtualization technology that attempts to address the scalability problems associated with large cloud computing deployments. It uses a VLAN-like encapsulation technique to encapsulate OSI layer 2 Ethernet frames within layer 4 UDP datagrams, using 4789 as the default IANA-assigned destination UDP port number. VXLAN endpoints, which terminate VXLAN tunnels and may be either virtual or physical switch ports, are known as VXLAN tunnel endpoints (VTEPs).

The Data Plane Development Kit (DPDK) is an Open source software project managed by the Linux Foundation. It provides a set of data plane libraries and network interface controller polling-mode drivers for offloading TCP packet processing from the operating system kernel to processes running in user space. This offloading achieves higher computing efficiency and higher packet throughput than is possible using the interrupt-driven processing provided in the kernel.

Linux kernel-based operating systems have been widely adopted in a very wide range of uses. All the advantages and benefits of free and open-source software apply to the Linux kernel, and to most of the rest of the system software.

Distributed Overlay Virtual Ethernet (DOVE) is a tunneling and virtualization technology for computer networks, created and backed by IBM. DOVE allows creation of network virtualization layers for deploying, controlling, and managing multiple independent and isolated network applications over a shared physical network infrastructure.

Pica8, Inc. is a computer networking company headquartered in Palo Alto, California, United States. Pica8 is a vendor of open-standards-based operating systems on white box network switches delivering software-defined networking (SDN) solutions for datacenter and cloud computing environments and traditional L2/L3 solutions for large enterprise customers. The company's products include a Linux-based L2/L3 and OpenFlow-supporting network operating system, PICOS, which is shipped as standalone software that can be loaded onto a range of 1/10/40/100 Gigabit Ethernet switches based on commoditized switches purchased from original design manufacturers (ODMs).

OVN

OVN is a system to support virtual network abstraction. OVN complements the existing capabilities of Open vSwitch to add native support for virtual network abstractions, such as virtual L2 and L3 overlays and security groups.

Unikernel specialised, single address space machine images

A unikernel is a specialised, single address space machine image constructed by using library operating systems. A developer selects, from a modular stack, the minimal set of libraries which correspond to the OS constructs required for their application to run. These libraries are then compiled with the application and configuration code to build sealed, fixed-purpose images (unikernels) which run directly on a hypervisor or hardware without an intervening OS such as Linux or Windows.

WireGuard is a free and open-source software application and communication protocol that implements virtual private network (VPN) techniques to create secure point-to-point connections in routed or bridged configurations. It is run as a module inside the Linux kernel and aims for better performance than the IPsec and OpenVPN tunneling protocols. It was written by Jason A. Donenfeld and is published under the GNU General Public License (GPL) version 2. The Linux version of the software has reached a stable production release and was incorporated into the Linux 5.6 release in late March 2020.

References

  1. "A complete list of Open vSwitch releases". openvswitch.org. Archived from the original on November 9, 2017. Retrieved April 2, 2014.
  2. Justin Pettit (September 10, 2019). "[ovs-announce] Open vSwitch 2.12.0 Available". openvswitch.org. Retrieved September 10, 2019.
  3. 1 2 M. Tim Jones (October 27, 2010). "Virtual networking in Linux". IBM . Retrieved April 9, 2014.
  4. 1 2 3 4 "Open vSwitch: An Open Virtual Switch". openvswitch.org. Retrieved November 24, 2013.
  5. 1 2 Thomas Graf (April 24, 2013). "Underneath OpenStack Quantum: Software Defined Networking with Open vSwitch" (PDF). Red Hat . Retrieved April 9, 2014.
  6. Ralf Spenneberg. "Virtual switching with Open vSwitch". admin-magazine.com. Retrieved April 2, 2014.
  7. "Tilera Launches Open Virtual Switch Solution (OVS) to Accelerate NFV and SDN". Marketwired. February 24, 2014. Retrieved June 22, 2015.
  8. "XenServer 6.0 Release Notes". Citrix Systems. March 8, 2012. Retrieved January 22, 2015.
  9. "XAPI: Open source software to build private and public clouds". xenproject.org. 2013. Retrieved January 22, 2015.
  10. Alessandro Pilotti (May 22, 2014). "Open vSwitch on Hyper-V". cloudbase.it. Retrieved June 22, 2015.
  11. "Linux kernel 3.3, Section 1.3. Open vSwitch". kernelnewbies.org. March 18, 2012. Retrieved April 2, 2014.
  12. Jonathan Corbet (November 30, 2011). "Routing Open vSwitch into the mainline". LWN.net . Retrieved April 2, 2014.
  13. "FreshPorts – net/openvswitch". freshports.org. December 30, 2013. Retrieved April 2, 2014.
  14. Gaetano Catalli (November 7, 2011). "Open vSwitch: performance improvement and porting to FreeBSD" (PDF). ucl.ac.be. Retrieved June 22, 2015.
  15. "openvswitch/ovs: ovs/INSTALL.NetBSD at master". github.com. January 11, 2014. Archived from the original on April 9, 2014. Retrieved April 9, 2014.
  16. "Open vSwitch: Features". openvswitch.org. Retrieved September 17, 2015.
  17. Jesse Gross (September 2013). "Programmable Networking with Open vSwitch" (PDF). linuxfoundation.org. LinuxCon . Retrieved November 24, 2013.
  18. Justin Pettit; Ben Pfaff; Ethan Jackson (November 13, 2014). "Accelerating Open vSwitch to 'Ludicrous Speed'". networkheresy.com. Retrieved May 26, 2015.
  19. Jesse Gross (August 21, 2014). "The Evolution of Open vSwitch" (PDF). events.linuxfoundation.org. LinuxCon. pp. 6, 13–17. Retrieved May 28, 2015.