Hon Notes Unit 1 and Unit 2
Hon Notes Unit 1 and Unit 2
1. Introduction to SDN
In the last few decades, computer networks have become an essential part of modern life.
However, the explosive growth of internet traffic, adoption of cloud computing, IoT
devices, and virtualization technologies have created new challenges for traditional
networking approaches.
In traditional networks, the control plane (decision-making) and the data plane (forwarding)
are tightly integrated into the same device, such as routers and switches. This makes networks
complex, vendor-dependent, and hard to scale.
SDN breaks this dependency by moving the control logic to a centralized SDN controller and
allowing network devices to act as simple packet-forwarding hardware. The controller
communicates with these devices through standardized protocols like OpenFlow.
Limitations of Traditional Networks
● Centralized Control: The SDN controller manages the entire network from a single
point.
● Vendor Independence: Uses open standards like OpenFlow, making devices from
different vendors interoperable.
● What it is:
The topmost layer where network applications and business logic run.
● What it is:
The brain of the SDN — the SDN controller.
● Function:
○ Translates application requirements into network instructions.
● What it is:
The physical or virtual network devices (switches, routers) that forward traffic.
● Role:
● Key Protocol: OpenFlow is the most common protocol for control-data communication.
●
APIs in SDN
● Northbound APIs:
Connect the application plane to the control plane. They allow applications to request
services from the controller (e.g., REST API).
● Southbound APIs:
Connect the control plane to the data plane. They send instructions to switches/routers
(e.g., OpenFlow, NETCONF).
Advantages of SDN
1. Centralized network management.
8. Disadvantages of SDN
1. Controller is a single point of failure.
5.
Networking is the process of connecting multiple computing devices to exchange data, share
resources, and enable communication. Over the last few decades, networking has evolved from
simple, static point-to-point connections to highly dynamic, software-controlled architectures that
power modern applications such as cloud computing, IoT, and AI.
Understanding the Data Plane
Definition
The Data Plane (also called the Forwarding Plane) is the part of a network device responsible
for actually moving user traffic (data packets) from one interface to another based on the
rules and instructions set by the Control Plane.
Definition
In Software-Defined Networking (SDN), the Data Plane (also called the Forwarding Plane)
is the component responsible for forwarding packets according to rules provided by the
centralized SDN controller.
Unlike in traditional networks—where the control and data planes are integrated into each
device—SDN separates them, placing decision-making (control) in a central controller and
leaving the data plane to focus purely on high-speed packet handling.
Key Role in SDN
● Executes the instructions sent from the SDN Control Plane via standardized protocols
such as OpenFlow.
● Works without making independent routing decisions; all logic comes from the controller.
●
○ Flow tables can be updated dynamically by the controller without manual device
CLI configuration.
○ Data plane devices (often called SDN switches) do not run complex routing
algorithms; they just follow installed flow rules.
● Counters – Record statistics like packet count, byte count, and flow duration,
reported back to the controller.
● Ports & Interfaces – Physical or virtual connections to send/receive traffic.
○ The data plane checks if there is a matching flow entry for the packet
(based on IP, MAC, VLAN, TCP port, etc.).
○ The packet (or just its header) is sent to the SDN controller for a decision.
○ The controller installs a new rule into the switch’s flow table.
Definition
In Software-Defined Networking (SDN), the Control Plane is the component responsible
for making decisions about how network traffic should flow.
It determines the routing, forwarding, and security policies for data packets, then
communicates these decisions to the Data Plane for execution.
● Traditional Networks: Control Plane logic (e.g., routing protocols like OSPF, BGP)
runs inside each switch or router individually.
● SDN: Control Plane is centralized in a software-based SDN Controller, which has a
complete view of the entire network.
Key Features
● Global Network Knowledge: Knows the state of every device, link, and flow.
Workflow Example
○ Collects statistics (packet counts, byte counts, link usage) for analytics and
optimization.
Introduction to the Management Plane
Definition
The Management Plane is the part of a network device or architecture responsible for
network administration, configuration, monitoring, and control operations.
While the Control Plane decides where traffic goes and the Data Plane moves it, the
Management Plane is where network administrators interact with and manage devices.
Key Functions
○ Defining global network policies (e.g., security rules, QoS) and distributing
them to devices.
● Since it gives full control over devices, it’s a high-value attack target.
● Best practices:
○ Use encrypted protocols (SSH, HTTPS) instead of Telnet/HTTP.
● Control Plane: Determines where traffic is sent. Managed by the SDN Controller.
● Data Plane: Forwards packets according to the rules given by the Control Plane.
In traditional networks, these two planes are tightly integrated into the same device (like
a router or switch). In SDN, the data plane becomes a programmable forwarding layer,
making the network more flexible, dynamic, and easy to manage.
The SDN Data Plane (also known as the forwarding plane) is the physical or virtual
networking hardware responsible for handling and forwarding packets according to flow
rules sent by the controller.
●
OpenFlow Protocol
OpenFlow is the first standard communication interface defined between the control
plane and the data plane of a Software Defined Network (SDN).
It allows network controllers to determine the path of network packets across a network
of switches.
In traditional networks:
● The control plane (routing decisions) and data plane (forwarding of packets) are
located inside the same network device.
2. The switch looks into its flow table — no matching entry is found.
4. The controller decides what to do (e.g., forward, drop, modify) and sends a
Flow-Mod message to install a new rule in the switch.
5. The switch applies the action to the current packet and stores the rule for future
packets of the same flow.
Pros:
Cons:
● Slower for the first packet (extra delay while controller decides).
9+
2. What Does “Proactive” Mean in SDN/OpenFlow?
A proactive flow is created before any packet arrives, usually during network initialization
or based on known traffic patterns.
1. Controller already knows what kinds of flows will be common (e.g., ARP, DNS,
HTTP traffic).
3. When packets arrive, the switch matches them instantly without contacting the
controller.
Pros:
Cons:
● Uses more switch memory (installing rules that might not be used).
2. Counters – Track statistics about packets that match this flow.
3. Actions – Specify what should be done with packets that match.
1. Header Fields
Header fields define the matching criteria for incoming packets.
When a packet arrives, the OpenFlow switch compares the packet’s header values
against the flow entries' header field values to find a match.
These fields can be exact matches, wildcarded (ignored), or partially masked.
Counters
Counters store statistics for each flow entry. They are automatically updated by the
OpenFlow switch hardware/software whenever packets match the flow.
Purpose of Counters
● Flow aging – Decide when to remove inactive flows based on byte/packet counts.
Actions
Actions define what to do with packets that match the header fields.
1. Symmetric Messages – Can be sent by either controller or switch at any time.
3. Asynchronous Messages – Sent by the switch to inform the controller of events or
changes.
Each category serves a unique role in maintaining a smooth, programmable, and
responsive SDN network
Symmetric Communication
Definition:
Symmetric messages are bidirectional, meaning both the controller and the switch can
send them at any time without a prior request. They help in connection management,
health monitoring, and vendor-specific operations.
Controller-to-Switch Communication
Definition:
These messages are always initiated by the controller and are used to query the switch,
configure parameters, or modify the switch state. They give the controller direct control
over how the switch handles network traffic.
Asynchronous Communication
Definition:
Asynchronous messages are initiated by the switch to inform the controller about
network events, state changes, or statistics updates without the controller explicitly
asking for them.
● Symmetric messages start the connection (Hello) and keep it alive (Echo).
● Business Alignment – Network behavior can align with business objectives (e.g.,
SLAs).
● Innovation – Developers can create new networking apps without touching the
infrastructure.
Southbound Interface in SDN
The Southbound Interface (SBI) is a critical component of Software-Defined Networking
(SDN) that connects the SDN controller with the network devices such as switches,
routers, and access points. It allows the controller to communicate with, manage, and
program the data plane of these devices dynamically. Essentially, the Southbound
Interface acts as the bridge between the control plane and the data plane, enabling
centralized network control and programmability, which are the hallmarks of SDN.
1. Control Plane: Located in the SDN controller, it makes global decisions about
traffic flow, routing, and policies.
2. Data Plane: Located in the network devices, it is responsible for forwarding
packets according to instructions from the control plane.
The Southbound Interface is the mechanism through which these instructions are
transmitted. It enables the controller to:
● Monitor device status – gather statistics, check link health, and detect failures in
real-time.
Without a robust Southbound Interface, the benefits of SDN, including flexibility, agility,
and automation, cannot be fully realized.
Ryu SDN Framework
Ryu is an open-source software framework designed for building Software-Defined
Networking (SDN) applications. It is written in Python, making it highly accessible,
extensible, and developer-friendly. Ryu provides a set of libraries and APIs that allow
network programmers to control and manage network devices from a centralized SDN
controller. Its modular architecture supports multiple protocols, enabling integration with
a variety of switches, routers, and other network devices.
Purpose of Ryu
In traditional networking, network devices operate independently, each maintaining its
own control and data plane. This leads to challenges such as:
● Manual configuration of devices
1. Centralized control: The controller manages multiple devices from a single
location.
3. Protocol support: Ryu natively supports SDN protocols like OpenFlow, and can
integrate with NETCONF, OF-Config, and others.
4. Rapid prototyping: Its Python base allows fast development of SDN applications
and network services.
3. Modularity: Applications can be added, removed, or modified without affecting the
core controller.
4. Extensibility: Developers can extend Ryu to support new protocols or custom
devices.
6. Rich API: Simplifies interaction with network devices, including packet
manipulation, flow installation, and statistics collection.
7. Community Support: Ryu has active community contributions and documentation,
making it easier for developers to adopt and troubleshoot.
2. Event Handling: Devices generate events (e.g., packet-in when no matching flow
exists).
3. Application Logic: Ryu applications process these events and determine the
network behavior, such as routing or dropping packets.
4. Flow Installation: The controller sends flow-mod messages to switches to update
their forwarding tables.
5. Monitoring: Ryu periodically collects network statistics for traffic analysis and
policy enforcement.
This workflow ensures centralized, programmable, and dynamic control over network
devices.
Conclusion
Ryu is a powerful, flexible, and Python-friendly SDN controller framework that provides
centralized network control, programmability, and rapid prototyping for network
applications. Its modular architecture, rich protocol support, and event-driven design
make it ideal for research, development, and real-world deployment in SDN
environments. By leveraging Ryu, organizations can transform traditional networks into
agile, automated, and intelligently managed networks, achieving the full potential of SDN.
1. Northbound Interfaces (Top part – interaction with applications and operators)
2. Northbound Interfaces
These are the entry points for applications, operators, or orchestration systems to
interact with the controller.
a. Operator
● What it is:
This represents a human network administrator who manages and monitors the
network through Ryu’s RESTful management API.
● Why it is used:
● What it is:
This is integration with OpenStack, a popular cloud infrastructure management
platform. Ryu works with OpenStack via REST API for Quantum (now called
Neutron in modern OpenStack versions).
● Why it is used:
c. User Applications
● What it is:
Custom applications developed by users to control or monitor the network. These
applications can communicate with Ryu via:
○ REST API – Simple, stateless HTTP calls.
● Why it is used:
a. Built-in Apps
● Purpose:
○ Tenant Isolation: Ensures that multiple tenants (clients) sharing the same
physical infrastructure remain logically separated for security and privacy.
● Why it is used:
b. Libraries
● Examples: OpenFlow (OF) REST, topology discovery, firewall.
● Purpose:
● Why it is used:
c. Protocol Parsers
This section of the framework translates protocol messages between devices and the
controller.
● Supports multiple OpenFlow versions (1.0, 1.2, 1.3, and OF-config 1.1).
● Why it is used:
● Purpose:
○ Netconf: Network configuration protocol for device management.
● Why it is used:
○ Ryu isn’t limited to OpenFlow – it can handle multiple protocols for greater
flexibility.
4. Southbound Interfaces
These are the protocols used by the Ryu controller to communicate with the actual
network devices.
OpenFlow Switch
● What it is:
A hardware or software-based network switch that supports OpenFlow protocol.
● Why it is used:
Purpose of OpenDaylight
Traditional networks are limited by:
2. Network Programmability: Offers APIs for developers to create custom network
applications.
Architecture of OpenDaylight
OpenDaylight follows a modular and layered architecture that separates control logic,
network applications, and protocol handling. Its main components include:
1. Southbound Plugins
Southbound plugins are responsible for communicating with network devices. These
plugins implement protocols such as:
These plugins abstract the device-specific details and provide a unified view of the
network to the controller.
2. Controller Core
● Network topology management: Maintains a global view of all devices and links.
The controller core enables SDN applications to operate without worrying about
device-specific complexities.
3. Northbound APIs
ODL exposes northbound REST APIs and RESTCONF interfaces that allow network
applications and orchestration platforms to interact with the controller. Through these
APIs, applications can:
4. Network Applications
ODL supports a wide range of network applications that run on top of the controller,
including:
Working of OpenDaylight
1. Device Discovery: Southbound plugins detect and register devices such as
switches, routers, or virtual switches.
2. Topology Construction: The controller builds a global network topology map.
4. Flow Installation: The controller programs the forwarding rules to devices using
southbound protocols like OpenFlow.
5. Monitoring & Feedback: Network devices send statistics and event updates to the
controller, enabling real-time adaptation.
This workflow ensures that ODL can dynamically control the network, optimize traffic,
enforce policies, and respond to failures in real time.
2. Protocol Support: Handles multiple southbound protocols for diverse networks.
3. Extensibility: Developers can write custom applications using northbound APIs.
Advantages of OpenDaylight
● Multi-vendor support: Works with devices from various vendors due to protocol
standardization.
3. Campus Networks: Provides centralized control over switches, access points, and
security devices.
4. Network Security: Implements dynamic firewalls, ACLs, and intrusion detection
systems.
5. Traffic Engineering: Dynamically adjusts routing paths to maximize bandwidth and
reduce congestion.
Conclusion
OpenDaylight is a powerful, modular, and versatile SDN controller that enables
centralized network management, programmability, and automation. Its support for
multiple protocols, rich northbound APIs, and modular architecture makes it suitable for
a wide range of environments, including enterprise, data center, and service provider
networks. By providing real-time visibility, dynamic control, and flexibility, ODL
transforms traditional static networks into intelligent, automated, and highly scalable
SDN ecosystems, fulfilling the core promise of software-defined networking.
Purpose of ONOS
Traditional networking suffers from:
1. Centralized Network Intelligence: Provides a global view of the network to manage
traffic, topology, and devices.
2. Programmability: Offers APIs for developers to create custom SDN applications.
3. High Availability: Designed to remain operational even if one or more controller
nodes fail.
5. Vendor Neutrality: Works with multiple device types and protocols, enabling
multi-vendor deployments.
Working of ONOS
1. Device Discovery: ONOS detects network devices and establishes control via
southbound protocols like OpenFlow.
2. Topology Construction: Each node in the ONOS cluster maintains a consistent
view of the network topology.
3. Event Handling: Devices generate events such as packet-in, link failure, or port
change, which ONOS processes in real time.
4. Flow Installation: The controller programs switches with forwarding rules to
achieve desired traffic behavior.
5. Monitoring and Feedback: ONOS continuously collects statistics and health
information from devices to adapt network behavior dynamically.
The distributed cluster design ensures that the network continues operating smoothly
even if some ONOS nodes fail, providing fault tolerance and resilience.
4. Protocol Flexibility: Supports OpenFlow, NETCONF, OVSDB, BGP-LS, and more.
6. Northbound API Support: Provides REST, gRPC, and Java APIs for application
integration.
7. Fault Tolerance: Distributed data store ensures consistency and resilience against
node failures.
Advantages of ONOS
● Carrier-grade reliability: Designed for service providers and large networks.
● Support for network virtualization: Enables flexible, isolated virtual networks for
tenants or applications.
Use Cases
1. Service Provider Networks: High scalability and fault-tolerant operation for ISPs
and telecom networks.
2. Data Center Networking: Automates flow management, traffic engineering, and
virtual networks.
3. Campus and Enterprise Networks: Centralized control over switches, wireless
access points, and security devices.
4. Network Security: Implements dynamic firewalls, access policies, and intrusion
detection.
5. Research and Experimentation: Provides a platform for SDN research and testing
innovative network applications.
Conclusion
ONOS is a powerful, scalable, and resilient SDN controller tailored for large-scale
networks, especially in service provider and enterprise environments. Its distributed
architecture, modular design, protocol support, and programmable APIs make it ideal for
managing complex, heterogeneous networks. By enabling centralized intelligence,
dynamic policy enforcement, and real-time monitoring, ONOS transforms traditional
networks into flexible, automated, and fault-tolerant SDN environments, fulfilling the core
promises of software-defined networking.