Another definition of software defined networking is software defined networking via APIs or application
programming interfaces.
In this vision, rather than being tied to configuring a network device via a command line interface,
which is very restrictive, why don't we have richer programmatic interfaces on networking devices?
An example would be let's use a restful API rather than a basic CLI.
Other protocols like over SDB and net conf could be used to programmatically change the configuration
of a networking device.
Now you may be thinking, well, I'll just use simple network management protocol or S&P.
S&P has some restrictions and doesn't work particularly well when you want to change the configuration
of a device.
Another definition would be using A6, and I've put this as a separate vision of SD and there will be
a separate course on Cisco.
HCI using a protocol called OP Flex.
Cisco purchased a startup called in Semi and they have developed a vision of SG n using hardware or
A6.
So the Cisco solution is very reliant on an ACE ECC implementation and ties in with their Nexus product
line.
Other terms you may come across include cloud automation using OpenStack.
One of the visions with OpenStack is that we should be able to manage all our networking devices, servers
and storage from a single management console.
We'll talk more about OpenStack in a separate course.
What about NFV or network function virtualization?
I'd recommend that you visit the open AVI website for more details about an AVI, but to give you a
very quick overview of NFV is why do you run specific operating systems on specific hardware to provide
a function?
As an example, why do you have a hardware firewall that just provides that function?
In the past, you had servers that had specific functions installed on specific hardware.
As an example, you may have had an exchange server or a database server or a file server.
Every server was running on dedicated hardware.
Then a few years ago, servers got virtualized, so you no longer run.
For instance, some server platforms on hardware, you run them within virtual machines, and typically
you would run many virtual machines on a single hardware device.
And there are many advantages to the virtualization of servers in the same way, why don't we virtualize
networking devices?
So as an example, we might virtualize a Cisco router using the CSR or an HPE router using a VSA or
a switch using OVS or Open V switch.
Many of us have encountered virtual switching in a VMware environment.
VMware have virtual switches running in their hypervisors.
So taking this a step further, why don't we virtualize networking devices rather than having a dedicated
router or a dedicated firewall?
Why don't we just run a VM with that function so we could virtualize a firewall or virtualize a router,
but we could take it a step further.
So as an example, rather than running a Windows operating system, just to give me a specific application
like a web server, why don't we virtualize the operating system as well and run multiple applications
separated from each other as if they're in different VMs or containers is a term that's often used today
and separate the applications from each other, but have multiple applications running on a single server
in the same way.
Why don't we virtualize a function such as VR or PE or a firewall function rather than running a full
blown operating system per function?
Why don't we run one operating system and just instantiate network functions and many of them on a single
operating system?
We'll talk more about NFV in a separate course.
For now, I'm going to introduce open Steen and a bit of open flow.
Have a look at more detailed courses available on Genius three.
I will hopefully be discussing the details of all of these in upcoming courses.