Skip to main content

What is OpenFlow?

OpenFlow is an open standard communications protocol that allows software-defined networking (SDN) on network devices by separating the control plane from the data plane. With OpenFlow, users can control network traffic through software-defined network switches. The OpenFlow standard was one of the foundational standards in launching SDN. Organizations use OpenFlow to manage network behavior dynamically, implement flexible routing policies, and automate network configuration without modifying hardware.

Why is OpenFlow important?

OpenFlow is one of the core protocols first used in software-defined networking, handling the controller and switch communications. This protocol was created as a project within Stanford University, then managed by the Open Networking Foundation, but is now managed by the Linux Foundation. OpenFlow is vendor-neutral, interoperating with hardware switch suppliers that support the protocol.

OpenFlow allows network programmability through flow table manipulation, with flow tables distributed by centralized control to the appropriate switches. A flow table dictates how to send packets across a network, and contains IPs, ports, and rules for delivery. With these flow tables, each switch knows where to send a packet next. If a packet arrives that doesn't match the details in the flow table, it is sent to the controller for inspection and direction on what to do next.

Although OpenFlow is now typically abstracted or replaced by other protocols, it remains historically significant in SDN.

How does OpenFlow work?

The OpenFlow protocol allows hardware switches to be controlled by software-defined networking, coordinated by a separate control plane. An OpenFlow-compatible software-defined controller has a communication channel to the OpenFlow switches by a southbound API. The controller takes data from a northbound API from software-defined network applications, such as routing and load balancing, to send instructions to the switches. Similarly, the switches can report on the state of the network to the controller, and the controller passes information to the network applications to decide what to do next.

What are the key components of OpenFlow?

There are four main components required for OpenFlow operations.

OpenFlow controller

The OpenFlow controller is a software-defined, centralized control layer that keeps track of the state of the entire network. The controller can be built as a distributed system to maintain fault tolerance. Controllers are produced by a range of different vendors, including the open source Floodlight controller and OpenDaylight controller.

The controller communicates with the hardware switches and with SDN applications, such as firewalls, routers, and load balancers, that perform specific jobs in network traffic control.

OpenFlow switches

Hardware-based switches that support the OpenFlow protocol are programmable in the data plane. The control plane sends messages and flow tables to the switches so that they can perform accurate network packet processing and forwarding decisions. Using OpenFlow, you can manage hardware switches from multiple vendors with the same protocol.

Secure channel

OpenFlow requires a secure channel for communication between the controller and the switches. This channel is where the OpenFlow protocol messages are relayed. Messages can include querying of switch features, configuration of the switch, data forwarding a packet to send to or from the controller, or a message to modify flow tables.

Flow tables

Flow tables are distributed to switches and installed on the devices. The controller can send messages to the switches to add, delete, or modify these tables. The switch uses the flow tables for traffic control. Each flow entry contains match fields, priority values, counters, and timeout values. When packets come into the switch, they match the flow entry and perform the associated actions.

What are the capabilities of OpenFlow?

Like other SDN protocols, OpenFlow offers many capabilities over traditional network management.

Dynamic flow control

With an external, centralized controller, you can use OpenFlow to perform network operations as issues arise. These can include load balancing, path optimization, and rerouting, based on network status.

Network programmability

Network engineers can create custom forwarding rules, policies, and network configurations, passing these on to the switches. This allows the network to be programmable on an ad-hoc basis.

Traffic engineering

Depending on the controller and flow table availability, you can use the OpenFlow protocol to perform traffic engineering tasks such as quality of service enforcement and latency optimization.

Network virtualization

The control plane allows you to perform network virtualization across all the devices it controls. This means that you can create, configure, and delete virtual networks as needed.

What is the difference between OpenFlow and NETCONF?

NETCONF is a protocol designed for managing network devices, including the addition, configuration, or deletion of switches or other devices. NETCONF can also be used in SDN operations.

While NETCONF is commonly used for network device configuration, it can be used alongside OpenFlow, which handles traffic management across the network.

In many modern, cloud-based SDN tools, protocols such as OpenFlow and NETCONF are selectable options or already built into the tool.

How can AWS support your software-defined networking requirements?

AWS offers modern software-defined networking services that can help with programmable, flexible network control for your cloud and hybrid infrastructure:

  • AWS Cloud WAN provides a central dashboard for making connections between your branch offices, data centers, and Amazon Virtual Private Clouds (Amazon VPCs)—building a global network with only a few clicks.
  • AWS Transit Gateway connects your Amazon Virtual Private Clouds (VPCs) and on-premises networks through a central hub. This connection simplifies your network and puts an end to complex peering relationships.
  • Amazon Virtual Private Cloud (VPC) gives you full control over your virtual networking environment, including resource placement, connectivity, and security.

Get started with software-defined networking on AWS by creating a free account today.

Browse all cloud computing concepts

Browse all cloud computing concepts content here:

Loading
Loading
Loading
Loading
Loading

Did you find what you were looking for today?

Let us know so we can improve the quality of the content on our pages