Software Defined Networking (SDN) is an approach to designing, building, and managing computer networks. Unlike traditional networking methods that rely on distributed management, SDN allows network administrators to manage and configure network devices and services through a centralized controller. This centralization is achieved by separating the control plane from the data plane, which provides greater flexibility, scalability, and manageability of the network.
SDN is a key enabler of digital transformation, allowing organizations to respond quickly to changing business needs and innovate faster. It provides a platform for network administrators to create customized network services and applications, integrating them seamlessly with other IT systems and services.
What is an SDN controller?
If you’re exploring Software-Defined Networking (SDN), you’ve probably heard about the SDN controller - a central component of SDN architecture that provides control over the network elements within the managed domain.
In networking, there are three basic functionality planes:
An SDN controller brings the Management and Control Plane functionalities together in one place. This means that an SDN controller, based on network information and a set of predefined rules and policies, manages the network elements and configures (“programs”) the Data Plane to direct data flow across the entire network effectively.
One of the key benefits of using an SDN controller is that it allows more efficient network management. Instead of manually configuring each individual network device, changes to the network configuration can be applied from a central location, saving time and reducing the risk of errors. Additionally, an SDN controller can automate certain tasks, such as traffic management and security, which helps reduce the risk of human error and improves the overall reliability of the network.
SDN controllers also offer an API (Application Programming Interface), often referred to as a northbound interface, that enables external applications or systems, such as orchestration platforms, to interact with the network. In such cases, an SDN controller translates the application’s layer requirements (e.g. high-level description of the network configuration) into a configuration specific to the supported network elements.
SDN controllers can manage both physical network devices and software components that execute network functions. Their main functions include:
- Managing the flow of data in the managed network.
- Providing an API for applications and other components (e.g. orchestration platforms) to interact with the network.
- Providing visibility into the network, allowing monitoring of network performance and detection of problems.
- Automating network management tasks, such as provisioning new network elements and reconfiguring network paths.
How do software defined networking controllers work?
An SDN controller is a logically centralized entity. However, it can also support architectures involving multiple controllers, hierarchical connections, or federated setups. Typically, it is implemented as a software application running on a single server or a cluster of servers.
An SDN controller communicates with various network devices (like switches and routers) or software components (which implement network functions) through its southbound interfaces, such as an API or standardized/proprietary protocols. Examples of protocols used by SDN controllers include OpenFlow, Open vSwitch (OVS) database, NETCONF, P4RT (P4Runtime - protocol-independent runtime APIs for a P4-defined or P4-described data plane), and XMPP (Juniper Contrail). Additionally, routing protocols like OSPF and EIGRP are integrated to create efficient routing tables essential for data forwarding.
SDN Controller architecture
An SDN controller is a critical component of an SDN architecture, responsible for managing the flow of traffic across the network. It acts as a centralized device that contains the control plane of all network devices, allowing it to manage the data plane of these devices simultaneously. Typically implemented as a software application running on a server or a cluster of servers, the SDN controller architecture consists of several key components:
-
Control plane
This component is responsible for managing the flow of traffic across the network. It receives information from the network devices and uses this data to make decisions about how to forward traffic.
-
Data plane
The data plane is tasked with forwarding traffic across the network. It operates based on the instructions received from the control plane.
-
Southbound interface
This software interface facilitates communication between the SDN controller and the network devices. It allows the controller to manage the data plane of the devices effectively.
-
Northbound interface
This software interface connects the SDN controller with the applications and services that utilize the network. It enables these applications to request network services and receive information about the network.
Vendor and open-source SDN controllers
There are both proprietary and open-source SDN controllers available on the market. Below are a few examples of each.
Vendors offering SDN controllers:
- Cisco
- Juniper Networks
- VMware
- Nokia
Open-source SDN controller options:
- OpenDaylight
- ONOS (Open Network Operating System)
- Tungsten Fabric (open-source version of Juniper Contrail)
Whether you choose a proprietary or open-source SDN controller depends on your specific network needs, but both options offer powerful solutions for managing and optimizing modern networks. An SDN controller platform provides a modular and flexible approach, allowing various network tasks such as monitoring, analytics, and device management to be performed through pluggable extensions.
SDN controller benefits for network infrastructure
The deployment and integration of an SDN controller into a network may bring many benefits: Network operators benefit from new design, deployment, and management approaches enabled by SDN, facilitating innovation and cost reductions in network services.
- Provides a single, unified interface that allows network administrators and external applications (such as orchestration platforms) to configure, manage, and interact with the network.
- Increases network automation by enabling the SDN controller to automate network management and configuration tasks.
- Optimizes usage of resources. Thanks to information covering the whole managed network domain, an SDN controller can optimize packet paths to achieve better network efficiency.
- Enhances network resilience by enabling faster responses to changes in the network and the ability to quickly establish alternative paths.
- Enables management of physical network devices and software-based network elements.
Summary
In conclusion, an SDN controller centralizes network management, automates tasks, and optimizes resources for greater efficiency and resilience. Whether proprietary or open-source, SDN controllers enhance network operations and improve flexibility and scalability in modern networks.