Sunday, August 12, 2012

Some Basic Questions about SDN Technology

Flickr: http://www.flickr.com/photos/m_j_b/2921855242/
Long, long ago, in a Data Center far, far away, I used to consider myself reasonably knowledgeable in the ways of networking. Somewhere on a dusty bookshelf or the bottom of a packing box is a remind that I once held Cisco CCIE #3077. And I was even once semi-knowledgeable about a significant transition from a function that was hardware-centric to one that led a revolution to software-centric productivity.

But even as I spend more time trying to grasp Software Defined Networking (SDN), talking with some of the smartest people in the industry, I find myself still left with some very basic questions that I haven't seen answered yet. So I'm just going to make a list, with the hope that those more in the know might provide answers via links or comments in this blog. The Packet Pushers podcast touched on some of these, but I don't believe answers emerged.
Plenty has been written about the potential economic impacts (both to customers and vendors/suppliers) of more open networking equipment. Considering the size of the market for networking hardware ($50B+) and the incumbent vendors involved, I can understand the focus. But it seems strange (to me at least) that we have so many open technology questions. 
I'm going to try and group these into categories that span from greenfield environments to large legacy environments, so I can better understand how to get from here to there.

Use-Cases or Killer Apps:

When Software-Defined Telephony (a.k.a. - VoIP / IP PBX) first came out, the immediate killer-app was Toll-Bypass, significantly reducing long-distance changes. Simplified MACs (Moves/Adds/Changes) was another OPEX selling point. Even reduced cabling to desktops was an ROI point of consideration. The future promised new IP-based collaboration apps, but that took 5+ years to materialize. And it took quite a while before "IP people" understood the complexities of numbering plans (or "dial plans"), which were deemed to be "simple".

When server virtualization emerged, if offered the ability to significantly reduce the cost of under utilized servers (rack space, network ports, power, etc.). It was the foundation of future IT-as-a-Service evolutions (of "Private Cloud / Hybrid Cloud"), but it offered ROI of just a few months in many cases.

So what's the initial, simple to understand and broadly applicable killer-app for SDN?

Greenfield: (nice list of up and coming SDN vendors)
  1. Assuming that a stable, highly available controller platform is chosen, what is the go-to hardware to interconnect all the servers?  How large are MAC tables? How many flows can it handle?
  2. What are the best practices for the physical network, in terms of topology, interconnect models, oversubscription ratios? 
Overlay Networks:
  1. Functionality such as VXLAN or NVGRE requires IP multicast or GRE in the existing IP network. When flows are created or controlled at the network edge, what complex functionality can be disabled in the distribution/aggregation or core layers? Does anything change?
  2. What are the benefits of controlling the network in the vSwitch (server) vs. the top-of-rack switch? What are the limitations?
  3. How will controllers that deliver Layer 2/3 services communicate with controllers that deliver layer 4-7 services? How will policies be written that involve multiple layers of the stack?
  4. How do best-practices for SDN Layer 4-7 services differ from existing best-practices for physical appliances or integrated systems?
Interconnecting Legacy Networks:
  1. Will SDN controllers run standard IGP (RIP, OSPF, IS-IS) or EGP (BGP) routing protocols to interconnect with existing networks? If not, is there another way to propagate "SDN network" routes to the rest of the network?
So what basic questions am I missing? Can you help me fill in some of the answers, or point me to good resources? 

1 comment:

  1. Thanks for the sharing of such information we will pass it on to our readers.
    ip pbx

    ReplyDelete