Chapter 2. Introduction to Software-Defined Networking
As mentioned in the previous chapter, businesses and enterprises are moving towards newer architectures for building and deploying applications. With technologies such as virtualization and containerization, it is possible to rapidly deploy complex and highly scalable applications within an enterprise or on a public cloud or both.
Common IT applications require compute, storage, and networking resources. Traditionally, the server and storage infrastructure was installed and configured by system administrators and then separately, network administrators used to connect the servers and configure the network. This silo-based approach does not scale for today's on-demand and highly automated application deployment needs. Moreover, the traditional network architecture was designed for more static application environment, whereas flexibility is the need of the hour now.
This is where SDN comes into the picture. SDN makes the network infrastructure easier to manage and integrate with the server and storage infrastructure. As a result, the resources needed for application deployment can be provided in an agile yet flexible manner.
Let's now look at the definition of SDN. The Open Networking Forum (ONF) defines SDN as follows:
"Software-Defined Networking (SDN) is an emerging architecture that is dynamic, manageable, cost-effective, and adaptable, making it ideal for the high-bandwidth, dynamic nature of today's applications. This architecture decouples the network control and forwarding functions enabling the network control to become directly programmable and the underlying infrastructure to be abstracted for applications and network services. The OpenFlow protocol is a foundational element for building SDN solutions."
The ONF definition specifically talks about the OpenFlow protocol and the decoupling of control and forwarding functions. But the key message in the definition is that SDN must support dynamic applications. It is possible to implement SDN using other protocols and technologies to meet the same goal.
In the rest of this chapter, we will delve deeper into SDN and show how OpenStack and SDN are related. We will cover the following topics in this chapter:
- Components of traditional networks
- Challenges faced by traditional networks
- SDN reference architecture
- SDN and OpenStack
Components of traditional networks
Let us start our deep dive into SDN by looking at the components of a network device. Networking functionality can be broadly classified into three planes. These are as follows:
- Data plane: The act of moving bits that constitute the packet from an incoming port to an outgoing port is the responsibility of the data plane. This is also known as the forwarding plane. For example, in Ethernet switches, packets coming in from one port are forwarded out via one or more of the remaining ports.
- Control plane: Using the previous example, to forward the packet to the correct outgoing port, the data plane may need additional information. In the case of Ethernet switches, the outgoing port is identified using the destination MAC address learnt by the switch. This act of learning and building awareness about the network is the responsibility of the control plane. The control plane learns and gathers information about the network using various protocols. In a switch, network loops are detected using the spanning tree protocol. In routing, the OSPF protocol helps in learning network topology. The important thing here is that the data plane leverages the information built by the control plane.
- Management plane: While networks do their job of processing and forwarding data traffic, it is important to monitor their health and configure them to suit your needs. This ability to manage and control a networking device is the responsibility of the management plane. The common mechanisms to manage networks include the command-line interface (CLI), SNMP protocol, and so on. RESTful API using HTTP has gained in popularity as a management plane protocol recently. Usually, network administrators are the end users of management plane capabilities.
The following diagram depicts the three planes of networking. The management plane is represented by the operator. The control plane encompasses more than one networking device, whereas the scope of data plane functions is limited to each networking device:
Figure 1: Networking planes.
Key aspects of the networking planes
In order to understand the driving factors behind SDN, it is important to understand some key aspects of the three planes of networking:
- Forwarding decisions are made locally within a networking device and those decisions are based on the control plane.
- The actual act of forwarding packets must be really fast, to meet the network performance requirements. This is implemented using specialized ASIC-based hardware, and implies that data plane entities exist on each physical networking device.
- Control plane learning involves more than one networking devices such as switches and routers for most common scenarios. It is comparatively much slower than the forwarding plane.
- All networking devices must support standard protocols in order for accurate learning of network topology, connectivity, and the related information. This in turn means that control plane entities must exist on each device.
- In multi-vendor situations, control plane and management plane inter-operability is crucial for smooth functioning of networks.
- Parts of management plane protocols such as SNMP are required to run on the networking devices. Nevertheless, the most critical aspect of management is the centralized functions provided by Network Management Systems (EMS and NMS).