1 00:00:00,000 --> 00:00:03,374 [AUDIO LOGO] 2 00:00:03,374 --> 00:00:07,230 3 00:00:07,230 --> 00:00:09,150 So now that we've taken a deeper look 4 00:00:09,150 --> 00:00:13,590 at things like IS-IS neighborships and packet types, 5 00:00:13,590 --> 00:00:18,760 let's jump in and take a deeper look at the IS-IS database. 6 00:00:18,760 --> 00:00:21,150 So we'll start off by looking at some attributes 7 00:00:21,150 --> 00:00:23,580 and things we need to know about the database. 8 00:00:23,580 --> 00:00:25,380 And then we'll jump into the command line 9 00:00:25,380 --> 00:00:27,700 and take a look at the database itself. 10 00:00:27,700 --> 00:00:29,640 So let's go ahead and jump in and get 11 00:00:29,640 --> 00:00:33,860 started with looking at some of those attributes. 12 00:00:33,860 --> 00:00:35,960 So as we've mentioned previously, 13 00:00:35,960 --> 00:00:40,690 we do exchange LSPs to build the link state 14 00:00:40,690 --> 00:00:43,870 database or the LSDB. 15 00:00:43,870 --> 00:00:46,900 Our focus in this video is going to be on the link state 16 00:00:46,900 --> 00:00:51,550 database itself as we've already sort of looked at those LSPs. 17 00:00:51,550 --> 00:00:55,690 Now what we use the link state database for is to, of course, 18 00:00:55,690 --> 00:00:59,080 build the topology which is, of course, then 19 00:00:59,080 --> 00:01:03,070 used to build the shortest path first tree 20 00:01:03,070 --> 00:01:07,310 which is ultimately going to build our routing table. 21 00:01:07,310 --> 00:01:09,650 Now we've mentioned this a few times as well, 22 00:01:09,650 --> 00:01:15,980 but remember that the level 1 LSPs are for within an area. 23 00:01:15,980 --> 00:01:20,210 So this is the topology for a single area. 24 00:01:20,210 --> 00:01:24,380 And if a router is in just a single level, 25 00:01:24,380 --> 00:01:27,340 well, then it's just going to have that one link state 26 00:01:27,340 --> 00:01:33,430 database and therefore only run SPF once against that link 27 00:01:33,430 --> 00:01:34,790 state database. 28 00:01:34,790 --> 00:01:38,770 So there'll only be just that one calculation. 29 00:01:38,770 --> 00:01:43,120 If it's a level 1 and a level 2 router, well, 30 00:01:43,120 --> 00:01:46,390 then it's going to have to link state databases. 31 00:01:46,390 --> 00:01:47,890 And of course, that means it's going 32 00:01:47,890 --> 00:01:53,860 to also have to run two SPF calculations against the two 33 00:01:53,860 --> 00:01:55,600 link state databases. 34 00:01:55,600 --> 00:01:59,260 If there's two, we have to run SFP twice. 35 00:01:59,260 --> 00:02:01,780 Now something else fundamental to keep in mind 36 00:02:01,780 --> 00:02:06,520 is these link state packets are flooded to all 37 00:02:06,520 --> 00:02:09,770 the neighbors in an area. 38 00:02:09,770 --> 00:02:12,010 Now, of course, it's not going to send it back 39 00:02:12,010 --> 00:02:13,720 to the one that originated it. 40 00:02:13,720 --> 00:02:16,330 There would be no point in doing so. 41 00:02:16,330 --> 00:02:18,610 And we have mentioned this a few times, but just 42 00:02:18,610 --> 00:02:23,020 as a final reminder here, level 1 LSPs 43 00:02:23,020 --> 00:02:28,870 are only flooded within an area, and the level 2 LSPs 44 00:02:28,870 --> 00:02:31,870 are, of course, flooded into the backbone 45 00:02:31,870 --> 00:02:35,770 because level 2 adjacencies are in fact the backbone. 46 00:02:35,770 --> 00:02:40,390 Now, each router is going to originate its own LSPs. 47 00:02:40,390 --> 00:02:44,470 And this is going to be for both level 1 and/or level 2. 48 00:02:44,470 --> 00:02:48,790 Of course, it does depend if the router is level 1 or level 2. 49 00:02:48,790 --> 00:02:53,320 And it identifies itself with the system ID. 50 00:02:53,320 --> 00:02:55,450 Now we do implement error checking here 51 00:02:55,450 --> 00:02:57,880 in the form of a checksum. 52 00:02:57,880 --> 00:03:00,550 And of course, if it's invalid, meaning 53 00:03:00,550 --> 00:03:02,950 it doesn't match up with the checksum, 54 00:03:02,950 --> 00:03:05,440 it's of course, going to be discarded. 55 00:03:05,440 --> 00:03:08,260 We're not going to keep bad LSPs. 56 00:03:08,260 --> 00:03:11,150 Let's also discuss the update process. 57 00:03:11,150 --> 00:03:16,060 So in other words, what happens if we get an LSP, that LSP 58 00:03:16,060 --> 00:03:19,360 is valid meaning it did in fact pass the checksum, 59 00:03:19,360 --> 00:03:22,540 and it's newer than the one that's 60 00:03:22,540 --> 00:03:24,190 currently in our database? 61 00:03:24,190 --> 00:03:27,470 Well, it's a fairly straightforward process. 62 00:03:27,470 --> 00:03:29,000 So the first thing we do, of course, 63 00:03:29,000 --> 00:03:32,440 is update our own database if it's newer information, 64 00:03:32,440 --> 00:03:35,110 we're going to want that newer information. 65 00:03:35,110 --> 00:03:37,330 We then acknowledge the receipt. 66 00:03:37,330 --> 00:03:40,930 That way, the sender knows that we got the updated information. 67 00:03:40,930 --> 00:03:46,420 And then we set the lifetime to 1,200 and seconds. 68 00:03:46,420 --> 00:03:50,230 The entry would time out after that for the purposes 69 00:03:50,230 --> 00:03:52,120 of database maintenance. 70 00:03:52,120 --> 00:03:55,660 Now if that LSP does expire, well, we 71 00:03:55,660 --> 00:03:57,640 keep it for an additional 60 seconds 72 00:03:57,640 --> 00:04:00,010 just to make sure that there's no latency 73 00:04:00,010 --> 00:04:02,140 in the forwarding of the LSP. 74 00:04:02,140 --> 00:04:07,240 And then we go ahead and flood it as well, expired. 75 00:04:07,240 --> 00:04:10,850 And that will remove it from everybody else's database. 76 00:04:10,850 --> 00:04:13,990 Again, this is part of database cleanup and maintenance. 77 00:04:13,990 --> 00:04:16,779 Now we did talk a little bit before also 78 00:04:16,779 --> 00:04:21,760 about these complete versus partial sequence number 79 00:04:21,760 --> 00:04:24,820 PDUs or SNPs. 80 00:04:24,820 --> 00:04:31,600 We actually saw how Wireshark listed these as CSNP or PSNP. 81 00:04:31,600 --> 00:04:35,170 And as we mentioned at the time, the complete 82 00:04:35,170 --> 00:04:38,440 is going to include all of the LSPs, 83 00:04:38,440 --> 00:04:43,630 and the partial will be a subset of the LSPs. 84 00:04:43,630 --> 00:04:46,060 Again, it just depends if we're getting the whole database 85 00:04:46,060 --> 00:04:48,020 or just part of it. 86 00:04:48,020 --> 00:04:50,560 Now, again, both of these carry a summary 87 00:04:50,560 --> 00:04:52,190 of the link state database. 88 00:04:52,190 --> 00:04:53,710 It's just a matter of whether it's 89 00:04:53,710 --> 00:04:56,600 a complete or a partial summary. 90 00:04:56,600 --> 00:04:59,440 And again, remember the whole purpose of this 91 00:04:59,440 --> 00:05:03,310 is to make sure that I have all of the entries that you, you 92 00:05:03,310 --> 00:05:05,530 have all the entries that I have. 93 00:05:05,530 --> 00:05:09,160 We're using these to keep our databases in sync. 94 00:05:09,160 --> 00:05:11,770 Now, since it's synchronizing the database, 95 00:05:11,770 --> 00:05:15,160 hopefully it makes sense that there's also like, 96 00:05:15,160 --> 00:05:19,330 the database itself, SNPs also are 97 00:05:19,330 --> 00:05:23,860 separate for level 1 and level 2 because again, they're 98 00:05:23,860 --> 00:05:26,300 maintaining two different databases. 99 00:05:26,300 --> 00:05:30,010 Now while these are exchanged between neighbors, again, 100 00:05:30,010 --> 00:05:33,250 for the purpose of making sure the databases are synchronized, 101 00:05:33,250 --> 00:05:35,830 this is handled a little bit differently 102 00:05:35,830 --> 00:05:38,150 on our different network types. 103 00:05:38,150 --> 00:05:42,070 So on a broadcast network type, it's 104 00:05:42,070 --> 00:05:46,210 the DIS or the DIS that will send this multicast out. 105 00:05:46,210 --> 00:05:50,200 And it defaults to doing this every 10 seconds. 106 00:05:50,200 --> 00:05:53,510 On point to point, it's going to be a little different. 107 00:05:53,510 --> 00:05:58,400 It's really only sent once when the link comes up. 108 00:05:58,400 --> 00:06:02,360 So since the job of the SNP is to keep 109 00:06:02,360 --> 00:06:07,250 the databases synchronized, if there are any differences, 110 00:06:07,250 --> 00:06:10,250 we're going to send a partial SNP 111 00:06:10,250 --> 00:06:14,090 to indicate which entries need to be updated 112 00:06:14,090 --> 00:06:16,830 or are needed to be sent again. 113 00:06:16,830 --> 00:06:19,220 Just as another point of fact here, 114 00:06:19,220 --> 00:06:23,780 the PSNPs are also used for the acknowledgments 115 00:06:23,780 --> 00:06:26,630 when we actually get an update. 116 00:06:26,630 --> 00:06:29,720 Now with integrated IS-IS, a couple of other things 117 00:06:29,720 --> 00:06:31,490 to keep in mind here. 118 00:06:31,490 --> 00:06:35,180 The best path is calculated to other routers, 119 00:06:35,180 --> 00:06:39,900 and then we simply add those destinations from the database. 120 00:06:39,900 --> 00:06:43,580 The IP or IPv6 routes are treated 121 00:06:43,580 --> 00:06:46,670 as end system information. 122 00:06:46,670 --> 00:06:49,130 And since they're end system information, 123 00:06:49,130 --> 00:06:53,180 if all that changes is IP reachability, 124 00:06:53,180 --> 00:06:59,480 then all we need is that partial route calculation or a PRC. 125 00:06:59,480 --> 00:07:03,120 We don't have to calculate the whole topology. 126 00:07:03,120 --> 00:07:05,510 The main point of these last few points 127 00:07:05,510 --> 00:07:09,710 we just talked about here is we calculate routes 128 00:07:09,710 --> 00:07:11,970 between the routers themselves. 129 00:07:11,970 --> 00:07:15,480 So the best path is all about getting to the router. 130 00:07:15,480 --> 00:07:19,430 The prefixes that are available on that router 131 00:07:19,430 --> 00:07:22,980 are really just a subset of getting to the router itself. 132 00:07:22,980 --> 00:07:26,720 So if that router loses a particular prefix, 133 00:07:26,720 --> 00:07:28,400 an interface goes down, something 134 00:07:28,400 --> 00:07:33,260 like that, all it has to do is remove that IP reachability 135 00:07:33,260 --> 00:07:34,670 from the database. 136 00:07:34,670 --> 00:07:39,050 That doesn't cause a complete recalculation of SPF 137 00:07:39,050 --> 00:07:41,750 because the router itself is still 138 00:07:41,750 --> 00:07:45,240 reachable with the same cost and everything like that. 139 00:07:45,240 --> 00:07:48,590 All it's doing is removing the availability 140 00:07:48,590 --> 00:07:50,520 of a particular address. 141 00:07:50,520 --> 00:07:53,510 So let's jump in to the command line 142 00:07:53,510 --> 00:07:55,400 and take a look at this database, 143 00:07:55,400 --> 00:07:58,160 then we'll sort make a change and see how it propagates 144 00:07:58,160 --> 00:07:59,520 to the other routers. 145 00:07:59,520 --> 00:08:01,497 So let's start by looking at our topology 146 00:08:01,497 --> 00:08:03,330 just to see where we're going to be working. 147 00:08:03,330 --> 00:08:06,550 And then we'll jump into the CLI. 148 00:08:06,550 --> 00:08:10,940 So once again, we'll be using IS-IS basic topology. 149 00:08:10,940 --> 00:08:15,490 And for this example, we're just going to focus on router 1 150 00:08:15,490 --> 00:08:17,170 and router 2. 151 00:08:17,170 --> 00:08:18,910 So basically what we're going to do 152 00:08:18,910 --> 00:08:22,030 is we're going to look at the topology on router 1. 153 00:08:22,030 --> 00:08:24,790 We'll look at some information from router 2. 154 00:08:24,790 --> 00:08:27,400 Then we'll go change that information on router 2 155 00:08:27,400 --> 00:08:29,860 and just see how it propagates to router 1. 156 00:08:29,860 --> 00:08:34,860 So let's jump into the command line on router 1. 157 00:08:34,860 --> 00:08:39,360 So let's start off with just to show IS-IS database. 158 00:08:39,360 --> 00:08:41,340 And basically what this is showing us 159 00:08:41,340 --> 00:08:45,270 is a summary of the information that we have in our database 160 00:08:45,270 --> 00:08:48,820 right now, including all of the devices that we're aware of. 161 00:08:48,820 --> 00:08:51,690 So let's look at some more detailed information 162 00:08:51,690 --> 00:08:53,860 on router 2 specifically. 163 00:08:53,860 --> 00:08:57,780 So we can just hit up to go back to the show IS-IS database. 164 00:08:57,780 --> 00:09:05,130 And then we'll get more specific by saying XR2.00-00, 165 00:09:05,130 --> 00:09:07,440 and we'll ask for the detail. 166 00:09:07,440 --> 00:09:12,360 Now the first thing to note is under the area addresses, 167 00:09:12,360 --> 00:09:15,880 we have metrics to get to its neighbors. 168 00:09:15,880 --> 00:09:17,430 So we can see that it says it has 169 00:09:17,430 --> 00:09:21,930 a metric of 10 to get to router 5 as well as a metric of 10 170 00:09:21,930 --> 00:09:23,910 to get to router 1. 171 00:09:23,910 --> 00:09:27,510 By the way, we have not changed any of the metrics on router 1. 172 00:09:27,510 --> 00:09:31,388 So it's also 10 for router 1 to get to router 2, 173 00:09:31,388 --> 00:09:33,180 although we're not looking at that database 174 00:09:33,180 --> 00:09:34,560 right this moment. 175 00:09:34,560 --> 00:09:38,820 Also notice that router 2 is listing its attached 176 00:09:38,820 --> 00:09:41,700 interfaces, including, for example, 177 00:09:41,700 --> 00:09:49,260 it's 10..2.2.2/32 loopback also with a metric of 10. 178 00:09:49,260 --> 00:09:54,450 Remember that in Cisco iOS, the default for all links is 10. 179 00:09:54,450 --> 00:09:57,960 But what happens if we go change that on router 2? 180 00:09:57,960 --> 00:10:00,180 Let's take a look. 181 00:10:00,180 --> 00:10:02,270 So we jump over to router 2. 182 00:10:02,270 --> 00:10:04,790 We'll simply go in and configuration. 183 00:10:04,790 --> 00:10:09,920 We'll go into our IS-IS instance for our interface loopback 0, 184 00:10:09,920 --> 00:10:13,190 specifically for the address family IPv4. 185 00:10:13,190 --> 00:10:15,380 And we'll simply set the metric. 186 00:10:15,380 --> 00:10:18,740 We're going to set it to 5, but just so we see the range here 187 00:10:18,740 --> 00:10:22,340 depending on whether we're doing narrow or wide metrics. 188 00:10:22,340 --> 00:10:24,590 We're, of course, doing wide metrics. 189 00:10:24,590 --> 00:10:28,730 So we could go all the way up to, well, that big number. 190 00:10:28,730 --> 00:10:30,858 And what we're going to do is, like I said, 191 00:10:30,858 --> 00:10:32,150 we're just going to set it low. 192 00:10:32,150 --> 00:10:33,343 We're going to set it to 5. 193 00:10:33,343 --> 00:10:35,510 But we can see that there is a wide range of numbers 194 00:10:35,510 --> 00:10:38,870 that we can use, particularly if we're on wide metrics. 195 00:10:38,870 --> 00:10:40,940 Let's commit those changes. 196 00:10:40,940 --> 00:10:42,720 We'll exit out of configuration. 197 00:10:42,720 --> 00:10:46,560 And let's go back to router 1 and see what's changed. 198 00:10:46,560 --> 00:10:50,060 So on router 1, if we simply look at the detail for router 2 199 00:10:50,060 --> 00:10:53,180 again, what we see specifically is 200 00:10:53,180 --> 00:10:56,780 that the metric for that loopback is now 5. 201 00:10:56,780 --> 00:11:01,970 And if we were to say, show IP route for IS-IS and we look 202 00:11:01,970 --> 00:11:06,740 specifically at that 10.2.2.2, we see it now has a metric 203 00:11:06,740 --> 00:11:08,546 of 15-- 204 00:11:08,546 --> 00:11:13,110 10 to get to router 2 itself and then 5 for the loopback. 205 00:11:13,110 --> 00:11:16,190 So we can see how this information in the database 206 00:11:16,190 --> 00:11:19,850 can, of course, be changed and propagated to other devices 207 00:11:19,850 --> 00:11:21,890 as well as, of course, being used 208 00:11:21,890 --> 00:11:25,430 to propagate the routing table. 209 00:11:25,430 --> 00:11:28,700 In this video, we jumped in and we took a closer look 210 00:11:28,700 --> 00:11:31,040 at the IS-IS database. 211 00:11:31,040 --> 00:11:33,170 Then, of course, we made a change. 212 00:11:33,170 --> 00:11:36,050 We saw how that got propagated to the neighbors, which 213 00:11:36,050 --> 00:11:37,220 of course, it should-- 214 00:11:37,220 --> 00:11:40,040 wouldn't be much of a routing protocol if it didn't-- 215 00:11:40,040 --> 00:11:43,050 but then how that information is also, of course, 216 00:11:43,050 --> 00:11:46,890 reflected right into the routing table exactly as it should be. 217 00:11:46,890 --> 00:11:48,950 I hope this has been informative for you. 218 00:11:48,950 --> 00:11:51,880 And I'd like to thank you for viewing. 219 00:11:51,880 --> 00:11:55,000