Computer Network Module 6 : Software Defined Network

Computer Network Module 6 : Software Defined Network

Introduction to Software Defined Network, Fundamental Characteristics of
SDN, SDN Building Blocks, Control and Data planes, SDN Operation,
OpenFlow messages – Controller to Switch, Symmetric and Asynchronous
messages, SDN OpenFlow Controllers: PoX, NoX Architecture.

Introduction to Software Defined Network


Software-Defined Networking (SDN) is a new paradigm in network design and management that decouples the network’s control plane from its data plane. This separation of control and data enables a more flexible and programmable approach to network management, allowing for centralized control and dynamic network behavior.

Traditional Networking vs. SDN

In traditional networking, the control and data planes are tightly coupled, meaning that the devices responsible for forwarding traffic (data plane) also make decisions about how to route that traffic (control plane). This approach often leads to complex configurations, limited flexibility, and slow response times to network changes.

SDN addresses these limitations by separating the control and data planes. The control plane becomes a centralized entity, typically a software application called an SDN controller, that is responsible for making routing decisions and managing the overall network behavior. The data plane devices, such as switches and routers, simply follow the instructions from the controller, forwarding traffic according to the established policies.

Benefits of SDN

SDN offers several significant advantages over traditional networking:

  • Centralized Control: SDN provides a centralized view and control of the entire network, making it easier to manage and respond to changing network demands.
  • Programmability: SDN enables network behavior to be defined and modified through software, allowing for automation, customization, and rapid adaptation to new requirements.
  • Flexibility: SDN’s decoupled architecture allows for the integration of diverse network devices and technologies, providing greater flexibility in network design and deployment.
  • Innovation: SDN’s open and programmable nature fosters innovation in network management, enabling the development of new applications and services that can leverage the network’s capabilities.

SDN Components

The key components of SDN architecture include:

  • SDN Controller: The SDN controller is the central intelligence of the SDN network, responsible for making routing decisions, managing network policies, and communicating with data plane devices.
  • SDN-Enabled Network Devices: SDN-enabled devices, such as switches and routers, have the ability to interact with the SDN controller and implement its instructions. They provide the data plane functionality of the network.
  • OpenFlow Protocol: OpenFlow is a standardized protocol used for communication between the SDN controller and SDN-enabled network devices. It allows the controller to configure and control the behavior of the data plane devices.

SDN Applications

SDN has a wide range of applications, including:

  • Data Center Networking: SDN is widely used in data centers to provide flexible and scalable network management for virtualized workloads and cloud computing environments.
  • SDN-WAN: SDN can be applied to Wide Area Networks (WANs) to optimize traffic routing, reduce costs, and improve network performance.
  • Campus Networks: SDN can be implemented in campus networks to simplify management, enhance security, and support emerging technologies like IoT and wireless devices.
  • SDN for Network Security: SDN can be used to implement centralized security policies, segment networks for better isolation, and enable dynamic threat detection and mitigation.
  • SDN for Network Automation: SDN enables automation of network configuration, provisioning, and troubleshooting tasks, reducing the burden on network administrators and improving operational efficiency.

Fundamental Characteristics of SDN

  1. Decoupled Control and Data Planes: SDN separates the network’s control plane, responsible for routing decisions and network policy management, from the data plane, responsible for forwarding traffic according to those decisions.
  2. Centralized Control: SDN provides centralized control of the network through an SDN controller, a software application that manages network policies and communicates with data plane devices.
  3. Programmability: SDN enables network behavior to be defined and modified through software, allowing for automation, customization, and dynamic network adaptation.
  4. Openness: SDN promotes the use of open protocols and interfaces, such as OpenFlow, fostering interoperability and innovation among SDN components.
  5. Abstraction: SDN abstracts the underlying network hardware, allowing applications and network administrators to define network policies and configurations without being tied to specific hardware implementations.
  6. Visibility: SDN provides greater visibility into network traffic and performance through centralized monitoring and analytics capabilities.
  7. Scalability: SDN’s centralized architecture and programmability enable it to effectively manage large and complex networks.
  8. Agility: SDN allows for rapid and dynamic network changes to adapt to new requirements and traffic patterns.
  9. Security: SDN enables centralized security policy enforcement, intrusion detection, and threat mitigation across the network.

SDN Building Blocks

The Software-Defined Networking (SDN) architecture is a three-layered model that separates the network’s control plane from its data plane. This separation allows for centralized control and dynamic network behavior, making SDN a more flexible and programmable approach to network management.

1. Application Layer

The application layer is the top layer of the SDN architecture and is responsible for providing network services and applications to end users. It includes network applications such as firewalls, load balancers, and intrusion detection systems. Applications communicate with the control layer through northbound APIs (Application Programming Interfaces) to define and manage network policies.

2. Control Layer

The control layer is the central intelligence of the SDN architecture and is responsible for making routing decisions, managing network policies, and controlling the behavior of the data plane. It resides in an SDN controller, which is a software application that acts as the brain of the SDN network. The control layer communicates with the application layer through northbound APIs and with the data plane through southbound APIs (OpenFlow protocol).

3. Infrastructure Layer

The infrastructure layer is the bottom layer of the SDN architecture and is responsible for forwarding traffic according to instructions from the control plane. It consists of network devices such as switches, routers, and access points. These devices are SDN-enabled, meaning they have the ability to interact with the SDN controller and implement its instructions.

Northbound and Southbound APIs

Northbound APIs provide a standardized interface for applications to interact with the control layer and define network policies. Common northbound APIs include RESTful APIs and NETCONF. Southbound APIs, such as OpenFlow, provide a standardized interface for the control layer to communicate with and control the data plane devices.

Benefits of SDN Architecture

The SDN architecture offers several advantages over traditional networking:

  1. Centralized Control: SDN provides a centralized view and control of the entire network, making it easier to manage and respond to changing network demands.
  2. Programmability: SDN enables network behavior to be defined and modified through software, allowing for automation, customization, and rapid adaptation to new requirements.
  3. Flexibility: SDN’s decoupled architecture allows for the integration of diverse network devices and technologies, providing greater flexibility in network design and deployment.
  4. Innovation: SDN’s open and programmable nature fosters innovation in network management, enabling the development of new applications and services that can leverage the network’s capabilities.

Control Plane

The control plane is responsible for exchanging routing information, building the ARP table, etc. Here are some tasks that are performed by the control plane:

  • Learning MAC addresses to build a switch MAC address table.
  • Running STP to create a loop-free topology.
  • Building ARP tables.
  • Running routing protocols like OSPF, EIGRP, and BGP and building the routing table.

Data Plane

The data plane is responsible for forwarding traffic. It relies on the information that the control plane supplies. Here are some tasks that the data plane takes care of:

  • Encapsulate and de-encapsulate packets.
  • Adding or removing headers like the 802.1Q header.
  • Matching MAC addresses for forwarding.
  • Matching IP destinations in the routing table.
  • Change source and destination addresses when using NAT.
  • Dropping traffic because of access-lists.

The tasks of the data plane have to be performed as fast as possible which is why the forwarding of traffic is performed by specialized hardware like ASICs and TCAM tables.

CriteriaControl PlaneData Plane
FunctionMakes decisions about where traffic should go.Responsible for actually forwarding the traffic.
LocationTypically centralized in an SDN controller.Distributed across network devices (switches).
IntelligenceHosts network intelligence and logic.Performs the actual packet forwarding.
ProgrammabilityHighly programmable. Can be adjusted dynamically.Less programmable, as its role is fixed in forwarding packets based on established rules.
ResponsivenessCan quickly adapt to changing network conditions.Reacts to the decisions made by the control plane.
CommunicationCommunicates with SDN switches using protocols like OpenFlow.Listens to commands from the control plane and forwards traffic accordingly.
ManagementManages network policies, configurations, and overall network behavior.Executes the forwarding instructions received from the control plane.
Dynamic ChangesAllows for real-time adjustments and policy updates.Operates based on the established rules and does not dynamically change configurations.
Location IndependenceCan be located remotely from the network devices.Inherently tied to the physical or virtual network devices where it resides.

SDN Operation

The basic operation of SDN involves the following steps:

  • Network Discovery: The SDN controller discovers the network topology and identifies SDN-enabled network devices.
  • Policy Installation: The SDN controller installs network policies and configurations onto the SDN-enabled network devices.
  • Traffic Flow Management: The SDN controller monitors network traffic and makes decisions about how to route traffic based on the installed policies.
  • Policy Enforcement: SDN-enabled network devices receive and enforce the network policies, enabling the controller to control network behavior.

OpenFlow messages – Controller to Switch

OpenFlow messages are the primary means of communication between the SDN controller and SDN-enabled network devices. These messages are used to manage the network, configure data plane devices, and control network traffic.

Controller-to-Switch Messages: These messages are initiated by the SDN controller and instruct the data plane devices on how to handle traffic. Examples include Flow Mod messages for installing forwarding rules and Packet Out messages for handling specific packets.

Symmetric and Asynchronous messages

OpenFlow messages can be either symmetric or asynchronous:

  1. Symmetric Messages: These messages require a response from the recipient, ensuring reliable communication between the controller and data plane devices. Examples include Packet Out messages and Error messages.
  2. Asynchronous Messages: These messages do not require a response, allowing for faster communication and reduced overhead. Examples include Flow Mod messages and Port Status messages.

SDN OpenFlow Controllers: PoX, NoX Architecture

POX (Programmer’s OpenFlow Experiment)

POX is a lightweight, Python-based SDN controller that is well-suited for experimentation and prototyping. It provides a high-level SDN API and includes reusable components for path selection, topology discovery, and other network management tasks. POX is relatively easy to learn and use, making it a popular choice for students and researchers.

Key Features of POX:

  • Lightweight and easy to use
  • Python-based, making it accessible to a wide range of developers
  • Rich ecosystem of third-party modules and extensions
  • Supports virtual networking and cloud computing scenarios

NOX Architecture

NOX is a more mature and feature-rich SDN controller written in C++. It offers a modular architecture that allows for plug-and-play addition of new components and protocols. NOX provides a comprehensive set of features for network management, including topology discovery, routing, and traffic engineering.

Key Features of NOX:

  • Modular architecture for flexibility and extensibility
  • C++-based for high performance and scalability
  • Comprehensive set of network management features
  • Supports multiple protocols, including OpenFlow, NETCONF, and BGP

Comparison of POX and NoX

FeaturePOXNoX
LanguagePythonC++
Learning CurveEasyModerate
SuitabilityExperimentation, prototypingProduction environments
PerformanceModerateHigh
ScalabilityModerateHigh
Feature SetBasic network managementComprehensive network management

Other Modules

http://www.doubtly.in/blog/computer-network-mu-syllabus-module-1-important-topic/
http://www.doubtly.in/blog/computer-network-module-2-physical-and-data-link-layer/
http://www.doubtly.in/blog/computer-network-module-3-network-layer-sem-5/
http://www.doubtly.in/blog/computer-network-module-4-transport-layer-and-application-layer-sem-5/
http://www.doubtly.in/blog/computer-network-module-5-enterprise-network-design/
http://www.doubtly.in/blog/computer-network-module-6-software-defined-network/

References :

https://networklessons.com/cisco/ccna-routing-switching-icnd2-200-105/introduction-to-sdn-software-defined-networking#Control_Plane