Is SDN a buzzword or is it a protocol, standard, or recommendation?
What differentiates SDN from VMware NSX, for example?
Network Engineering Stack Exchange is a question and answer site for network engineers. It only takes a minute to sign up.Sign up to join this community
I am assuming you are talking about Software Defined Networking. Currently state of the art networks make forwarding decisions within your networking infrastructure. Example - bridge tables are built dynamically from source MAC packets - routing decisions are made off of route tables built from dynamic routing protocol (eigrp/ospf/etc.). In SDN the network infrastructure is simply viewed as a control plane and takes forwarding direction from a central controller (an application running on a server somewhere). So each networking device layer2/layer3 would query the controller for forwarding decisions.
This is a decent article on the subject: SDN
The Wikipedia page goes into a more in-depth discussion of the history and motives: Wikipedia
I think SDN has lost it's meaning a bit (i.e. it can mean several different things now) because a lot of vendors have entered this market with several solutions that implement "SDN" in different ways.
I've blogged about SDN and it's origins here: http://filipv.net/2014/03/17/on-sdn-nfv-and-openflow/
Since you specifically mention VMware NSX in your question and how it contrasts with SDN, I'd say the main difference is that SDN typically also "programs state" in the data plane of the network, by using OpenFlow for example, and also configures physical network devices by using OVSDB for example. Whereas VMware NSX is a network virtualisation solution that does not configure or program forwarding state in physical devices but threats the physical network purely as an underlay to carry the overlay network which it does "program".
Note: in the next version of NSX-v, there will be OVSDB support so the lines will become more blurry. NSX-MH (the old Nicira NVP product) already had OVSDB support.
Separating a network's control logic from the underlying physical routers and switches that forward traffic allows network operators to write high-level control programs that specify the behavior of an entire network, in contrast to conventional networks, whereby network operators must codify functionality in terms of low-level device configuration.
Logically centralized network control makes it possible for operators to specify more complex tasks that involve integrating many disjoint network functions (e.g., security, resource control, prioritization) into a single control framework, allowing network operators to create more sophisticated policies, and making network configurations easier to configure, manage, troubleshoot, and debug
Simply put, Software-defined networking (SDN) is an approach to networking in which control is decoupled from the physical infrastructure
It is separating the network's control logic from the underlying routers and switches, promoting (logical) centralization of network control, and introducing the ability to program the network
Wikipedia: Software-defined networking (SDN) is an approach to computer networking that allows network administrators to manage network services through abstraction of lower-level functionality. This is done by decoupling the system that makes decisions about where traffic is sent (the control plane) from the underlying systems that forward traffic to the selected destination (the data plane). The inventors and vendors of these systems claim that this simplifies networking.
Software Defined Networking
I usually describe SDN as the separation of the Muscle and the Brain of the networking devices.
The text book definition of SDN is that it is the separation of the Control Plane and the Data Plane. The place where many people get lost is to differentiate what the control plane is and what the data plane is.
To understand this, let's look at how networking devices have been working.
From above, you can see the second step is the only place where there are some 'thinking' happening. The first step involves receiving the packet and the third doing a specific action after the 'thinking' is done.
So we can separate the three steps either as muscle or brain. The first step is the muscle, the second is the brain and the final is also a muscle.
We call the brain the Control Plane and the muscle is called the Data Plane as far as SDN is concerned.
The first statement in this answer said SDN is the separation of the muscle and brain of the network. How exactly does SDN do this ?
We take the brain to a central server, also called the controller. The server has the knowledge of all the networking devices in the network and does the thinking for them. All the networking devices have to do is receive a packet/datagram and if they don't know what to do, they just send the header information to the controller and it will tell the devices what to do with the packet and they can then do the action.
So the controller becomes the brain of the whole network, and the networking devices become the muscle just pushing data through.
Any questions ? :)
SDN, software defined networking, is defined by the Open Networking Foundation (ONF) as
The physical separation of the network control plane from the forwarding plane, and where a control plane controls several devices. [...and...] the OpenFlow® protocol is a foundational element for building SDN solutions.
Where Open SDN favors OpenFlow®, commercial networking incumbents market their own flavors of SDN fashioned programmable network systems, e.g. Cisco ACI™ and VMware NSX® (the Software-Defined Data Center, SDDC). Cisco's Meraki cloud managed devices utilize, but make no mention of, an underlying SDN architecture. Lastly, the Term SDN was first mentioned in an MIT Academic Article on OpenFlow Greene, K. 2009. TR10: software-defined networking.
Whereas SDN is an architecture for a programmable network; OpenStack, Eucalyptus, vCloud Air™, and Apache CloudStack™ are architectures for programmable clouds (i.e. network, memory, i/o, and storage). Programmable cloud compute systems may or may not use SDN. For example, OpenStack's Neutron element
can be viewed as orthogonal to SDN since it can integrate with traditional networks with existing protocols [What is OpenStack Networking?].
Automated distributed smart ports. Today, you link to a wired or wireless LAN which may include networking control features such as routing, firewall, optimizing, VLAN's etc. With SDN, these control features are available at the NIC/vNIC and are programmable via the SDN controller.
SDN architectures are being adopted and driven by the deployment of private clouds such as OpenStack, Eucalyptus, vCloud Air™, and Apache CloudStack™.
OpenStack's Neutron project, providing networking as a service between interface devices (e.g., vNICs), recognizes SDN as a possible networking solution for OpenStack Clouds [OpenDaylight: An Open Source SDN for Your OpenStack Cloud].
Eucalyptus Virtual Private Cloud (VPC) support is implemented with a Software-Defined Networking (SDN) technology [Understanding VPC and MidoNet].