Software‐Defined Network (SDN) - kentan-bit/DDoS-attack-on-SDN GitHub Wiki
Software-Defined Network (SDN)
SDN is a modern approach to network management that separates the control plane (which determines how data is forwarded) from the data plane (which actually forwards data). Traditionally, network devices like routers and switches handle both planes, making networks complex and challenging to manage at scale. SDN introduces a centralized controller that dynamically manages the network through software, allowing administrators to program and configure the network from a central point.
Image from: ATMECS - Software Defined Networking
With SDN, networks become more flexible, responsive, and efficient, supporting rapid changes and automated configurations. This approach is particularly beneficial in environments like data centers, cloud services, and large enterprise networks, as it allows for dynamic load balancing, improved resource utilization, and enhanced security through real-time control. SDN plays a key role in modern networking, fostering innovation and enabling faster adaptation to evolving network demands.
OpenFlow
OpenFlow is a key protocol within SDN that enables the separation of a network's control plane from its data plane. Developed by the Open Networking Foundation (ONF), OpenFlow allows the centralized SDN controller to directly communicate with and control how packets are forwarded by network devices like switches and router. This protocol gives network administrators fine-grained control over network traffic, enabling them to dictate traffic flows dynamically and programmatically.
Key Components of OpenFlow:
- OpenFlow Controller: A central SDN controller that sends instructions to network devices. It manages the flow of traffic across the network based on policies set by administrators or applications.
- OpenFlow Switch: The network device (such as a switch) that receives instructions from the controller. It contains a flow table that defines how incoming packets should be handled based on specific rules.
- Flow Tables: Each OpenFlow switch has one or more flow tables with rules that match incoming packets. These rules specify actions, such as forwarding, dropping, or modifying packets. The flow table entries can be dynamically updated by the controller, allowing rapid response to changing network conditions.
Our Project
In this project, we simulate the SDN architecture using Mininet which consists of three switches and 20 end nodes. A custom topology is created using Python script to build the SDN simulation. The SDN will run in Mininet which uses ONOS as the controller.
sudo mn --controller remote,ip=<controller host IP> --switch ovs,protocols=OpenFlow14 --custom /path/to/DDoS-attack-on-SDN/sdn_topology.py --topo=project --link tc