WEBVTT 0:00:07.120000 --> 0:00:11.240000 In this video, which is part of the CCT routing and switching curriculum, 0:00:11.240000 --> 0:00:15.040000 I'm going to show you the upgrade procedure for upgrading your Cisco iOS 0:00:15.040000 --> 0:00:18.240000 image or downgrading it on a Cisco router. 0:00:18.240000 --> 0:00:24.360000 My name is Keith Bogart and I will be your instructor for this video. 0:00:24.360000 --> 0:00:26.820000 Video overview or objectives is very simple. 0:00:26.820000 --> 0:00:29.800000 We're just going to perform a software upgrade or downgrade on a Cisco 0:00:29.800000 --> 0:00:32.200000 router using a variety of methods. 0:00:32.200000 --> 0:00:38.120000 I'm going to talk about TFTP, a feature called TFTP download using flash 0:00:38.120000 --> 0:00:44.880000 memory and X modem to do your upgrades or downgrades. 0:00:44.880000 --> 0:00:48.260000 So first question is why do we need to concern ourselves with this? 0:00:48.260000 --> 0:00:51.540000 Why do we need to upgrade or downgrade Cisco iOS software? 0:00:51.540000 --> 0:00:53.200000 Well, there can be a variety of reasons. 0:00:53.200000 --> 0:00:57.620000 Number one is probably the most prevalent reason, which is a bug fix. 0:00:57.620000 --> 0:01:02.160000 You may have encountered a bug or what they call a DDTS within Cisco's 0:01:02.160000 --> 0:01:07.320000 terminology. Basically a software defect running in your Cisco software 0:01:07.320000 --> 0:01:12.600000 and the fix to that might simply be to upgrade to a newer revision of 0:01:12.600000 --> 0:01:15.380000 software that has the bug fix in it. 0:01:15.380000 --> 0:01:17.040000 That's the most common reason. 0:01:17.040000 --> 0:01:20.060000 Other reasons, access to new features and protocols. 0:01:20.060000 --> 0:01:23.300000 Maybe there's a new software out for your router that has a new routing 0:01:23.300000 --> 0:01:27.040000 protocol or a new security feature or something in it that your current 0:01:27.040000 --> 0:01:32.500000 version of Cisco iOS doesn't have and you want to make use of that. 0:01:32.500000 --> 0:01:34.740000 Or maybe to access new hardware support. 0:01:34.740000 --> 0:01:39.780000 You've got a modular chassis like a 7200 series router or something like 0:01:39.780000 --> 0:01:44.120000 that and you've just purchased a new line card or a new module or port 0:01:44.120000 --> 0:01:49.980000 adapter but the software that you're not using software. 0:01:49.980000 --> 0:01:53.060000 So you have to upgrade your software to support that new line card or 0:01:53.060000 --> 0:01:54.500000 port adapter that you've got. 0:01:54.500000 --> 0:01:57.420000 So these are all valid reasons for upgrading your software. 0:01:57.420000 --> 0:01:59.940000 Now, of course, you also might need to downgrade software. 0:01:59.940000 --> 0:02:03.660000 Sometimes people are running the latest and greatest and they discover 0:02:03.660000 --> 0:02:08.120000 a bug in the latest and greatest software and there's nothing to upgrade 0:02:08.120000 --> 0:02:11.440000 to because the bug hasn't been fixed yet. 0:02:11.440000 --> 0:02:14.740000 And sometimes it's a bug that was introduced in a later revision of code 0:02:14.740000 --> 0:02:18.900000 that is not present in an older version of code. 0:02:18.900000 --> 0:02:22.920000 And those particular situations, it might just be more feasible to downgrade 0:02:22.920000 --> 0:02:27.280000 your software to an older, more stable release that doesn't have that 0:02:27.280000 --> 0:02:30.500000 bug in it. Alright, so what are the procedures we're going to be looking 0:02:30.500000 --> 0:02:34.880000 at for this? So step number one, you're going to want to save the existing 0:02:34.880000 --> 0:02:39.700000 iOS software that's in your router right now somewhere because what happens 0:02:39.700000 --> 0:02:44.400000 if you just erase it, download a new image and that new image is corrupted 0:02:44.400000 --> 0:02:46.300000 or something doesn't work. 0:02:46.300000 --> 0:02:47.100000 Now you're stuck. 0:02:47.100000 --> 0:02:50.180000 So you want to have the image that is currently in your device that is 0:02:50.180000 --> 0:02:54.060000 working, yeah, it might have a bug in it but it's still doing its primary 0:02:54.060000 --> 0:02:59.540000 job, hopefully, and you want to save that somewhere to like a TFTP server 0:02:59.540000 --> 0:03:00.980000 or something like that. 0:03:00.980000 --> 0:03:05.720000 Then you're going to want to identify and locate and download the new 0:03:05.720000 --> 0:03:09.640000 iOS that you're going to want to use and download that to your laptop 0:03:09.640000 --> 0:03:12.020000 or to a dedicated TFTP server. 0:03:12.020000 --> 0:03:15.540000 Now there's actually a lot of other steps sort of inferred in this bullet 0:03:15.540000 --> 0:03:16.680000 point right here. 0:03:16.680000 --> 0:03:22.060000 In my CCNA videos, I go into the details but just keep in mind that in 0:03:22.060000 --> 0:03:24.300000 order to do this, there's several things involved. 0:03:24.300000 --> 0:03:27.480000 Number one, you have to identify the software that's appropriate for your 0:03:27.480000 --> 0:03:33.060000 hardware. If you have a Cisco 1800 series router, you need 1800 series 0:03:33.060000 --> 0:03:36.760000 software. Other software for other platforms won't work. 0:03:36.760000 --> 0:03:40.020000 You need to identify the version level and feature set that's appropriate 0:03:40.020000 --> 0:03:42.160000 for what you want to do. 0:03:42.160000 --> 0:03:46.560000 You have to make sure that the size of the software will fit in your router. 0:03:46.560000 --> 0:03:49.920000 You know, maybe your router doesn't have enough flash memory to hold this 0:03:49.920000 --> 0:03:52.560000 newer, bigger image that you want to use. 0:03:52.560000 --> 0:03:56.080000 So you might first have to go out and purchase some more flash memory 0:03:56.080000 --> 0:04:00.460000 to beef up the size of your flash memory so you can actually store the 0:04:00.460000 --> 0:04:02.100000 iOS image you want to download. 0:04:02.100000 --> 0:04:05.420000 So all that sort of rolled into the second bullet point here by the time 0:04:05.420000 --> 0:04:09.560000 you get to actually downloading it to your laptop or PC. 0:04:09.560000 --> 0:04:12.180000 Next, you're going to want to schedule some time to take the router switch 0:04:12.180000 --> 0:04:14.920000 offline for the upgrade. 0:04:14.920000 --> 0:04:19.680000 Most Cisco routers and switches, not all of them, but most of them, when 0:04:19.680000 --> 0:04:25.220000 you download your software, the way it works is that, remember that Cisco 0:04:25.220000 --> 0:04:29.860000 iOS software is stored in flash memory but then is decompressed and actually 0:04:29.860000 --> 0:04:33.600000 runs from RAM or DRAM memory during runtime. 0:04:33.600000 --> 0:04:37.280000 So you can download a new software image while the router switch is running 0:04:37.280000 --> 0:04:42.280000 but in order to actually use that new software, you have to reload or 0:04:42.280000 --> 0:04:44.440000 power cycle, the router or switch. 0:04:44.440000 --> 0:04:47.520000 And that's going to cause some downtime for a few minutes while that router 0:04:47.520000 --> 0:04:49.380000 switch is taken offline. 0:04:49.380000 --> 0:04:54.140000 Now, there are unfortunately circumstances where you do that and all of 0:04:54.140000 --> 0:04:57.080000 a sudden you realize that that image was corrupted and what you thought 0:04:57.080000 --> 0:05:00.860000 would only be a three or four minute downtime while your power cycle device 0:05:00.860000 --> 0:05:04.600000 ends up being an hour of downtime because now you have to scramble and 0:05:04.600000 --> 0:05:07.660000 find some alternative software image to use. 0:05:07.660000 --> 0:05:10.440000 So give yourself a lot of leeway and a lot of grace when scheduling downtime 0:05:10.440000 --> 0:05:15.680000 for this router switch where you're going to be doing the software change. 0:05:15.680000 --> 0:05:19.540000 And then lastly, you're going to actually upgrade or downgrade the device. 0:05:19.540000 --> 0:05:21.140000 And there's two sort of general ways to do this. 0:05:21.140000 --> 0:05:22.220000 Number one is over the network. 0:05:22.220000 --> 0:05:27.880000 And so when I talk about TFTP and TFTP download, that's what we're going 0:05:27.880000 --> 0:05:31.320000 to be doing. This requires that your router switch has IP connectivity 0:05:31.320000 --> 0:05:36.740000 to your server so it can actually download that software remotely. 0:05:36.740000 --> 0:05:39.440000 Now, there are some cases where that's not possible. 0:05:39.440000 --> 0:05:44.280000 Like for example, you deleted the software image from your flash memory, 0:05:44.280000 --> 0:05:49.420000 you reload the device and now you're stuck in ROM on state. 0:05:49.420000 --> 0:05:53.620000 And at that point, you don't have any IP connectivity anymore. 0:05:53.620000 --> 0:05:56.420000 Well, there's another feature I'm going to talk about called Xmodem, which 0:05:56.420000 --> 0:06:01.500000 is a way of doing a disaster recovery of putting a new iOS image on your 0:06:01.500000 --> 0:06:04.440000 router over the console or command line. 0:06:04.440000 --> 0:06:06.800000 Now, that way is very, very, very slow. 0:06:06.800000 --> 0:06:11.840000 It can literally take hours to download a single software image over the 0:06:11.840000 --> 0:06:15.500000 console port because the console port is super slow. 0:06:15.500000 --> 0:06:18.120000 But I will show you how that works. 0:06:18.120000 --> 0:06:26.300000 Okay, so let's start by using TFTP, which stands for the trivial file 0:06:26.300000 --> 0:06:28.200000 transfer protocol. 0:06:28.200000 --> 0:06:30.040000 So what are the steps involved here? 0:06:30.040000 --> 0:06:33.320000 Number one, we got to make sure that our router switch has an IP address 0:06:33.320000 --> 0:06:39.060000 and that it can ping the IP address of the TFTP server, which in this 0:06:39.060000 --> 0:06:41.680000 particular case is just going to be my laptop. 0:06:41.680000 --> 0:06:44.140000 Number two, you have to ask yourself. 0:06:44.140000 --> 0:06:48.860000 Does my existing flash memory have enough memory that's available, that's 0:06:48.860000 --> 0:06:54.400000 free, that I can put a second or a third image right alongside the current 0:06:54.400000 --> 0:06:57.200000 iOS image that's currently being used right now? 0:06:57.200000 --> 0:07:03.120000 Or if not, am I ready and prepared to delete my iOS from flash to free 0:07:03.120000 --> 0:07:08.060000 up that memory to download the new image that I want to put in there? 0:07:08.060000 --> 0:07:10.340000 And then we're going to go through the download process. 0:07:10.340000 --> 0:07:13.500000 Okay, so let's go ahead and take a look at this. 0:07:13.500000 --> 0:07:18.860000 So here, not there, right here, I'm going to be doing this on an 1800 0:07:18.860000 --> 0:07:23.280000 series router, although the process is the same no matter where you are. 0:07:23.280000 --> 0:07:28.840000 So I'm going to do the crayons show version, first of all to see what 0:07:28.840000 --> 0:07:30.540000 I'm currently running. 0:07:30.540000 --> 0:07:38.260000 If you scroll up here, you can see I'm currently in flash memory running 0:07:38.260000 --> 0:07:43.400000 this iOS image of 1533 Advanced Enterprise. 0:07:43.400000 --> 0:07:47.500000 Now if I do the command directory flash, I'm doing that because I want 0:07:47.500000 --> 0:07:51.220000 to see how much flash memory is free is available. 0:07:51.220000 --> 0:07:55.660000 And you can see down by here looking at the bottom, I've got roughly 79 0:07:55.660000 --> 0:07:58.760000 megs of memory free. 0:07:58.760000 --> 0:08:04.440000 The iOS image that's currently in here is taking about 48 megs. 0:08:04.440000 --> 0:08:08.540000 And in this particular case, I'm going to show you a downgrade process. 0:08:08.540000 --> 0:08:11.920000 The process is exactly the same, but the software I'm going to put on 0:08:11.920000 --> 0:08:14.920000 here is actually a 12.4 version. 0:08:14.920000 --> 0:08:19.200000 So I'm going to be going backwards from a more recent to an older version. 0:08:19.200000 --> 0:08:24.920000 So if I take a look at my older software, which is right here, I'm going 0:08:24.920000 --> 0:08:28.080000 to be putting this 12.4 image so we can see it's only a little over 37 0:08:28.080000 --> 0:08:31.920000 megs in size. I'll go ahead and zoom in on that in case you can't see 0:08:31.920000 --> 0:08:36.180000 that very well. So concerning that I've got 79 megs free, and this is 0:08:36.180000 --> 0:08:40.120000 only 37 megs, I should have plenty of room to be able to download this 0:08:40.120000 --> 0:08:47.380000 image so that I can actually have two images of software in this router. 0:08:47.380000 --> 0:08:52.220000 Alright so step number one, let's make sure that I have IP connectivity. 0:08:52.220000 --> 0:08:56.260000 I don't think I actually did that before I started this video. 0:08:56.260000 --> 0:08:57.760000 Yeah, it's got the wrong IP address. 0:08:57.760000 --> 0:09:06.820000 I'm just going to go into my interface real quick, change his IP address. 0:09:06.820000 --> 0:09:14.720000 Alright, and now I'm going to ensure that he actually has IP connectivity 0:09:14.720000 --> 0:09:20.860000 to my laptop in this case, which is hosting the TFTP server. 0:09:20.860000 --> 0:09:23.940000 So I'm just going to ping it, 1112. 0:09:23.940000 --> 0:09:27.800000 Alright, so you can see sometimes we've got to do a little bit of troubleshooting 0:09:27.800000 --> 0:09:35.640000 right here. Show IP interface brief, okay, my interface is up up. 0:09:35.640000 --> 0:09:43.020000 It's 1111, and my laptop should be 1112. 0:09:43.020000 --> 0:09:47.020000 I thought I did that before I started this recording, but let's just go 0:09:47.020000 --> 0:09:48.860000 ahead and check that real quick. 0:09:48.860000 --> 0:09:54.860000 So network and internet, change adapter settings, go into my local area 0:09:54.860000 --> 0:10:03.260000 network, properties, and okay, well it looks, I did type it in, but it 0:10:03.260000 --> 0:10:04.320000 looks like it didn't take it. 0:10:04.320000 --> 0:10:13.840000 So 1112 and default gateway of 1111. 0:10:13.840000 --> 0:10:21.220000 Okay, so now I should be able to ping it. 0:10:21.220000 --> 0:10:34.260000 There we go. PING is a very easy and free TFTP program called TFTPD64. 0:10:34.260000 --> 0:10:37.480000 You can just Google that, and you can download that for free. 0:10:37.480000 --> 0:10:40.020000 There it is, TFTPD64. 0:10:40.020000 --> 0:10:45.080000 And so I've got it set up to where my Cisco iOS software is actually stored 0:10:45.080000 --> 0:10:52.000000 on my laptop in a folder that's called iOS, Cisco iOS. 0:10:52.000000 --> 0:10:58.540000 So there it is. So I'm going to be listening to or paying attention to 0:10:58.540000 --> 0:11:03.360000 make sure it's actually listening on the interface that has 1112. 0:11:03.360000 --> 0:11:06.960000 So it looks like I am ready to go. 0:11:06.960000 --> 0:11:12.660000 So first step is I need to go to that iOS image, and I need to get its 0:11:12.660000 --> 0:11:14.680000 name copied into memory. 0:11:14.680000 --> 0:11:16.440000 So this is the one I'm going to be doing. 0:11:16.440000 --> 0:11:20.280000 So I'm going to type rename and then just copy from the dot bin all the 0:11:20.280000 --> 0:11:21.500000 way to the beginning. 0:11:21.500000 --> 0:11:25.920000 We got that. Okay, so now we say copy. 0:11:25.920000 --> 0:11:28.380000 The next is copy from where? 0:11:28.380000 --> 0:11:31.300000 Well, I'm copying it from TFTP. 0:11:31.300000 --> 0:11:34.020000 Where am I copying it to? 0:11:34.020000 --> 0:11:36.420000 Flash colon, flash memory. 0:11:36.420000 --> 0:11:40.000000 Now it prompts me, okay, what's the IP address of the TFTP server? 0:11:40.000000 --> 0:11:42.400000 In this case, it's 1112. 0:11:42.400000 --> 0:11:45.760000 What's the name of the file I want to download? 0:11:45.760000 --> 0:11:48.820000 That is this image right here. 0:11:48.820000 --> 0:11:51.160000 Do I want to change that name? 0:11:51.160000 --> 0:11:53.580000 Nope, I just want to keep it the same. 0:11:53.580000 --> 0:11:58.580000 And now it's accessing the TFTP server and it's going. 0:11:58.580000 --> 0:12:03.860000 You can see we got the little exclamation points moving along there. 0:12:03.860000 --> 0:12:08.080000 We can see here on my TFTP server program that is actually verifying that 0:12:08.080000 --> 0:12:10.060000 it is sending the file. 0:12:10.060000 --> 0:12:13.440000 So this might take a few minutes to complete. 0:12:13.440000 --> 0:12:33.080000 Let's just wait for it to finish up here. 0:12:33.080000 --> 0:12:38.180000 All right, and so we can see from here that the process is complete. 0:12:38.180000 --> 0:12:43.460000 Now I can verify that by doing directory flash colon. 0:12:43.460000 --> 0:12:50.280000 And now we see it has two images in flash memory. 0:12:50.280000 --> 0:12:54.540000 Now before we go into the next section, actually I'm going to go ahead 0:12:54.540000 --> 0:12:59.280000 and actually let's go ahead and go into the next section here because 0:12:59.280000 --> 0:13:02.960000 this is a great jump off point from that. 0:13:02.960000 --> 0:13:10.200000 So one of the things in the CCT routing and switching blueprint is that 0:13:10.200000 --> 0:13:15.800000 not only do you know how to do the copy process from TFTP, but you also 0:13:15.800000 --> 0:13:18.380000 know how to deal with flash memory. 0:13:18.380000 --> 0:13:21.220000 You know how to deal with iOS images in flash memory. 0:13:21.220000 --> 0:13:23.280000 And this is a perfect use case. 0:13:23.280000 --> 0:13:28.160000 So right now I have two iOS images in flash. 0:13:28.160000 --> 0:13:32.640000 Now the default behavior of a router is when this router reloads, it will 0:13:32.640000 --> 0:13:38.040000 just go through flash memory and the very first iOS image that finds is 0:13:38.040000 --> 0:13:39.240000 the one that's going to load. 0:13:39.240000 --> 0:13:40.980000 But what if I didn't want that? 0:13:40.980000 --> 0:13:44.740000 What if I wanted it to load the second image right here? 0:13:44.740000 --> 0:13:48.520000 That's where we can use a command called the boot system command. 0:13:48.520000 --> 0:13:55.480000 It's simply boot system flash memory and then type that in. 0:13:55.480000 --> 0:14:03.640000 Save my config. And now when the router reloads, it will follow that boot 0:14:03.640000 --> 0:14:09.420000 system command and it will load the first memory. 0:14:09.420000 --> 0:14:14.020000 So that's really all there is as far as manipulating iOS images within 0:14:14.020000 --> 0:14:17.160000 flash memory and booting from the correct one. 0:14:17.160000 --> 0:14:21.960000 So now let's look at TFTP download. 0:14:21.960000 --> 0:14:25.920000 This is a very similar process to what we just saw with TFTP. 0:14:25.920000 --> 0:14:30.520000 However, this is done when your router is in the Raman state. 0:14:30.520000 --> 0:14:32.460000 It tried to boot up. 0:14:32.460000 --> 0:14:33.260000 Something failed. 0:14:33.260000 --> 0:14:34.220000 An image was corrupted. 0:14:34.220000 --> 0:14:37.380000 Or maybe it tried to boot up and it didn't have any iOS image. 0:14:37.380000 --> 0:14:39.280000 And now you're stuck in Raman. 0:14:39.280000 --> 0:14:41.680000 And how do we get an image in there? 0:14:41.680000 --> 0:14:45.480000 Well, if you're stuck in Raman, hopefully the model of router that you're 0:14:45.480000 --> 0:14:50.480000 on supports this TFTP download, which makes it very fast and very easy. 0:14:50.480000 --> 0:14:53.720000 If the model of router you're on doesn't support this, then you'll have 0:14:53.720000 --> 0:14:57.000000 to use the last method which I'll show you, which is called Xmodem. 0:14:57.000000 --> 0:15:05.280000 So in order to do this, I'm going to go ahead and power cycle this router. 0:15:05.280000 --> 0:15:09.780000 And as it comes back up again, I'm going to break it into Raman state. 0:15:09.780000 --> 0:15:17.840000 I'm going to do edit and send break. 0:15:17.840000 --> 0:15:19.960000 Okay, so now we are in Raman state. 0:15:19.960000 --> 0:15:22.600000 I'll make this a little bit bigger right here. 0:15:22.600000 --> 0:15:27.640000 If you just use the question mark, you can see this particular model of 0:15:27.640000 --> 0:15:32.120000 router does support, not that one, this one. 0:15:32.120000 --> 0:15:35.980000 The TFTP image download program. 0:15:35.980000 --> 0:15:42.820000 So if I do TFTP download, say, well, how exactly does that work? 0:15:42.820000 --> 0:15:45.580000 It's got a great help for it here. 0:15:45.580000 --> 0:15:53.700000 So you basically would just say TFTP download and then you can set these 0:15:53.700000 --> 0:15:54.760000 variables right here. 0:15:54.760000 --> 0:15:57.900000 For example, the IP address of the unit, the subnet mask. 0:15:57.900000 --> 0:15:59.980000 Well, what does this already have? 0:15:59.980000 --> 0:16:03.900000 You can just use the command set. 0:16:03.900000 --> 0:16:09.080000 And this shows you right now, okay, so he doesn't have any IP address. 0:16:09.080000 --> 0:16:12.800000 He's right now going to boot this, but let's say that didn't exist. 0:16:12.800000 --> 0:16:14.320000 Let's say that was corrupted. 0:16:14.320000 --> 0:16:17.260000 So I need to change some things on here. 0:16:17.260000 --> 0:16:24.660000 And this TFTP download command will only work across the very first Ethernet 0:16:24.660000 --> 0:16:27.460000 or fast Ethernet interface on your router. 0:16:27.460000 --> 0:16:32.400000 So for example, in my 1841 here, I have fast Ethernet 00 and fast Ethernet 0:16:32.400000 --> 0:16:38.560000 01. So this process will only work across fast Ethernet 00. 0:16:38.560000 --> 0:16:45.860000 So TFTP download and I'll say, now I'll just use some of these variables 0:16:45.860000 --> 0:16:58.140000 here. IP address equals, I'll give him 1111. 0:16:58.140000 --> 0:17:03.800000 Actually, I think I just do that without the TFTP download command. 0:17:03.800000 --> 0:17:06.560000 There we go, IP address. 0:17:06.560000 --> 0:17:11.020000 And let's give him a subnet mask. 0:17:11.020000 --> 0:17:18.140000 Okay. He doesn't really need a default gateway in my case, but if you're 0:17:18.140000 --> 0:17:21.280000 actually trying to reach a remote TFTP server, you would need a default 0:17:21.280000 --> 0:17:24.560000 gateway. In my case, though, the TFTP server is locally connected. 0:17:24.560000 --> 0:17:27.220000 I'm just going to put that in there so you can see it. 0:17:27.220000 --> 0:17:32.720000 And here we go. TFTP server equals 1112. 0:17:32.720000 --> 0:17:44.500000 TFTP file equals, and let's put the name of that software. 0:17:44.500000 --> 0:17:48.020000 So let's just use one of the software images that we already did previously. 0:17:48.020000 --> 0:17:52.240000 Let me go ahead and find it on here. 0:17:52.240000 --> 0:17:58.740000 Let's just do this one. 0:17:58.740000 --> 0:18:10.860000 Okay. Now from here, I would just type TFTP download. 0:18:10.860000 --> 0:18:14.500000 And you can see I have a couple of options, a minus H or an R. 0:18:14.500000 --> 0:18:18.160000 My H means, give me the help screen, which I'm already looking at right 0:18:18.160000 --> 0:18:24.440000 now. My R means, do not write to flash, load to dram only and launch the 0:18:24.440000 --> 0:18:29.780000 image. This might be a situation where your flash memory is corrupted 0:18:29.780000 --> 0:18:33.560000 or maybe your flash memory just simply isn't large enough right now to 0:18:33.560000 --> 0:18:34.720000 support the image. 0:18:34.720000 --> 0:18:38.200000 So we're going to download the image directly to dram memory and launch 0:18:38.200000 --> 0:18:41.360000 it, which will get us back into configuration mode. 0:18:41.360000 --> 0:18:44.740000 It'll get us out of Ramon back to the normal mode and then from that point, 0:18:44.740000 --> 0:18:48.360000 we'll have a lot more flexibility to download maybe a smaller image or 0:18:48.360000 --> 0:18:51.980000 upgrade our flash memory at a later time. 0:18:51.980000 --> 0:18:53.080000 So I'm actually going to do that. 0:18:53.080000 --> 0:18:58.120000 TFTP download minus R. 0:18:58.120000 --> 0:19:04.720000 It's checking all the parameters and yep, all that stuff looks good. 0:19:04.720000 --> 0:19:09.580000 And there it goes. 0:19:09.580000 --> 0:19:16.140000 You can see it's now starting to download that Cisco iOS. 0:19:16.140000 --> 0:19:23.020000 It's downloading it directly from my TFTP server into flash into dram 0:19:23.020000 --> 0:19:36.400000 memory in this particular case. 0:19:36.400000 --> 0:19:42.580000 So I'm coming now to the end of my TFTP download process using the TFTP 0:19:42.580000 --> 0:19:44.180000 download Ramon command. 0:19:44.180000 --> 0:19:46.480000 And as we saw, it's pretty quick. 0:19:46.480000 --> 0:19:54.360000 Same basic procedures using regular TFTP. 0:19:54.360000 --> 0:19:57.060000 This default gateway and subnet mask. 0:19:57.060000 --> 0:20:01.200000 So this point is validating the checksum very soon. 0:20:01.200000 --> 0:20:06.240000 It should verify that that software is correct and we should be done with 0:20:06.240000 --> 0:20:16.680000 that process. And now we see that with the TTP download, because I use 0:20:16.680000 --> 0:20:21.680000 the keyword to tell it to download the image directly to dram memory, 0:20:21.680000 --> 0:20:22.720000 it actually did so. 0:20:22.720000 --> 0:20:28.800000 And now the router is placing that image into dram memory, almost as if 0:20:28.800000 --> 0:20:30.000000 it was actually reloading. 0:20:30.000000 --> 0:20:32.940000 But if I look at the router right now, which I am, it's not actually going 0:20:32.940000 --> 0:20:34.560000 through the reload process. 0:20:34.560000 --> 0:20:37.420000 The LEDs are still lit just like they normally are. 0:20:37.420000 --> 0:20:47.040000 It has not power-cycled itself as of this point. 0:20:47.040000 --> 0:20:51.360000 And now we see the router actually is reloading because clearly it had 0:20:51.360000 --> 0:20:55.880000 to swap out what ever software it was previously using in dram to use 0:20:55.880000 --> 0:20:58.220000 this new software that I download into dram. 0:20:58.220000 --> 0:21:06.060000 And so it does have to go through the reload process to do that. 0:21:06.060000 --> 0:21:15.240000 And now I have access to my router. 0:21:15.240000 --> 0:21:22.520000 Now, the last method of downloading software I want to talk about is the 0:21:22.520000 --> 0:21:25.200000 dreaded exmodum process. 0:21:25.200000 --> 0:21:26.380000 So what is that? 0:21:26.380000 --> 0:21:31.260000 Well, let me go ahead first of all and turn this router off. 0:21:31.260000 --> 0:21:33.620000 I'm going to turn it back on again. 0:21:33.620000 --> 0:21:36.400000 I'm going to send the break sequence. 0:21:36.400000 --> 0:21:39.180000 Okay. So let's say this is where you are. 0:21:39.180000 --> 0:21:43.440000 You get into a router and oh no, it shows that it's in Ramon state. 0:21:43.440000 --> 0:21:45.940000 The dreaded Ramon state. 0:21:45.940000 --> 0:21:49.640000 And lo and behold, you don't have any iOS image. 0:21:49.640000 --> 0:21:51.620000 Somehow it got erased. 0:21:51.620000 --> 0:21:54.100000 Or maybe that you do have an iOS image, but it's corrupted. 0:21:54.100000 --> 0:21:59.660000 It's bad. And either way, this router has no iOS image whatsoever on it. 0:21:59.660000 --> 0:22:03.360000 And yet we've got to put one on there in order to get this thing up and 0:22:03.360000 --> 0:22:07.520000 running. At this point, the only option to do so is to actually download 0:22:07.520000 --> 0:22:10.160000 the software over the console port. 0:22:10.160000 --> 0:22:13.580000 And over the console port, we're going to use a process called exmodum 0:22:13.580000 --> 0:22:19.000000 to do that. Exmodum is a very old, very slow protocol is actually developed 0:22:19.000000 --> 0:22:24.120000 right around back in 1977 back when modems were prevalent. 0:22:24.120000 --> 0:22:25.640000 That's why they call it exmodum. 0:22:25.640000 --> 0:22:29.700000 Doesn't rely on IP at all. 0:22:29.700000 --> 0:22:33.700000 Once exmodum gets going, the software image is going to be downloaded 0:22:33.700000 --> 0:22:38.000000 from my terminal server program, which in this case is secure CRT via 0:22:38.000000 --> 0:22:43.320000 exmodum over the console port in 128 byte blocks. 0:22:43.320000 --> 0:22:47.380000 So all that those megabytes and megabytes of data of my software image, 0:22:47.380000 --> 0:22:51.280000 which I think is around 40 megs in size, is going to have to go in 128 0:22:51.280000 --> 0:22:57.020000 byte blocks as literally going to take hours to complete. 0:22:57.020000 --> 0:22:59.580000 So I'm going to show you how you start the process. 0:22:59.580000 --> 0:23:02.480000 Probably not going to show you the end of the process because it probably 0:23:02.480000 --> 0:23:05.340000 won't even be done by the time I leave work for today. 0:23:05.340000 --> 0:23:08.760000 But I will show you how you can get it started, but just be prepared that 0:23:08.760000 --> 0:23:13.080000 if you're in this state, this is a disaster recovery situation where you 0:23:13.080000 --> 0:23:14.460000 have to use exmodum. 0:23:14.460000 --> 0:23:17.840000 It's going to take you several hours to complete this process. 0:23:17.840000 --> 0:23:21.640000 This is not like TFTP, which is done on the order of minutes. 0:23:21.640000 --> 0:23:23.840000 We're talking hours here. 0:23:23.840000 --> 0:23:27.920000 Okay. So exmodum. 0:23:27.920000 --> 0:23:32.340000 First thing we want to do is the default speed or baud of our console 0:23:32.340000 --> 0:23:36.120000 port is 9600, which is super slow. 0:23:36.120000 --> 0:23:40.460000 If you want exmodum to take about half of your lifetime, yeah, go ahead 0:23:40.460000 --> 0:23:42.000000 and keep it at 9600. 0:23:42.000000 --> 0:23:46.920000 But it's probably a better idea to reset the baud rate of your console 0:23:46.920000 --> 0:23:51.940000 port to something faster, ideally the fastest possible, which brings me 0:23:51.940000 --> 0:23:55.060000 back to my slides on the configuration register. 0:23:55.060000 --> 0:23:59.600000 Remember these? So let me go ahead and zoom in on this here. 0:23:59.600000 --> 0:24:07.100000 So remember that in the configuration register, bits 12, 11, and 5 controlled 0:24:07.100000 --> 0:24:09.640000 the baud setting of the console port. 0:24:09.640000 --> 0:24:14.760000 Well, if I set all three of those bits to one, that will get me my highest 0:24:14.760000 --> 0:24:19.560000 possible speed, which is still pretty slow, but it's a lot better than 0:24:19.560000 --> 0:24:26.700000 9600. It'll knock my baud rate up to 115, 200, 115,200. 0:24:26.700000 --> 0:24:28.880000 So how would I do that? 0:24:28.880000 --> 0:24:33.300000 Well, if I set this bit right here to a one, this bit to a one, and this 0:24:33.300000 --> 0:24:37.400000 bit to one in my configuration register, that ends up changing my configuration 0:24:37.400000 --> 0:24:42.460000 register setting to now give me the first number is three. 0:24:42.460000 --> 0:24:48.160000 The second number will be 922. 0:24:48.160000 --> 0:24:55.060000 So I'm going to set my configuration register to 0x3922, and that will 0:24:55.060000 --> 0:24:57.180000 change my baud rate. 0:24:57.180000 --> 0:25:00.100000 And once I do that, I'll have to then go into my terminal server program, 0:25:00.100000 --> 0:25:04.320000 which is secure CRT in this case, and change its speed as well so it can 0:25:04.320000 --> 0:25:06.140000 actually talk to the router. 0:25:06.140000 --> 0:25:13.840000 So 0x3922. So let's go ahead and do that while I'm here in ROM on state. 0:25:13.840000 --> 0:25:19.580000 So that is the command of conf-redge, 0x3922. 0:25:19.580000 --> 0:25:25.840000 All right, now right now, it's still using 9600. 0:25:25.840000 --> 0:25:29.280000 So like it says, I have to do reset or power cycle for the new config 0:25:29.280000 --> 0:25:33.720000 to take effect. So I'm just going to reset it, and there we go. 0:25:33.720000 --> 0:25:37.980000 You see right now it's using the old, it's using the new rate. 0:25:37.980000 --> 0:25:47.220000 So let's go ahead and cancel out of here, change my settings to match, 0:25:47.220000 --> 0:25:53.600000 connect up, and now send a break sequence again. 0:25:53.600000 --> 0:25:58.580000 All right, so now I'm back in ROM on order, but now I'm using the much 0:25:58.580000 --> 0:26:04.560000 faster speed of 115,200 for the console port. 0:26:04.560000 --> 0:26:06.960000 All right, so now I'm going to do the X modem process. 0:26:06.960000 --> 0:26:09.220000 And it's simply X modem. 0:26:09.220000 --> 0:26:12.800000 Now we can see here it's X modem. 0:26:12.800000 --> 0:26:15.300000 You can do these various different options. 0:26:15.300000 --> 0:26:18.560000 Once again, we could also copy the image to dram for launch just like 0:26:18.560000 --> 0:26:20.680000 we did with TFTP download. 0:26:20.680000 --> 0:26:26.500000 So I'm going to do that, X modem, minus R, and the destination file name. 0:26:26.500000 --> 0:26:29.700000 Okay, well let's just pick one of the files I have here on my laptop and 0:26:29.700000 --> 0:26:33.540000 we'll use that. Let's do this file right here. 0:26:33.540000 --> 0:26:36.360000 All right, I'm going to hit enter. 0:26:36.360000 --> 0:26:38.260000 This is only for disaster recovery. 0:26:38.260000 --> 0:26:39.980000 Do you wish to continue? 0:26:39.980000 --> 0:26:44.460000 Yes, I do. Now it says ready to receive files. 0:26:44.460000 --> 0:26:47.740000 So at this point, I'm going to go up here, and once again this is secure 0:26:47.740000 --> 0:26:50.420000 CRT so you'll have to figure out how to do this with whatever program 0:26:50.420000 --> 0:26:56.240000 you're using. I'm going to say transfer, send X modem. 0:26:56.240000 --> 0:27:00.780000 I'm going to locate the file that I want to use. 0:27:00.780000 --> 0:27:07.340000 In this case it's going to be under Windows, Cisco iOS, and I'm going 0:27:07.340000 --> 0:27:10.680000 to do this one right here, the one I told it to expect. 0:27:10.680000 --> 0:27:16.640000 Send. And it begins. 0:27:16.640000 --> 0:27:20.020000 And you can see how long this is going to take. 0:27:20.020000 --> 0:27:21.640000 Look how slow this is going. 0:27:21.640000 --> 0:27:25.960000 I'm not even at 1 % yet of the file. 0:27:25.960000 --> 0:27:29.280000 So I'm just going to let this keep running, but at this point I'm going 0:27:29.280000 --> 0:27:32.300000 to go up here, and I'm going to stop this recording because there's no 0:27:32.300000 --> 0:27:36.800000 sense in hanging on for a couple of hours, and that concludes this recording, 0:27:36.800000 --> 0:27:42.700000 this video, on how to perform a Cisco iOS software and or download, or 0:27:42.700000 --> 0:27:44.040000 downgrade process.