What IS this SDN thing people keep talking about?

It seems like the latest networking industry buzzword is SDN, or Software Defined Networking. Over the last year or so, the term has been getting more and more popular, especially with big names like Cisco getting into the mix. However, for an acronym as popular on the web as it is, the majority of people don't actually know WHAT it is. It seems like the majority of blogs keep saying that SDN is the future and that OpenFlow will change the way that networks operate, but few explain what that actually means and why it's either good or bad for us.

Hopefully I can explain a bit about what SDN is and how it differs from traditional networking.

Before we get into SDN, let's do a quick review of the standard networks we have in place today. Let's take a normal router or switch, for example. We have things like VLANs, MAC address tables, IP routing tables, routing protocols (BGP, EIGRP, OSPF), management over SSH or Telnet (please,don't use telnet...please), and Spanning Tree.

These various aspects of our network gear are split up into functional areas or "planes", such as the Forwarding Plane, the Control Plane, and the Management Plane.

Forwarding (or Data) Plane - moves packets, whether it's from port to port, or VLAN to VLAN, this plane is responsible for the packets getting from point A to point B. This includes all of our mac-address-tables and your CEF tables.
Control Plane - the brain behind figuring out HOW to move packets. This is all of your routing protocols and the routes themselves.
Management Plane - This is your SSH session, your SNMP monitoring, your ASDMs, and any other methods you use to make changes to your device.

In most networks, you'll have more than one switch, and possibly more than one router. You now have, for example, 100 switches and 10 routers to manage on your network.

You might be saying to yourself "So? I run BGP so all my routes would update automatically if anything changed, and all my VLANS are in a VTP domain." While this may be true, that entire configuration is still dependent upon all 110 devices being configured correctly. Now, what if you could manage all the Control and Forwarding planes of all your devices from one centrally managed controller? That's the point of SDN. Its aim is to simply the network, and to simplify the nightmare of having to administer your 110 devices.

Let's take a deeper look into how SDN attempts to accomplish this.

Whereas on most switches, the control plane and forwarding plane exist on the same switch, share the same CPU and memory, in an SDN world, the control plane is removed from the switch and put on a centralized controller. In layman's terms: the controller handles all things that routing protocols would usually take care of. This centralized controller holds and manages the forwarding tables, and all forwarding decisions are made by that controller.

This does not mean, however, that every packet across every switch must be evaluated by the centralized controller, as that would be silly and inefficient. Instead, the SDN controller basically has an internally generated map of the entire network, and it talks to its switches and tells them what they need to know. Welcome to a world without RIP, OSPF, Spanning Tree, or BGP.

This is good for a variety of reasons. It eliminates having to worry about configuring hundreds of devices, as you have a central place where you define your network topology. Since the central controller holds all the important data, you can move a VMto a different switch or behind a different firewall, and the SDN controller will recognize the change and simply move all the associated rules to the new device.

There's a lot to know about SDN, and the various protocols such as OpenFlow, however, there are still a lot of changes occurring in the SDN world. There are some defined standards, but things are still in their relative infancy. It's currently focused more on the virtualized environment and some extremely large network such as those in place at Google.  Hopefully you now understand a bit about what SDN is, and can follow along when more and more people talk about and implement it.

If you want to know more, Mr. Brent Salisbury runs a great blog at http://networkstatic.net/ in which he dives deep into SDN, and has links to lots of talks and videos that explain it more.

Labels: , ,