WEBVTT

1
00:00.000 --> 00:05.400
So, at this point, we know that we're trying to reduce routing table sizes.

2
00:05.400 --> 00:11.540
If I have routers 1, 2, and 3 here, and then I have a bunch of routers in the

3
00:11.540 --> 00:12.160
middle,

4
00:12.160 --> 00:18.000
well, this entire domain could essentially be a, or converted to a list domain,

5
00:18.000 --> 00:18.080
where

6
00:18.080 --> 00:24.020
we have list sites out here, and these list sites participate through this

7
00:24.020 --> 00:26.440
tunneling mechanism.

8
00:26.440 --> 00:31.800
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

8
00:26.440 --> 00:31.800
So what exactly do we mean by separating out the identity and the locator?

9
00:31.800 --> 00:37.570
Well, in Cisco's view, when we have an IP address, let's just do classic IPv4

10
00:37.570 --> 00:37.880
at this

11
00:37.880 --> 00:40.760
point, IPv6 would apply to as well.

12
00:40.760 --> 00:45.920
But I view this IPv4 subnet to represent two things.

13
00:45.920 --> 00:49.460
Because let's say we have subnet A over here, I'm going to say that that subnet

14
00:49.460 --> 00:50.160
represents

15
00:50.160 --> 00:56.820
the identifier for those hosts, and we could get so granular as to say that it

16
00:56.820 --> 00:57.880
identifies

17
00:57.880 --> 01:03.510
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

17
00:57.880 --> 01:03.510
specific hosts on a slash 32, but at a minimum, that subnet tells me the

18
01:03.510 --> 01:04.440
identity of that

19
01:04.440 --> 01:05.440
particular network.

20
01:05.440 --> 01:09.080
But it also tells me the location.

21
01:09.080 --> 01:12.170
Because in a classic environment, route or two is going to have to advertise A,

22
01:12.170 --> 01:12.520
and we're

23
01:12.520 --> 01:15.640
all going to know where A lives, and we're all going to have a route that

24
01:15.640 --> 01:16.440
points towards

25
01:16.440 --> 01:22.310
A, so that if a packet arrives somewhere on these routers up here, that they

26
01:22.310 --> 01:23.240
have a path

27
01:23.240 --> 01:24.240
to A.

28
01:24.240 --> 01:28.680
They know the location of A because it exists in their routing table.

29
01:28.680 --> 01:34.940
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

29
01:28.680 --> 01:34.940
Well, Cisco is trying to say we're going to divide these two concepts and treat

30
01:34.940 --> 01:36.520
them differently.

31
01:36.520 --> 01:38.760
We're going to keep this as the identifier.

32
01:38.760 --> 01:44.380
I mean, subnet A is still the identifier, but I'm no longer going to treat it

33
01:44.380 --> 01:46.320
as the location.

34
01:46.320 --> 01:53.410
Instead, I'm going to point the location now to router two, and specifically an

35
01:53.410 --> 01:54.480
IP address

36
01:54.480 --> 02:00.880
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

36
01:54.480 --> 02:00.880
on router two, usually a loopback, that we refer to as that routing locator or

37
02:00.880 --> 02:02.200
the RLoc.

38
02:02.200 --> 02:06.800
The subnet takes on a different term, we call the endpoint identifier.

39
02:06.800 --> 02:10.910
So we have EIDs and we have RLocs, and those are going to show up a lot

40
02:10.910 --> 02:11.880
throughout the

41
02:11.880 --> 02:14.200
list conversation.

42
02:14.200 --> 02:16.120
So what does this look like?

43
02:16.120 --> 02:20.580
Well, we're going to divide this conversation into sort of like what Cisco did

44
02:20.580 --> 02:21.360
to identity

45
02:21.360 --> 02:22.360
and location.

46
02:22.360 --> 02:27.980
Hey, so we're going to start with a control plane conversation, and then we'll

47
02:27.980 --> 02:28.520
move to

48
02:28.520 --> 02:30.600
a data plane conversation.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

48
02:28.520 --> 02:30.600
a data plane conversation.

49
02:30.600 --> 02:39.120
So as we said before, everybody needs access to the routes.

50
02:39.120 --> 02:44.310
And as a result, we're going to have to have a database that's accessible by

51
02:44.310 --> 02:44.480
everybody,

52
02:44.480 --> 02:55.880
and we'll learn that this database is known as a map resolver or an MR.

53
02:55.880 --> 03:02.630
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

53
02:55.880 --> 03:02.630
And it is going to have all the routes that again are accessible by all of the

54
03:02.630 --> 03:03.320
routers.

55
03:03.320 --> 03:04.640
How do the routes get there?

56
03:04.640 --> 03:07.880
Well, this is part of the control plane of operation.

57
03:07.880 --> 03:14.130
Part 2 is going to register subnet A, and so there is subnet A listed among all

58
03:14.130 --> 03:14.560
of the

59
03:14.560 --> 03:19.160
other subnets that have been registered to this map resolver.

60
03:19.160 --> 03:22.120
So we've done the registration process.

61
03:22.120 --> 03:30.460
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

61
03:22.120 --> 03:30.460
Now a packet arrives on router 1, and router 1 doesn't have a route to subnet A

62
03:30.460 --> 03:30.520
.

63
03:30.520 --> 03:34.860
But what it does nav is, first of all, it knows where all the other routers in

64
03:34.860 --> 03:35.560
the environment

65
03:35.560 --> 03:42.070
are. So I do know where all of the R locks are, which is important because that

66
03:42.070 --> 03:42.640
is now the

67
03:42.640 --> 03:44.720
location that I would need to go to.

68
03:44.720 --> 03:48.400
I just need to know which one of these are locks to use.

69
03:48.400 --> 03:51.680
So I mean, I can send this to router 2.

70
03:51.680 --> 03:53.080
I can send this to router 3.

71
03:53.080 --> 03:56.960
I might have 50 other routers I could send it to, which one?

72
03:56.960 --> 04:01.320
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

72
03:56.960 --> 04:01.320
Well, that is where I'm going to go down and ask the database for.

73
04:01.320 --> 04:06.730
I'm going to use what we might refer to as a poll method rather than a push

74
04:06.730 --> 04:07.600
method.

75
04:07.600 --> 04:10.240
A push method would say, "Hey, I know where subnet A lives.

76
04:10.240 --> 04:12.560
I'm going to push that route to you.

77
04:12.560 --> 04:16.050
You're going to push that route to everyone else, and we're all going to know

78
04:16.050 --> 04:16.560
where subnet

79
04:16.560 --> 04:17.560
A lives."

80
04:17.560 --> 04:21.510
Even if we don't need to know where subnet A lives, we're pushing it everywhere

81
04:21.510 --> 04:21.760
.

82
04:21.760 --> 04:23.360
Well, that's not what we're doing at all.

83
04:23.360 --> 04:26.840
I'm actually keeping this a secret, so to speak.

84
04:26.840 --> 04:28.800
Maybe not a great secret because I do share it.

85
04:28.800 --> 04:31.600
I do tell the database server about it.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

85
04:28.800 --> 04:31.600
I do tell the database server about it.

86
04:31.600 --> 04:37.670
The database server is going to note actually a pairing to say, "A" is attached

87
04:37.670 --> 04:38.840
to this specific

88
04:38.840 --> 04:40.680
RLock.

89
04:40.680 --> 04:47.200
This is the EID is subnet A, and the RLock is going to be router 2.

90
04:47.200 --> 04:51.260
Whatever IP address we're using for router 2, again, you probably will loop

91
04:51.260 --> 04:52.200
back address.

92
04:52.200 --> 04:54.960
I pull that information.

93
04:54.960 --> 04:58.430
Everyone is going to look at the database and say, "Hey, I need this pairing,"

94
04:58.430 --> 04:59.440
and so it sends

95
04:59.440 --> 05:04.560
it back, and it says that A is attached to router 2.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

95
04:59.440 --> 05:04.560
it back, and it says that A is attached to router 2.

96
05:04.560 --> 05:09.310
Unfortunately, because I have all the routes to my RLock, I can just say, "Okay

97
05:09.310 --> 05:10.200
, cool.

98
05:10.200 --> 05:12.240
Now I'm going to send it into the network."

99
05:12.240 --> 05:16.990
Well, there's a big caveat to what we're about to do here, because I need to

100
05:16.990 --> 05:17.740
change the

101
05:17.740 --> 05:19.280
destination.

102
05:19.280 --> 05:26.760
The destination currently, current destination, is subnet A. Probably an IP

103
05:26.760 --> 05:27.800
address specifically

104
05:27.800 --> 05:31.640
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

104
05:27.800 --> 05:31.640
on subnet A, but either way, we're trying to get to subnet A with the current

105
05:31.640 --> 05:32.240
packet.

106
05:32.240 --> 05:41.300
So, I'm going to have to take that packet, and I'm going to have to insert it

107
05:41.300 --> 05:42.960
into an encapsulation.

108
05:42.960 --> 05:49.310
Other IP encapsulation, this time, so A is hidden in here now in the inner

109
05:49.310 --> 05:51.040
packet, but now I have

110
05:51.040 --> 05:55.900
an actual destination of the RLock for router 2.

111
05:55.900 --> 06:00.280
This forms a tunnel from between router 1 and router 2.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

111
05:55.900 --> 06:00.280
This forms a tunnel from between router 1 and router 2.

112
06:00.280 --> 06:02.720
I'm sending it to this router.

113
06:02.720 --> 06:06.960
This router doesn't have to check the database because the destination is just

114
06:06.960 --> 06:08.040
router 2, and

115
06:08.040 --> 06:09.960
we all know where router 2 is.

116
06:09.960 --> 06:13.480
So, I send it down, and I send it down to router 2.

117
06:13.480 --> 06:17.440
Router 2 de-incapsulates it, so now we're talking about stripping off that

118
06:17.440 --> 06:18.560
header, recovering

119
06:18.560 --> 06:23.600
the original packet, and sending it down to the destination.

120
06:23.600 --> 06:29.740
This whole conversation we just had is the data plane aspect of Lisp.

121
06:29.740 --> 06:33.860
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

121
06:29.740 --> 06:33.860
The control plane is all about giving us access to the routes, and the

122
06:33.860 --> 06:35.560
propagation of that

123
06:35.560 --> 06:36.680
information.

124
06:36.680 --> 06:42.640
The data plane involves tunneling our traffic from one RLock to another, from

125
06:42.640 --> 06:44.120
one edge router

126
06:44.120 --> 06:45.120
to another.

127
06:45.120 --> 06:51.100
Specifically, this is going to use in a form of IP and IP, so we're going to

128
06:51.100 --> 06:51.920
place it

129
06:51.920 --> 06:55.160
into another IP layer 3 packet.

130
06:55.160 --> 07:01.080
This supports IPv4 and IPv6, by the way.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

130
06:55.160 --> 07:01.080
This supports IPv4 and IPv6, by the way.

131
07:01.080 --> 07:06.280
And importantly, it's going to use UDP.

132
07:06.280 --> 07:11.380
Furthermore, on top of all of that, we're actually going to add a shim header

133
07:11.380 --> 07:12.120
in here, and shim

134
07:12.120 --> 07:17.030
headers usually just kind of get squeezed into the middle between the inner and

135
07:17.030 --> 07:17.720
the outer

136
07:17.720 --> 07:21.800
header, and this is going to contain some Lisp information in here.

137
07:21.800 --> 07:26.200
Now, at this point, an important question we might ask ourselves is, why are we

138
07:26.200 --> 07:26.800
studying

139
07:26.800 --> 07:27.800
Lisp?

140
07:27.800 --> 07:32.230
Because Lisp is a service provider protocol, and service provider is a whole
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

140
07:27.800 --> 07:32.230
Because Lisp is a service provider protocol, and service provider is a whole

141
07:32.230 --> 07:33.120
other set

142
07:33.120 --> 07:39.020
of exams, and I'm here to take the enterprise networking exam, or maybe gear up

143
07:39.020 --> 07:39.960
on my enterprise

144
07:39.960 --> 07:45.080
networking knowledge, and the enterprise network is all the way over here.

145
07:45.080 --> 07:46.640
Here's the enterprise network.

146
07:46.640 --> 07:51.830
I don't need to worry about what service providers are doing usually for the

147
07:51.830 --> 07:52.800
most part.

148
07:52.800 --> 07:54.360
So why are we studying this?

149
07:54.360 --> 07:58.770
Well, importantly, we're going to find that Cisco's software defined access

150
07:58.770 --> 08:00.000
infrastructure,
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

151
08:00.000 --> 08:03.560
which we have talked about already, is going to use Lisp.

152
08:03.560 --> 08:05.080
Here's the kicker.

153
08:05.080 --> 08:09.710
It's going to use Lisp for the control plane, but it's not going to use it at

154
08:09.710 --> 08:11.240
the data plane.

155
08:11.240 --> 08:15.590
And the reason for that is because the Lisp data plane is intended for layer

156
08:15.590 --> 08:16.240
three.

157
08:16.240 --> 08:19.720
It's IP inside of an IP header.

158
08:19.720 --> 08:24.730
And for software to find access, we need layer two, which is why we use the X

159
08:24.730 --> 08:25.040
LAN at the

160
08:25.040 --> 08:26.560
data plane.

161
08:26.560 --> 08:29.840
This is why it's so important for us to be able to split these protocols up and

162
08:29.840 --> 08:30.360
talk about
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

162
08:29.840 --> 08:30.360
talk about

163
08:30.360 --> 08:35.740
control plane and data plane operations is because if they're fully segregated

164
08:35.740 --> 08:36.280
from one

165
08:36.280 --> 08:40.730
another, then that means that I can segment that I can pull them apart and say,

166
08:40.730 --> 08:41.640
"Okay, well,

167
08:41.640 --> 08:42.640
this is all great.

168
08:42.640 --> 08:46.600
Lisp is great, but really I just want the control plane part.

169
08:46.600 --> 08:47.840
And I'm going to take the control plane part.

170
08:47.840 --> 08:52.180
I'm going to put it into another technology, which is exactly what Cisco did

171
08:52.180 --> 08:53.400
with SDA."

172
08:53.400 --> 08:56.720
So that's why it's so important we understand these important concepts of Lisp.

173
08:56.720 --> 09:01.010
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

173
08:56.720 --> 09:01.010
A lot of the terminology of Lisp that we're about to dive into is either used

174
09:01.010 --> 09:01.760
in software

175
09:01.760 --> 09:05.780
to find access or parallels, sort of becomes something else inside of software

176
09:05.780 --> 09:06.240
to find

177
09:06.240 --> 09:10.000
access, but all of the concepts continue to exist.

178
09:10.000 --> 09:13.120
So let's go ahead and continue to dive into Lisp knowing full well that this

179
09:13.120 --> 09:13.720
does apply

180
09:13.720 --> 09:17.080
to us in the enterprise space thanks to software to find access.
