Software-defined networking (SDN) is a hot topic in the network community. Vendors such as Big Switch, Brocade, Cisco and HP are getting into the mix, and just about anyone in networking is making announcements. Additionally, OpenFlow is an open-source option for building an SDN control plane.
Why is the industry buzzing? Because the technology could revolutionize networking. Typical networking intelligence is distributed across physical switches and routers, each with its own configuration. Even routing protocols designed to move packets across the globe rely on neighbors' advertisements to build their own view of the world. Traditionally, there hasn't been a central network map or a single point of management. SDN promises to end the need for network command-line interface (CLI) jockeys, while providing a more robust programmable network.
SDN offers flexibility, performance and agility, as well as security, according to Chris Hoff. The main two concepts typically accepted when defining SDN are its separate control and data plane and programmability.
Separation of the control plane and data plane means the command and control is removed from the switching/routing devices. Instead, control-plane operations are handled centrally and distributed to data-plane elements (think switches/routers). This allows for top-level decisions to be made from a management device with knowledge of the network as a whole, rather than device-centric configurations. Programmability offers the addition or expansion of features, as well as the ability to change flows dynamically and even pass management up to higher-level orchestration tools. A great example is QoS controls. As outlined by Mike Fratto, software-defined networking architectures would allow for separate flows to be programmed for different data types.
These features are very applicable to both private- and public-cloud architectures. For evidence of such, see Google's announcement that OpenFlow is being used in a big way within its network. Management of the network flows can be designed on a case-by-case basis, while still running on the same physical topology. Separate customers (internal or external) can be defined with separate routing based on need, budget or otherwise. Additionally, flow changes could be made based on congestion, as Fratto suggests, or security, as suggested by Hoff.
The hardware-independent flexibility should prove a key enabler for public and private clouds. These architectures will provide a set of pipes that can be set to adapt, without the need for physical changes or multiple CLIs. Additionally, SDN can be used to enhance security and visibility into network traffic. Overall, the feature set and thinking behind SDN (that is, how should a modern network look?) will be extremely beneficial to cloud architectures.
For more detailed information on SDN, see "SDN – Centralized Network Command and Control." Disclaimer: This post is not intended as an endorsement for any vendors or products mentioned.