How Do You Virtualize a Network?
Jim Doherty discusses what, exactly, is network virtualization, how does network virtualization fit into the grand scheme of network functions virtualization (NFV) and software-defined networking (SDN), and finally how to virtualize a network.
This chapter attempts to answer an important question: How do you virtualize a network? Before attempting an answer, though, it’s a good time to take a step back and answer a couple of “big” questions, such as:
- What exactly is network virtualization, and how does it relate to the virtualization covered so far in this book?
- How does network virtualization fit into the grand scheme of network functions virtualization (NFV) and software-defined networking (SDN)?
Once we answer these questions, it’s much easier to answer the question that the chapter title poses. More importantly, these answers provide the framework of why we would want to virtualize the network.
As mentioned throughout the first two sections of this book, virtualization (which typically means server virtualization when used as a standalone phrase) refers to the abstraction of the application and operating system from the hardware.
In a similar way, network virtualization is the abstraction of the network endpoints from the physical arrangement of the network. In other words, network virtualization allows you to group or arrange endpoints on a network independent from the their physical location.
It’s worth noting that network virtualization is nothing new. In fact, it’s been around a long time. The most common forms of network virtualization are virtual LANs (VLANs), virtual private networks (VPNs), and Multiprotocol Label Switching (MPLS). All of these technologies essentially enable the administrators to group physically separate endpoints into logical groups, which makes them behave (and appear) as if they are all on the same local (physical) segment. The ability to do this allows for much greater efficiencies in traffic control, security, and management of the network.
In many cases, this type of virtualization is performed via some form of encapsulation whereby messages or traffic between endpoints in the same logical group are “packaged” into another message that is better suited for transport over a physical segment of the network. Once the message has reached the endpoint, the original message is unpacked, and the intended endpoint receives the message in the same format as it would have if the two endpoints were on the same physical segment of the network.
Figure 10-1 illustrates one way that VLANs would be used. In this case, workers in different departments work on multiple floors of a building. A single switch can service each floor of the building, such that all workers on a given floor would be part of the same network segment. VLANs allow you to logically group endpoints so that they all look as if they are on the same segment. Further, this can be done across many buildings or even across large networks where endpoints are scattered all over the globe—although care should be taken when extending VLANs over long distances because they can create fragile networks.
Figure 10-1 Virtual LANs, or VLANs, were an early form of network virtualization that allowed physically separate endpoints to behave as if they were all connected to the same local switch.
It turns out that this good old technique that has been around for many years makes server virtualization, or more accurately connecting VMs, much easier and much more efficient. It’s easy to see why when you imagine the VMs being spun up here, there, and everywhere in a virtualized data center or cloud, and then being paused, moved, started again, or even being moved while still being active.
With all that spontaneous creation and movement that is done without any regard for the specific physical location in the data center (or even with regard to a specific data center), having the ability to create and manage logical groupings becomes critical.