Software Defined Networking (SDN)
[!NOTE] This module explores the core principles of Software Defined Networking (SDN), deriving solutions from first principles and hardware constraints to build world-class, production-ready expertise.
1. What is SDN?
Software Defined Networking (SDN) is an architecture that aims to make networks agile and flexible. The goal is to improve network control by enabling enterprises and service providers to respond quickly to changing business requirements.
2. The Great Separation
Traditional routers/switches handle everything locally. SDN splits this into two layers:
- Control Plane (The Brain): Makes decisions about where traffic should be sent. In SDN, this is centralized in a Controller.
- Data Plane (The Brawn): The actual hardware (switches/routers) that forwards packets based on the rules received from the Controller.
3. Benefits of SDN
- Centralized Management: No need to log into 100 different switches to change a VLAN.
- Programmability: You can write scripts (Python/Java) to automate network changes based on traffic load.
- Abstraction: The controller sees the whole network as one giant switch, making path calculation easier.
4. Interactive: Controller vs hardware
Watch the rules propagate.
SDN Controller (API)
[Southbound Interface: OpenFlow]
Switch A
Switch B
Switch C
Network running legacy config...
5. Northbound vs. Southbound APIs
- Southbound API: The communication between the Controller and the hardware (e.g., OpenFlow, NETCONF).
- Northbound API: The communication between the Controller and Applications/Scripts. This is usually a REST API that returns JSON.