Off late there has been a lot of buzz around network virtualization.
Software
Define networks, Openflow, Nicira
acquisition by VMware,
Xsigo acquisition by Oracle, Wi-Fi
virtualization by AnyFi are few instances.
In the similar lines I was wondering if mobile packet core
can be placed in cloud and whether EPC can run on virtual servers rather than on
custom built hardware. As far as I know
there is quite some work going on in that direction in the industry. To
understand better I tried a little exercise to see if the idea is remotely
possible.
One of my colleagues has registered to Amazon Web Services and got an instance of Ubuntu
in cloud. That means he owns a virtual machine running Ubuntu which can reached
from anywhere in the world by an IP address and a set of encrypted key’s. It
seems it is very easy to setup an instance of linux using Amazon web services and
machine is up and running in matter of minutes. I, myself, have seen over past
few years the physical linux boxes in labs were being replaced with virtual
machines. So virtualization is not a new thing after all. But providing a virtually
instance in cloud, dynamically, and resources (Memory, network cards,
processors) being allocated based on the need is something new and interesting.
So my colleagues Ubuntu instance was up and running.
I took my GTP
code, SGW, that I wrote years ago and ran it on the server. MME was running on my local machine. Couple of
firewall exceptions on server and boom, my local machine and ubuntu on cloud
was nicely exchanging the GTP packets. Well, it’s a client server communication
you don’t need to be an Einstein to make it work; as long as IP’s are reachable
everything is supposed to work. So, here it is my first GTPv2 call over the
cloud onto a virtual server.
It does make me believe that mobile packet core can be
pushed to cloud and onto virtual machines. There are definite challenges, but
over the years it seems to be possible. Imagine bringing up more virtual instances
of EPC components during the peak hours and shutting them down during the nights.
If there are bunch of machines that are going to send one time information
during a particular time of day, we can get the virtual instances ready to take
the explosion of messages and bring down the instances once the information is
exchanged. Resource can be dynamically allocated based on need.
What do you think of this? Does this seem to be a viable
solution?