WEBVTT

1
00:00.000 --> 00:07.920
So let's begin our journey into BGP by covering some of its basic attributes

2
00:07.920 --> 00:08.780
and some of the

3
00:08.780 --> 00:12.140
tools that we use when troubleshooting BGP.

4
00:12.140 --> 00:16.910
Now keep in mind, the number one tool in our toolbox when troubleshooting

5
00:16.910 --> 00:18.020
anything is to

6
00:18.020 --> 00:21.860
have knowledge of what it is we're trying to troubleshoot.

7
00:21.860 --> 00:26.730
The more we know about it, the more we know how it normally behaves, making it

8
00:26.730 --> 00:27.260
easier

9
00:27.260 --> 00:32.360
to pick out why it's not behaving normally and what might be causing that.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

9
00:27.260 --> 00:32.360
to pick out why it's not behaving normally and what might be causing that.

10
00:32.360 --> 00:37.900
So that said, this is hopefully not your first introduction to BGP.

11
00:37.900 --> 00:42.740
We are hoping that you have some base knowledge of BGP before we jump in.

12
00:42.740 --> 00:48.140
If not, I would encourage you to review other material before we jump in here.

13
00:48.140 --> 00:52.620
We're hoping that this is going to serve as a reminder of some information you

14
00:52.620 --> 00:53.140
already

15
00:53.140 --> 00:54.140
knew.

16
00:54.140 --> 00:57.710
So that said, let's jump in and get started looking at some of the basic

17
00:57.710 --> 00:58.620
characteristics

18
00:58.620 --> 01:03.420
and attributes of BGP.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

18
00:58.620 --> 01:03.420
and attributes of BGP.

19
01:03.420 --> 01:08.360
So the first thing we want to be aware of with BGP is that this is in fact a

20
01:08.360 --> 01:09.740
path vector

21
01:09.740 --> 01:11.540
routing protocol.

22
01:11.540 --> 01:16.020
And essentially what that means is that we're going to be routing the traffic

23
01:16.020 --> 01:17.060
between different

24
01:17.060 --> 01:23.280
autonomous systems or AS's and we're going to be using the shortest path in

25
01:23.280 --> 01:23.920
relation

26
01:23.920 --> 01:29.100
to our AS numbers as we pass the routes to the environment.

27
01:29.100 --> 01:34.580
Now BGP of course uses a rather complex route selection criteria, which we're
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

27
01:29.100 --> 01:34.580
Now BGP of course uses a rather complex route selection criteria, which we're

28
01:34.580 --> 01:35.200
going to be

29
01:35.200 --> 01:37.340
taking a look at later.

30
01:37.340 --> 01:41.000
And part of that is the shortest AS path.

31
01:41.000 --> 01:45.750
But at this point, we're just trying to point out the fact that we are routing

32
01:45.750 --> 01:46.220
between

33
01:46.220 --> 01:54.760
AS's, we are not routing between next hops or routers or devices.

34
01:54.760 --> 01:59.880
However, you want to say that we're routing between autonomous systems.

35
01:59.880 --> 02:05.840
So to a certain extent, BGP is more like the 30,000 foot view when it comes to
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

35
01:59.880 --> 02:05.840
So to a certain extent, BGP is more like the 30,000 foot view when it comes to

36
02:05.840 --> 02:06.760
routing.

37
02:06.760 --> 02:11.960
This is why it's considered an EGP or an external gateway protocol.

38
02:11.960 --> 02:15.160
It's not meant for inside of a network.

39
02:15.160 --> 02:21.100
Now we can of course certainly use it for that, particularly in regards to some

40
02:21.100 --> 02:21.520
of its

41
02:21.520 --> 02:26.220
extensions that have come out over the years making this multiproticall.

42
02:26.220 --> 02:31.060
What we mean by that is of course it supports IPv4.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

42
02:26.220 --> 02:31.060
What we mean by that is of course it supports IPv4.

43
02:31.060 --> 02:36.460
Wouldn't be much of a routing protocol for the internet if it wasn't.

44
02:36.460 --> 02:42.180
And just in case you weren't aware, yes, BGP is the routing protocol used on

45
02:42.180 --> 02:43.260
the internet

46
02:43.260 --> 02:47.180
for routing between service providers and so on.

47
02:47.180 --> 02:50.700
It of course also supports IPv6.

48
02:50.700 --> 02:56.210
So once IPv6 becomes more prevalent and that is happening more and more as time

49
02:56.210 --> 02:57.500
goes by,

50
02:57.500 --> 03:01.780
BGP is ready to go, fully supports IPv6.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

50
02:57.500 --> 03:01.780
BGP is ready to go, fully supports IPv6.

51
03:01.780 --> 03:08.490
But it's also been extended to support other things such as MPLS or what we

52
03:08.490 --> 03:09.780
call VPN v4

53
03:09.780 --> 03:12.340
or VPN v6 routes.

54
03:12.340 --> 03:19.840
So essentially what that means is for MPLS this is acting as the control plane.

55
03:19.840 --> 03:25.660
And we have the same thing for VXLAN or virtual extensible LAN.

56
03:25.660 --> 03:30.750
In this case it's being used to exchange MAC addresses and such, but
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

56
03:25.660 --> 03:30.750
In this case it's being used to exchange MAC addresses and such, but

57
03:30.750 --> 03:31.580
nonetheless it

58
03:31.580 --> 03:36.580
is still acting as a control plane for VXLAN.

59
03:36.580 --> 03:41.620
So BGP has a lot of different uses, of course the most popular and the most

60
03:41.620 --> 03:42.620
famous of all

61
03:42.620 --> 03:44.420
is internet routing.

62
03:44.420 --> 03:49.060
But it's also used as the control plane in MPLS and VXLAN.

63
03:49.060 --> 03:52.260
And a lot of these are for the reasons that we're going to be talking about

64
03:52.260 --> 03:52.700
next.

65
03:52.700 --> 03:57.500
Let's talk about some of the benefits of using BGP.

66
03:57.500 --> 04:02.690
First for most and probably its biggest and most important feature, it is
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

66
03:57.500 --> 04:02.690
First for most and probably its biggest and most important feature, it is

67
04:02.690 --> 04:03.700
scalable.

68
04:03.700 --> 04:09.500
BGP is the most scalable routing protocol that we have, being able to handle,

69
04:09.500 --> 04:10.100
particularly

70
04:10.100 --> 04:15.510
when we get to things like MPLS cores, carrying customer routes and so on, it

71
04:15.510 --> 04:16.420
can scale to

72
04:16.420 --> 04:19.460
literally millions of routes.

73
04:19.460 --> 04:22.740
So very, very scalable.

74
04:22.740 --> 04:26.460
Along with scalable is always good to have stability.

75
04:26.460 --> 04:29.500
BGP is also very stable.

76
04:29.500 --> 04:31.700
Now what exactly does that mean?
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

76
04:29.500 --> 04:31.700
Now what exactly does that mean?

77
04:31.700 --> 04:38.800
Well, BGP particularly inside of an environment, so our IBGP, neighborships are

78
04:38.800 --> 04:39.820
often built

79
04:39.820 --> 04:42.580
between loopback interfaces.

80
04:42.580 --> 04:47.610
That way, if there are multiple physical paths between devices and one of those

81
04:47.610 --> 04:48.180
paths were

82
04:48.180 --> 04:53.620
to go down, particularly the one we're using, the underlying IGP.

83
04:53.620 --> 04:58.700
So for example, maybe OSPF or ISIS.

84
04:58.700 --> 05:04.210
That routing protocol will converge so fast that BGP never even realizes that
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

84
04:58.700 --> 05:04.210
That routing protocol will converge so fast that BGP never even realizes that

85
05:04.210 --> 05:05.180
its neighbor

86
05:05.180 --> 05:06.860
went down.

87
05:06.860 --> 05:09.340
Therefore, we don't have to rebuild a neighborship.

88
05:09.340 --> 05:13.380
We don't have to re-synchronize our BGP tables.

89
05:13.380 --> 05:15.980
Everything just stays stable.

90
05:15.980 --> 05:21.800
And honestly, another huge feature is the ability to do route filtering and

91
05:21.800 --> 05:23.260
route control.

92
05:23.260 --> 05:25.460
But let's start with filtering.

93
05:25.460 --> 05:29.420
We can of course do both inbound and outbound filtering.

94
05:29.420 --> 05:36.980
And we can do this with things like ASPath lists, ACLs, prefix lists, route
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

94
05:29.420 --> 05:36.980
And we can do this with things like ASPath lists, ACLs, prefix lists, route

95
05:36.980 --> 05:37.780
maps, and

96
05:37.780 --> 05:42.550
even just setting something like a prefix limit, which simply says you may not

97
05:42.550 --> 05:43.060
accept

98
05:43.060 --> 05:46.140
more than 10,000 routes from this neighbor.

99
05:46.140 --> 05:49.330
That way, if the neighbor accidentally gets misconfigured and tries to send you

100
05:49.330 --> 05:50.340
100,000

101
05:50.340 --> 05:53.740
routes, we'll shut down that neighborship.

102
05:53.740 --> 05:58.810
Now as far as the filtering goes here, we're going to get into more detail on

103
05:58.810 --> 05:59.980
this filtering

104
05:59.980 --> 06:02.020
in the next skill.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

104
05:59.980 --> 06:02.020
in the next skill.

105
06:02.020 --> 06:06.520
But for now, let's just be aware that BGP does have some very powerful route

106
06:06.520 --> 06:07.180
filtering

107
06:07.180 --> 06:09.020
capabilities.

108
06:09.020 --> 06:15.300
And right along with that is our traffic engineering or path selection.

109
06:15.300 --> 06:21.120
So what we mean by this is simply manipulating BGP so the traffic goes the way

110
06:21.120 --> 06:21.980
we want it

111
06:21.980 --> 06:22.980
to.

112
06:22.980 --> 06:28.120
Now, the way we're going to do this is usually with route maps and those route

113
06:28.120 --> 06:28.900
maps are going

114
06:28.900 --> 06:33.180
to be used to manipulate the BGP attributes.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

114
06:28.900 --> 06:33.180
to be used to manipulate the BGP attributes.

115
06:33.180 --> 06:37.990
The most direct attribute to change to pick a particular path would be to

116
06:37.990 --> 06:39.100
change the next

117
06:39.100 --> 06:40.100
hop.

118
06:40.100 --> 06:44.260
If you change the next hop of a route, you are very, very clearly choosing

119
06:44.260 --> 06:44.860
which way that

120
06:44.860 --> 06:46.860
traffic's going to go.

121
06:46.860 --> 06:53.410
However, we can use some of the other BGP attributes such as local preference,

122
06:53.410 --> 06:53.920
the AS

123
06:53.920 --> 07:00.230
path length, the Med or the metric as Cisco calls it, Cisco's proprietary
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

123
06:53.920 --> 07:00.230
path length, the Med or the metric as Cisco calls it, Cisco's proprietary

124
07:00.230 --> 07:02.020
weight attribute,

125
07:02.020 --> 07:07.280
any of these can be manipulated to affect BGP's best path choice as far as

126
07:07.280 --> 07:08.300
which route

127
07:08.300 --> 07:11.860
to choose and which one to put into the routing table.

128
07:11.860 --> 07:15.720
And of course, we'll talk about the order these are processed in and the best

129
07:15.720 --> 07:16.540
path selection

130
07:16.540 --> 07:20.860
criteria coming up later in this skill.

131
07:20.860 --> 07:24.220
Also we put community strings on here.

132
07:24.220 --> 07:29.480
Just be aware that community strings are really just an indirect way to affect

133
07:29.480 --> 07:30.260
these other
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

133
07:29.480 --> 07:30.260
these other

134
07:30.260 --> 07:31.740
attributes.

135
07:31.740 --> 07:37.410
In other words, we can have our route map match on community strings and based

136
07:37.410 --> 07:37.740
on the

137
07:37.740 --> 07:43.100
community strings, then change one of these other attributes, therefore

138
07:43.100 --> 07:44.180
affecting the

139
07:44.180 --> 07:45.700
path selection.

140
07:45.700 --> 07:49.940
So it's sort of an indirect method, but it's a good way of implementing a

141
07:49.940 --> 07:50.820
policy so that

142
07:50.820 --> 07:55.580
all routes with certain community strings get treated the same way.

143
07:55.580 --> 07:59.570
So to wrap up our introduction here, let's take a look at some of the tools

144
07:59.570 --> 08:00.140
that are
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

144
07:59.570 --> 08:00.140
that are

145
08:00.140 --> 08:03.340
very helpful when troubleshooting BGP.

146
08:03.340 --> 08:08.020
Now the first one, of course, isn't directly related to BGP itself.

147
08:08.020 --> 08:11.340
Just the good old show IP interface brief to make sure the appropriate

148
08:11.340 --> 08:12.140
interfaces are

149
08:12.140 --> 08:13.140
up.

150
08:13.140 --> 08:16.980
Basically just troubleshooting 101 on the router.

151
08:16.980 --> 08:20.580
Then we have show TCP brief all.

152
08:20.580 --> 08:25.350
This is a way to make sure that your device is listening to the appropriate TCP

153
08:25.350 --> 08:25.940
port.

154
08:25.940 --> 08:31.100
Remember, we would want to be listening to TCP port 179.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

154
08:25.940 --> 08:31.100
Remember, we would want to be listening to TCP port 179.

155
08:31.100 --> 08:36.650
Show IP BGP summary is a great way to get a basic overview of our neighborhoods

156
08:36.650 --> 08:37.540
, whether

157
08:37.540 --> 08:41.740
the neighbors are up what their current status is, and how many prefixes have

158
08:41.740 --> 08:43.100
been exchanged.

159
08:43.100 --> 08:48.220
Also, of course, a list of what devices we expect to be our neighbors.

160
08:48.220 --> 08:51.620
For more detail, we can do a show IP BGP neighbor.

161
08:51.620 --> 08:54.560
So if we don't get enough information from summary, of course, neighbor is

162
08:54.560 --> 08:55.100
going to give

163
08:55.100 --> 08:57.500
us a lot of details.

164
08:57.500 --> 09:03.220
And we can, if we want to after this, specify the address of the neighbor and
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

164
08:57.500 --> 09:03.220
And we can, if we want to after this, specify the address of the neighbor and

165
09:03.220 --> 09:04.260
get even more

166
09:04.260 --> 09:05.260
information.

167
09:05.260 --> 09:10.380
We have a show IP route BGP, of course, to make sure BGP routes are showing up

168
09:10.380 --> 09:10.700
in the

169
09:10.700 --> 09:12.660
routing table.

170
09:12.660 --> 09:19.020
Show IP BGP, of course, this is how we look at the BGP table.

171
09:19.020 --> 09:22.100
This is going to give us a lot of important information.

172
09:22.100 --> 09:25.740
For one thing, we can see all those attributes we were just talking about.

173
09:25.740 --> 09:30.420
Plus, we can see if it's been selected as the best path, if the next hops reach
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

173
09:25.740 --> 09:30.420
Plus, we can see if it's been selected as the best path, if the next hops reach

174
09:30.420 --> 09:30.980
able,

175
09:30.980 --> 09:32.420
all that kind of information.

176
09:32.420 --> 09:35.860
Then, of course, we have some good debug's as well.

177
09:35.860 --> 09:38.580
Debug IP TCP transactions.

178
09:38.580 --> 09:43.200
We can use this to verify that we're actually attempting to open a TCP three

179
09:43.200 --> 09:44.180
way handshake

180
09:44.180 --> 09:49.180
to the appropriate neighbor and that we're trying to open it on port 179 once

181
09:49.180 --> 09:50.060
again.

182
09:50.060 --> 09:53.580
And debug IP BGP events.

183
09:53.580 --> 09:57.880
Also a very good debug to watch what's going on with BGP itself, such as

184
09:57.880 --> 09:58.780
neighborships

185
09:58.780 --> 10:02.700
forming and tables being exchanged and so on.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

185
09:58.780 --> 10:02.700
forming and tables being exchanged and so on.

186
10:02.700 --> 10:07.060
Now as per usual, there's a lot more show commands and debug commands.

187
10:07.060 --> 10:11.660
This is just meant to be a quick list of some of the most popular.

188
10:11.660 --> 10:17.120
So in this video, we just jumped in and got started with an overview of some of

189
10:17.120 --> 10:17.620
the more

190
10:17.620 --> 10:23.340
important BGP attributes, where we would use it, what BGP is good for.

191
10:23.340 --> 10:27.960
Then of course, we took a look here at some popular tools that we're going to

192
10:27.960 --> 10:28.580
be using

193
10:28.580 --> 10:31.740
for troubleshooting BGP issues.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

193
10:28.580 --> 10:31.740
for troubleshooting BGP issues.

194
10:31.740 --> 10:36.290
And of course, one of the primary issues would be neighborships not forming

195
10:36.290 --> 10:37.140
properly.

196
10:37.140 --> 10:39.700
And that's what we're going to take a look at in the next video.

197
10:39.700 --> 10:48.900
[BLANK_AUDIO]
