What is SDN (Software-Defined Networking)?
SDN, or Software-Defined Networking, is a concept and architecture that allows communication devices in a computer network to be controlled through software. It enables dynamic changes to network configurations and settings by separating network control from physical hardware.
Traditional network devices required manual configuration, and network structures heavily relied on the physical connections of switches and routers. This dependency stemmed from the integration of the data plane (responsible for data transmission) and the control plane (managing data routing) in traditional switches. While VLAN technology virtualized Layer 2 networks, it was limited to a maximum of around 4,000 VLANs, imposing constraints on large-scale virtualized networks.
To address these challenges, OpenFlow emerged, offering a method to separate the data plane from the control plane and connect them via APIs. This separation opened the door to centralized software management and operational automation, giving rise to the concept of SDN. Since then, many approaches to SDN have been proposed and discussed, extending beyond OpenFlow.
While SDN is still ambiguously defined, it revolves around two key points:
Large-Scale Network Virtualization:
SDN focuses on constructing virtual Layer 2 networks over Layer 3 infrastructures. Unlike previous methods of network virtualization, SDN emphasizes building and managing these virtualized networks through software, allowing greater scalability and flexibility.
Centralized Network Management via Software:
SDN not only separates the control plane from switches but also introduces higher-level APIs to enable orchestration. Complementary technologies such as NFV (Network Function Virtualization), which virtualizes functions like firewalls, and service chaining, which dynamically links these functions, are critical components in achieving the goals of SDN.