in

Software-Defined Networking (SDN) Explained in 5 Minutes or Less


Hey there! Software-defined networking is quite the buzzword these days in technology circles. As someone passionate about networks, I‘m sure you‘ve heard about SDN and are keen to learn more. Well, you‘ve come to the right place!

In this comprehensive guide, we‘ll dig deep into all things SDN – what it is, how it works, benefits, use cases, and more. I‘ll be sharing my perspectives as a network engineer and hope you find this guide helpful. Shall we get started?

What is SDN and Why Does it Matter?

Let‘s start with the basics. SDN stands for software-defined networking. It‘s a new architecture that separates the network control plane from the data forwarding plane.

In traditional networking, both control logic and packet forwarding occur on the same box – your routers and switches. But this bundled approach leads to siloed networks that are complex, rigid, and hard to change.

SDN centralizes network control into software-based controllers. This gives administrators a global view of the network and allows them to shape traffic flow through automation and abstraction.

According to recent surveys by Futuriom, up to 95% of enterprises are adopting or planning to adopt SDN. The main drivers include:

As you can see, companies are attracted by the increased flexibility, automation, and efficiency SDN offers compared to legacy networks. With businesses becoming app-driven and workloads shifting to multi-cloud environments, SDN provides the agility they need.

Research firm MarketsandMarkets predicts the global SDN market size to grow from $12.7 billion in 2020 to over $32 billion by 2025 at a CAGR of 21%. So there is tremendous industry momentum around SDN adoption.

Key Enabling Technologies

Several innovations came together to make the SDN architecture viable:

Network Virtualization: This allows creating logical networks decoupled from physical topology. For example, virtual LANs enabled by technologies like VXLAN.

Centralized Control: Instead of distributed control on individual devices, SDN consolidates network intelligence into centralized software controllers.

Programmability: SDN platforms provide APIs to automate network management versus manual device configuration.

Open Protocols: Protocols like OpenFlow and NETCONF enabled communication between the control and data planes.

Together, these capabilities unlocked the powerful vision behind SDN – make networks as agile and programmable as the cloud. Just as server virtualization enabled cloud computing, network virtualization is a key enabler for SDN.

SDN Architecture Explained

SDN architecture consists of three layers – the application plane, control plane, and data plane.

The application layer consists of SDN apps that interface with the controller to express business needs. These can support traffic engineering, security, automation, monitoring, and more.

The control plane is the "brains" of the network. It maintains a central view of the overall state and makes decisions about traffic forwarding rules.

The data plane comprises the actual network devices like switches and routers that move traffic based on rules set by the controller.

Here is how the layers interact:

  • SDN apps communicate their requirements to the controller via northbound APIs like REST.

  • The controller interprets these requirements and derives optimal forwarding rules. It programs these rules into the data plane devices using protocols like OpenFlow.

  • The data plane devices match incoming packets against the programmed rules to make local forwarding decisions. If no match, the packet is sent to the controller.

  • The controller then decides the action on that packet, updates flow rules, and pushes them back down to the data plane.

This separation of the control logic from the physical network is the key differentiator of SDN. It introduces agility and programmability using software abstractions.

SDN Controllers and Platforms

At the heart of the SDN architecture is the controller software that does the heavy lifting. Here are some leading open-source and commercial SDN platforms:

OpenDaylight is an open source SDN controller backed by the Linux Foundation. With a modular architecture, it enables programmability for data centers and service provider networks.

ONOS developed by the Open Networking Foundation is designed for high performance and scalability using distributed clustering. It has nice abstractions for network services.

Floodlight is a simple Java-based OpenFlow SDN controller well-suited for enterprise networks and experimenting via Mininet.

Cisco ACI provides policy-based automation for data centers. It offers fabric-based networking and deep integration with security, analytics, and cloud environments.

Juniper Contrail is a scale-out SDN controller for data centers, edge clouds, and 5G networks. It supports integration with Kubernetes and provides advanced analytics.

The leading platforms offer APIs, SDKs, and tools to accelerate SDN application development. Choosing a controller depends on your specific environment and use case.

SDN Use Cases and Deployment Scenarios

Let‘s look at some key scenarios where SDN offers significant benefits compared to legacy networks:

Data Centers: SDN is ideal for automating data center network provisioning and scaling. It allows deploying new apps and services faster. Technologies like VxLAN enable multi-tenancy by creating virtual overlay networks.

Cloud Computing: SDN principles like automation and orchestration align perfectly with cloud-native infrastructure. Cloud providers like AWS and Azure are big adopters of SDN.

Network Virtualization: Abstraction from physical topology allows flexible creation of logical networks for multi-tenancy, security zones, etc.

Traffic Engineering: Centralized control provides fine-grained tools for traffic monitoring, shaping, and optimization – especially valuable for WAN and ISP networks.

Improved Security: Global network view enables implementing consistent security policies easily through centralized automation. Microsegmentation can be implemented dynamically.

As you can see, SDN provides compelling advantages in automation, visibility, and innovation across many environments dealing with rapid change and complex workloads.

How Can You Get Started with SDN?

Based on my experience, here are some tips if you want hands-on exposure to SDN:

  • Install Mininet and experiment with emulating networks – write scripts to control topology and test SDN concepts.

  • Spin up an open source controller like OpenDaylight and invoke its REST APIs to program policies.

  • Build a simple SDN app on top of a controller platform using their SDK. Many provide developer sandboxes to get started.

  • Sign up for vendor solutions like Cisco dCloud for access to prebuilt labs and sandboxes to experience commercial SDN platforms.

  • Get familiar with dissecting OpenFlow rules and packets using Wireshark. It really helps understand SDN internals.

I‘m sure you‘ll agree there‘s no better way to learn than getting your hands dirty with code! Start small, but think big.

Key Takeaways on SDN

Let me recap the key points we covered:

  • SDN separates the network control plane from the data plane to make networks agile via centralization and automation.

  • It provides benefits like improved traffic engineering, security, multi-tenancy, faster innovation, and lower costs.

  • SDN architecture has three layers – application, control, and data planes connected via APIs.

  • Leading open source and commercial controller platforms enable SDN programmability.

  • Use cases range from data centers to network virtualization and traffic engineering.

  • Hands-on experience with controllers, virtualization, and protocols accelerates practical learning.

I hope this guide helped demystify SDN and get you excited about its possibilities! Let me know if you have any other questions. I‘m always happy to chat more about network technologies and architectures. Wishing you the very best in your SDN journey!

AlexisKestler

Written by Alexis Kestler

A female web designer and programmer - Now is a 36-year IT professional with over 15 years of experience living in NorCal. I enjoy keeping my feet wet in the world of technology through reading, working, and researching topics that pique my interest.