- In this video we're going to talk about SDN,
Software Defined Networking.
What does it do for us?
Well to begin with let's consider the traditional
architecture of our network infrastructure devices
like routers and switches.
They all have a data plane and the data plane is where we
carry the data.
The data plane is concerned with getting
the packets or frames in one interface,
and forwarding them out the appropriate exit interface
And the way to make that decision is based on
typically an algorithm running at the control plane
For example, a router is maybe using OSPF
as its routing protocol and the OSPF runs the Dykstra
algorithm, well that algorithm is running
at the control plane, or on a switch.
We might be running this spanning tree protocol algorithm.
This is where the number crunching goes on.
This is where the decisions are made,
this is what populates our macrotus table,
our routing table, and then we have the management plane
and in the management plane is how we as administrators,
connect to the devices for management purposes.
Maybe via Telnet, maybe via Secure Shell,
as a couple of examples.
And this traditional model is called a distributed
control plane because the control planes
are distributed in the different devices themselves.
However, with SDN, we often see an SDN controller.
And this SDN controller lets us consolidate
all the control planes on the control of the controller,
is running those algorithms.
The controller is populating the tables
within our devices.
And this can take the load off of our end devices
and the controller is talking to these devices
using an API, an Application Programing Interface.
And an API is just one piece of software
talking to another piece of software
and we typically draw these devices
below the controller, and just based on the way
a compass works, if something is down,
it's south of us, so these are called Southbound Interfaces,
or SPIs for short,
and this type of model, where the control plane
is centralized within the SDN controller,
this is called a Centralized Control Plane,
and the API that were speaking down
to those devices might be something like OpenFlow
is an example, that's an open standard.
It's part of the OpenDaylight project.
And sitting north of the controller,
we have applications.
Now these might be applications that we write,
it may be applications that we get
from another developer or modify to meet our specific needs.
But, the applications are going to communicate our intent
about how we want the network to behave,
we're going to communicate our intent
with the application down to the SDN controller,
and we're going to do that through an API,
and since the applications are above
or north of the SDN controller,
we say that they use Northbound Interfaces
or NBIs for short.
And the way the applications communicate
with the SDN controller is using a REST API,
or some people call them RESTful APIs.
Where REST stands for Representational State Transfer.
What we're talking about it really http verbs,
where we're saying that we want to put
information or we want to get information,
just like we would be talking to a webserver.
We could delete information.
But these RESTful APIs use those http verbs,
and as we're sending the instructions
down to the controller, we need to have those instructions
formatted in a specific way.
And later in this lesson we'll talk
about different ways of formatting data,
but a really common way of formatting the data
is using a format called JSON.
That stands for JavaScript Object Notation.
And by the way, Cisco doesn't necessarily
do the centralized control plane.
Often times, Cisco devices will keep
the distributed control plane model,
even though they can have a SDN controller,
they still keep their control plane centralized,
and speaking of Cisco, SDN controllers,
let's take a look at a couple of the more popular
SDN controllers that Cisco has.
First, we have the Cisco APIC, that stands
for Application Policy Infrastructure Controller.
This is typically found in a data center.
It's part of Cisco's ACI
or Application Centric Infrastructure.
Again, we typically see that in a data center,
but what's in the enterprise?
In the enterprise, we often have Cisco DNA center,
where DNA stands for Digital Network Architecture,
and DNA center can do several things for us.
We can use it for design,
we can literally have a map of the world
and we can have our different data centers
and different enterprise networks on this map
and we can drill down and we can see floor plans,
so we can do a big design using a DNA center.
We can also do provisioning.
For example, if we're buying new equipment,
we can have the configuration of that new equipment
already configured within DNA center.
And we can have the equipment sent to the destination
office where it's going to be installed
and somebody at that office, they simply plug it in,
and it's going to go out to a DNA server,
and it's going to download the IP address
of the TFPT server and it can pull down it's configuration,
and of course we can use the DNA center interface
to do configuration, we can set up policies
for example, quality of service policies,
security policies.
We can monitor what's going on on the network,
using DNA center and it's also got
a fantastic troubleshooting interface.
A lot of the troubleshooting issues we run into
have already been seen by Cisco tech,
the technical assistance center.
And it's sort of a like tech and knowledge base
that's contained within DNA center,
and if we have specific issues
that are detected on the network, we're going to get
tech responses, solutions that tech
has previously identified,
and also there's a troubleshooting feature
called network time travel
where we can metaphorically go back in time
and we can see the state of the network
at some time in the past,
so if we're doing troubleshooting and something bad happened
at three a.m. last night,
we can go back and check on network conditions
at that time, but the main reason we're bringing
it up in the SDN context,
is that DNA center acts as a programming platform.
In other words, it comes with a bunch of APIs,
a bunch of those Application Programming Interfaces
that we can use to communicate our intent
down to these end devices,
and that's an overview of Software Defined Networking.
Now in our next video, let's zoom in on that JSON
formatting that you use to send our intent
down to the SDN controller.