The Soft Network
Network Virtualization and Software-defined Networks (SDN) are really hot, white-hot. But as more and more people try to understand these concepts it seems there is a great deal of confusion.
I attended Interop Las Vegas in May, presenting a demo of our CloudWeaver solution at the OpenFlow Lab. Many people including many network experts came to me with a deluge of questions such as “Why are these technologies considered so revolutionary?” or “Network virtualization is nothing new, isn’t it ?” or “Networks are already ‘software-defined’, aren’t they?”.
Well, I can understand why people are so disappointed and confused. For one, with virtualization we fear losing control. In addition there is skepticism as to the benefit of the Cloud. A clear explanation is perhaps in order.
Here I’ll attempt to keep things simple and explain what these technologies are in essence. Which problem are they solving? Why are they coming to light now? How they relate to each other and to the Cloud? In summary, what making the network soft means?
We generally understand what server virtualization means: several virtual machines instantiated simultaneously on the same physical machine. A new piece of software called the hypervisor is in charge of controlling the sharing of the physical hardware and the execution of machine instructions. Server virtualization provides an increased utilization of hardware and more application portability.
Let’s focus a moment on the sharing function of virtualization. The network is by essence already a shared facility enabling communication and data transport. We have built computer networks to avoid millions of point to point cables. Sharing as a critical function and with it the Control of this sharing function have both been around for years with software routing protocols such as BGP or transport protocol such as TCP that are controlling the communications in the Internet.
The key concept to understand here is that Network Virtualization aims at proposing a new way of sharing a network where the unit of sharing is no longer the packet but an entire network slice. By this we mean all elements composing a network (switch, routers, firewall, links) are partitioned and reassembled in concurrent virtual networks sharing the same physical network.
So what problem does this solve?
Building a virtual network is not just partitioning and virtualizing its distinct pieces. It is networking all its logical partitions. It is creating an agile and well organized system of virtual components managing swiftly and efficiently the movement of data, connecting, filtering, forwarding and routing. In effect it is creating a virtual topology, making the interconnected elements work in concert to transport data around fast and smoothly according each user needs.
One user (or group of users) has its own separated logical network. And, similarly to server’s hypervisor, the “virtual network hypervisor” is in charge of controlling the sharing of the network devices between different virtual networks and to translate high level orders in low level device instructions. But there is more.
A network as it is deployed and operated today is really difficult to adapt to highly dynamic environments, particularly in business situations. A network is a complex and highly distributed system not easy to configure to fit ever changing needs, to structure, to secure, to optimize. It requires a lot of expertise and time to manage and adapt to changes. By creating virtual network we can escape this complexity.
In that, the benefits of Network Virtualization are different from the benefits of server virtualization: think incredible flexibility versus consolidation. And with flexibility comes the key benefits of a differentiation of usage (and SLAs) and a reduction of operations complexity two elements critical when dealing with more and more demanding business requirements faced by a (costly) infrastructure.
The software-definition of network
The Software-defined Network concept appeared few years after Network Virtualization. The goal: enabling flexible network configurations. SDN is the “how-to-build-virtual-networks”.
SDN is rooted in the decoupling of data plane and control plane; decoupling the hardware in charge of forwarding the packets from the software in charge of configuring and controlling the equipment. In other words it is a software that programs the behavior of links, the flows and the virtual topology, a software for computing the path or the route (PCE or Openflow), filtering packets on a flow basis.
How does decoupling relate to all the layering common in Networking? The approach is fundamentally different. The purpose of these layers playing mainly in data plane is to hide the heterogeneity of links and the network and cope with the hardware complexity.
In fact, the network disappeared under the heavy stack of protocols. In IP networks users are only aware of packets in transit, stirred by a big machine moving data. Links have disappeared! Below this opacity of layers (most of them build in software), the network becomes ossified, frozen, inflexible with no possibility of usage differentiation in a “one-size-fits-all” restrictive scenario.
SDN solutions emerging today recreate links and build differentiated topologies, making the network less invisible, highly agile and programmable!
Network virtualization is not new? Server virtualization was already there long before “hypervisor” technologies emerged. Will it be the same for the network? Time sharing and virtual processors were there in Unix, in Linux before Xen and VMware introduced the solutions for virtual machines. It took several years for Diane Greene and Simon Crosby to convince the world of the benefits of server virtualization. In fact it took more than 10 years to discover the real killer application of server virtualization: the Cloud.
VLANs, VPNs, overlay networks have been around for many years, solving point problems in the network : grouping for VLAN, securing for VPN, des-ossifying for Overlays, decoupling the forwarding from the switch configuration and flow control for OpenFlow. OpenFlow is a great enabler created to liberate innovation in networks although not a panacea for network virtualization.
SDN is coming today because of two converging forces: network hardware commoditization and need for more flexibility in the network. SDN is a great opportunity for the Network to be more private, virtually private, isolated and customized, for privacy, for differentiation, for agility. With all these bricks, we now have a fertile environment for making the network programmable and agile!
A social network of resources around me?
Here, at Lyatiss we strongly believe that combining Cloud technology, Network Virtualization and SDN offers a tremendous opportunity for users to build their own networks of digital resources without deploying any physical cable or fiber, without installing any optical switch or router anywhere. A chance to place the user at the justify of its network of virtual resources very much in the same fashion we are now the justify of our own social network.
Entering this new-world paradigm we can discover exciting possibilities. Since a virtual network is a network, it is an interconnection of components. In a virtual network links and devices are all virtual. They are all decoupled from the physical components hosting them. In addition, the entire virtual network itself is also decoupled from the physical network where it is instantiated.
Therefore, does a virtual network need to be located in a single hosting network or can it span over several physical networks? Wouldn’t it be nice for a global company to be able to interconnect on-demand remote switches or routers belonging to third parties at the opposite side of the world? This could be applied to a follow-the-sun model, moving workload as workforce gets engaged.
Many other possibilities exist such as isolating users in private dedicated and distributed cells for a given period of time, similar to physical situations during the usage of a private room for a meeting or a brainstorming. Private rooms comprising resources picked in public and private Cloud domains.
These are few examples. But is the industry really ready to adopt such a paradigm today? Are people inside the Enterprise convinced? What is the rationale for “network abstraction” in the industry today? Is network virtualization just a natural evolution of the network technology? Is it something just pushed by engineers to make the network protocol architecture evolve?
Whatever the answer to these questions I believe that differentiation of network usage and service which was impossible with ATM, Intserv or DiffServ at Internet scale is now going to happen with Network Virtualization, Software-defined Networks and Clouds.
Deploying Virtual Networks and SDN incrementally
Even if Network Virtualization is not VLAN, VPN, OpenFlow or overlaying, it will rely, more or less, on all of these enablers, simply because these technologies are there. As server virtualization has been deployed over traditional servers, Network Virtualization should exist on an already deployed Networking environment. Network Virtualization does not have to change the Data Plane, which is doing his job of moving data fast. Network Virtualization can adapt to any of them. As IP technology was able to federate range of forwarding technologies and let new technologies come in and connect to the Internet (Wifi, cellulars…), Network Virtualization can integrate not only existing transport but also many of network control technologies.
A virtual network is defined by the way the network is built and dynamically composed. It is also defined by the way it is controlled and managed as an independent and autonomous entity.
This is where the SDN concept will play a critical role, leveraging existing virtualization technology to create dynamic and flexible networks where the software act as the hypervisor controlling the flows. This control software is defining the topologies and the policies of the virtual networks. In a computer, the code (the software) is controlling the data, is dictating how the machine has to process the data. The code of a software-defined network is controlling the data passing through the forwarding machine, applying filtering, forwarding, routing rules to data in transit. But thanks to the highy dynamic nature of business today, this control has to be very adaptive.
Cloud and SDN
At Lyatiss, we target the killer application for Network Virtualization and Software-defined Network: Cloud Networking. As Cloud computing is the killer application of server virtualization. We also believe Self-service Networking is badly needed in the Cloud.
The Network is in charge of data movement in a Cloud Infrastructure. A Cloud Network is a smart network which adapts to the context and the load to serve end-to-end goals. Beyond VPN, VN, SDN, OF, a Cloud network is a software-defined virtual network which is smart and self-service. To serve the specific needs of a Cloud application, of a specific tenant.
Today, Cloud Network does not really exist in the Cloud.
VPC and Quantum are the premise of Cloud Networks.
Quantum is a wonderful initiative within the Openstack community discussing and concerned of network issues in the Cloud. The Quantum API today is far from covering the huge potential virtual network and SDN are bringing on the table and a lot of work remains to be done in that space. However, for sure, more intelligent Cloud Networks will accelerate Cloud benefits.
Because Cloud users are looking for time and cost savings, here, at Lyatiss, we simplify Cloud Networking providing you an instant understanding of your communication issues, helping you orchestrate and network your resources smartly while optimizing your infrastructure and costs.
The Cloud Network is at the Service of your application, at Your Service.