Applications of Virtual Networking (text)

by Sasha Shkrebets last modified Mar 06, 2023 01:16 PM
We are continuing our discussion of network virtualization and in this lecture we will look at various examples of network virtualization and how it has been applied to solve problems in real world networks. We'll look at three broad applications of virtual networking.
Welcome back.
We are continuing our discussion of network virtualization
and in this lecture we will look at various
examples of network virtualization and how it has
been applied to solve problems in real world networks.
We'll look at three broad applications of virtual networking.
We will first look at how virtual
networking has enabled experimentation on production networks.
And in particular how it allows
researchers to run virtual experimental infrastructure
in parallel with production networks on
the same underlying physical network infrastructure.
We'll also look at how virtual networking enables
rapid deployment and development of new network services.
And in particular, how it allows operators
to deploy services independently from the underlying
vendor hardware.
Finally, we'll look at how virtual networking
enables the dynamic scaling of resources by
exposing the abstraction of a logical network
that is distinct from the underlying physical resources.
So let's first look at how
virtual networking enables experimentation of production networks.
So, historically, network researchers have designed new network protocols
or architectures and they'd like to evaluate or test them.
Now, there are various approaches to doing so.
One could run the new protocol or architecture in a
simulator, or test it in an emulator like VINI or Emulab.
But, when it comes to actually deploying that new
architectural protocol in production, researchers
have historically hit a roadblock.
And there's a bit of a catch-22 situation.
In order to prove or show that that protocol or architecture
works in production, they need to deploy it on a production network.
But, of course, it's experimental.
So, no operator would take that experimental protocol or architecture
and want to run that on production traffic with real users.
So, ideally, we'd have something that lets that researcher
deploy that experimental infrastructure in parallel with the production network.
And, that's effectively what a piece of software called FlowVisor does.
FlowVisor basically virtualizes network control by letting
experimental traffic run in parallel on the production
network with the real user, and real production traffic.
So the idea here is that a user, Doug for example, might have many
different types of network traffic, and many different applications.
Such as, voice over IP, web, gaming and so forth.
And that user might be willing to let researchers
run experimental protocols or architectures on some subset of
the traffic, particularly if the traffic is not as critical.
So what FlowVisor allows Doug to do, is specify some subset of the traffic
that he is willing to let run over that experimental network control.
Now this virtualization is achieved using a concept called flow space.
The idea here, is basically that some subset of
traffic flows, based on IP address, port, and so
forth, might be specified as being controlled by an experimental network
controller, as opposed to the production network controller.
We'll talk a lot more about virtualization of network control when
we discuss the nuts and bolts of SDN control in later modules.
A second application for network virtualization
is the deployment of new services.
Now one particular platform that allows
this is Nicira's network virtualization platform.
And the idea here, is that the platform provides
an abstraction layer between hosts and the underlying network.
So, hosts essentially see their version of a virtual
network that's running potentially independently of other virtual networks.
And the provisioning of these virtual networks
is all managed by a distributed controller.
So you can see, again, the potential connection
between software defined networks and network virtualization here in
this particular application because a controller might be managing
the provisioning and configuration of those virtual network resources.
So, various applications for the network
virtualization platform include dynamic workload placement.
For example, suppose you are a very large data center operator and you have
multiple tenants running applications or services on
the servers and switches in that data center.
If you are that operator, you need some kind of platform
to allow for the creation of isolated virtual networks, for each tenant.
Each tenant needs the appearance of running on their own dedicated
infrastructure that's isolated and separate from other tenants.
Technology that allows for the creation and
management of separate virtual networks makes this possible.
By contrast, imagine if you did not have network virtualization.
Each tenant would effectively have to deploy
their own resources, their own servers and switches.
And the pool of physical resources that support those services,
applications and tenants couldn't be reused as demands change.
Another application for network virtualization is the
enforcement of dynamic security policies.
So, by creating the appearance of a single logical
network, a network operator then has the opportunity to
specify a central higher level security policy that can
be managed based on what the logical network looks like.
As opposed to having to manage each firewall and switch independently.
A third application for virtual networking is the dynamic scaling of resources.
So, here's an example that shows that.
Suppose that you're an enterprise network and you have a particular set
of resources that you've allocated for the tasks that you need to perform.
Well, depending on various circumstances, such as a sudden fluctuation in demand
disaster and so forth, you might suddenly need additional resources.
Now, if you didn't have network virtualization, you'd
need to go out and buy those resources yourself.
But instead, what you might do is use something like Amazon's Virtual Private
Cloud to dynamically provision and configure additional resources on demand.
This application offers many benefits, including the ability to
dynamically scale the resources that are available to you based on demand.
The Virtual Private Cloud effectively allows each customer to
define their own network, address space and so forth.
And actually connect it to the physical
network that they already have, typically using
a virtual private network between the Amazon
Virtual Private Cloud and their existing data center.
There are various additional benefits and
applications to this type of virtual networking
application, including the ability to say,
for example, potentially recover from a disaster.
Or, outsource the management of some of your network resources to a third party.
There are many other examples of network virtualization.
One class of virtual networks, which we've already discussed,
are those that support virtual networks in the wide area.
So there are a variety of classes of wide area virtual
networks, some that support network experimentation such as VINI and GENI.
Some that support value added services like CABO, and
some that support multiple control
infrastructures like the Tempest architecture.
Another type of virtual network that's becoming increasingly
popular is the virtual network in a box.
And the idea here is that there is often the need to dynamically
slice the resources on a single server and connect those virtual
machines, on a single server, to the network or to each other.
And various commercial offerings of a virtual network in a box are available.
Finally, another class of network virtualization that's gaining
some traction is something called network functions virtualization.
And the idea here is essentially the unification of middle box function.
Presently, network operators have to purchase a variety of middle boxes, such
as firewalls, load balancers, deep packet inspection boxes, and so forth.
And the idea behind network functions virtualization is,
let's suppose instead that we had a distributed compute
pool where we could dynamically install many of
those functions as software potentially running in virtual machines.
And then network them together using existing virtual network technology
such as that which we've discussed in this and other lessons.
So, in summary, there are many applications of virtual networking.
Virtual networking can support experimental deployments.
It can provide isolation to different
tenants running on a shared infrastructure.
It can allow dynamic reuse of resources from
a common pool, as well as dynamic scaling.
And it can also allow for easier management of those logical resources.
Navigation