So, at this point, we know that we're trying to reduce routing table sizes.
If I have routers 1, 2, and 3 here, and then I have a bunch of routers in the
middle,
well, this entire domain could essentially be a, or converted to a list domain,
where
we have list sites out here, and these list sites participate through this
tunneling mechanism.
So what exactly do we mean by separating out the identity and the locator? WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
So what exactly do we mean by separating out the identity and the locator?
Well, in Cisco's view, when we have an IP address, let's just do classic IPv4
at this
point, IPv6 would apply to as well.
But I view this IPv4 subnet to represent two things.
Because let's say we have subnet A over here, I'm going to say that that subnet
represents
the identifier for those hosts, and we could get so granular as to say that it
identifies
specific hosts on a slash 32, but at a minimum, that subnet tells me the WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
specific hosts on a slash 32, but at a minimum, that subnet tells me the
identity of that
particular network.
But it also tells me the location.
Because in a classic environment, route or two is going to have to advertise A,
and we're
all going to know where A lives, and we're all going to have a route that
points towards
A, so that if a packet arrives somewhere on these routers up here, that they
have a path
to A.
They know the location of A because it exists in their routing table.
Well, Cisco is trying to say we're going to divide these two concepts and treat WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
Well, Cisco is trying to say we're going to divide these two concepts and treat
them differently.
We're going to keep this as the identifier.
I mean, subnet A is still the identifier, but I'm no longer going to treat it
as the location.
Instead, I'm going to point the location now to router two, and specifically an
IP address
on router two, usually a loopback, that we refer to as that routing locator or WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
on router two, usually a loopback, that we refer to as that routing locator or
the RLoc.
The subnet takes on a different term, we call the endpoint identifier.
So we have EIDs and we have RLocs, and those are going to show up a lot
throughout the
list conversation.
So what does this look like?
Well, we're going to divide this conversation into sort of like what Cisco did
to identity
and location.
Hey, so we're going to start with a control plane conversation, and then we'll
move to
a data plane conversation. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
a data plane conversation.
So as we said before, everybody needs access to the routes.
And as a result, we're going to have to have a database that's accessible by
everybody,
and we'll learn that this database is known as a map resolver or an MR.
And it is going to have all the routes that again are accessible by all of the WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
And it is going to have all the routes that again are accessible by all of the
routers.
How do the routes get there?
Well, this is part of the control plane of operation.
Part 2 is going to register subnet A, and so there is subnet A listed among all
of the
other subnets that have been registered to this map resolver.
So we've done the registration process.
Now a packet arrives on router 1, and router 1 doesn't have a route to subnet A WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
Now a packet arrives on router 1, and router 1 doesn't have a route to subnet A
.
But what it does nav is, first of all, it knows where all the other routers in
the environment
are. So I do know where all of the R locks are, which is important because that
is now the
location that I would need to go to.
I just need to know which one of these are locks to use.
So I mean, I can send this to router 2.
I can send this to router 3.
I might have 50 other routers I could send it to, which one?
Well, that is where I'm going to go down and ask the database for. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
Well, that is where I'm going to go down and ask the database for.
I'm going to use what we might refer to as a poll method rather than a push
method.
A push method would say, "Hey, I know where subnet A lives.
I'm going to push that route to you.
You're going to push that route to everyone else, and we're all going to know
where subnet
A lives."
Even if we don't need to know where subnet A lives, we're pushing it everywhere
.
Well, that's not what we're doing at all.
I'm actually keeping this a secret, so to speak.
Maybe not a great secret because I do share it.
I do tell the database server about it. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
I do tell the database server about it.
The database server is going to note actually a pairing to say, "A" is attached
to this specific
RLock.
This is the EID is subnet A, and the RLock is going to be router 2.
Whatever IP address we're using for router 2, again, you probably will loop
back address.
I pull that information.
Everyone is going to look at the database and say, "Hey, I need this pairing,"
and so it sends
it back, and it says that A is attached to router 2. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
it back, and it says that A is attached to router 2.
Unfortunately, because I have all the routes to my RLock, I can just say, "Okay
, cool.
Now I'm going to send it into the network."
Well, there's a big caveat to what we're about to do here, because I need to
change the
destination.
The destination currently, current destination, is subnet A. Probably an IP
address specifically
on subnet A, but either way, we're trying to get to subnet A with the current WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
on subnet A, but either way, we're trying to get to subnet A with the current
packet.
So, I'm going to have to take that packet, and I'm going to have to insert it
into an encapsulation.
Other IP encapsulation, this time, so A is hidden in here now in the inner
packet, but now I have
an actual destination of the RLock for router 2.
This forms a tunnel from between router 1 and router 2. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
This forms a tunnel from between router 1 and router 2.
I'm sending it to this router.
This router doesn't have to check the database because the destination is just
router 2, and
we all know where router 2 is.
So, I send it down, and I send it down to router 2.
Router 2 de-incapsulates it, so now we're talking about stripping off that
header, recovering
the original packet, and sending it down to the destination.
This whole conversation we just had is the data plane aspect of Lisp.
The control plane is all about giving us access to the routes, and the WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
The control plane is all about giving us access to the routes, and the
propagation of that
information.
The data plane involves tunneling our traffic from one RLock to another, from
one edge router
to another.
Specifically, this is going to use in a form of IP and IP, so we're going to
place it
into another IP layer 3 packet.
This supports IPv4 and IPv6, by the way. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
This supports IPv4 and IPv6, by the way.
And importantly, it's going to use UDP.
Furthermore, on top of all of that, we're actually going to add a shim header
in here, and shim
headers usually just kind of get squeezed into the middle between the inner and
the outer
header, and this is going to contain some Lisp information in here.
Now, at this point, an important question we might ask ourselves is, why are we
studying
Lisp?
Because Lisp is a service provider protocol, and service provider is a whole WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
Because Lisp is a service provider protocol, and service provider is a whole
other set
of exams, and I'm here to take the enterprise networking exam, or maybe gear up
on my enterprise
networking knowledge, and the enterprise network is all the way over here.
Here's the enterprise network.
I don't need to worry about what service providers are doing usually for the
most part.
So why are we studying this?
Well, importantly, we're going to find that Cisco's software defined access
infrastructure, WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
which we have talked about already, is going to use Lisp.
Here's the kicker.
It's going to use Lisp for the control plane, but it's not going to use it at
the data plane.
And the reason for that is because the Lisp data plane is intended for layer
three.
It's IP inside of an IP header.
And for software to find access, we need layer two, which is why we use the X
LAN at the
data plane.
This is why it's so important for us to be able to split these protocols up and
talk about WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
talk about
control plane and data plane operations is because if they're fully segregated
from one
another, then that means that I can segment that I can pull them apart and say,
"Okay, well,
this is all great.
Lisp is great, but really I just want the control plane part.
And I'm going to take the control plane part.
I'm going to put it into another technology, which is exactly what Cisco did
with SDA."
So that's why it's so important we understand these important concepts of Lisp.
A lot of the terminology of Lisp that we're about to dive into is either used WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
A lot of the terminology of Lisp that we're about to dive into is either used
in software
to find access or parallels, sort of becomes something else inside of software
to find
access, but all of the concepts continue to exist.
So let's go ahead and continue to dive into Lisp knowing full well that this
does apply
to us in the enterprise space thanks to software to find access.