03 October 2008

Cisco Device Bootup Steps


To understand how to configure routers is very important, but it's also important to understand what steps are involved when a Cisco router/switch is booting up.

This knowledge can help you get to know your Cisco devices better, plus there are questions related to the boot up steps in the CCNA exam.

First, we know that Cisco router is using IOS or Internetworking Operating System, which is a software that controls all the routing and switching functions in a Cisco network device.

There are some steps need to be done before loading the Cisco IOS and get your router/switch up and running.

1. Do POST

When first turned on, the cisco device performs POST or Power-On Self Test that executes diagnostics from the ROM on all hardware modules in the device.
It will verify all the basic operations of CPU, memory, and interface ports.

2. Loading the Bootstrap

Before loading the IOS to the RAM, Cisco device loads the bootstrap first. Bootstrap is a simple set of instructions that tests hardware and then initializes the IOS for operation.
Bootstrap is located at the device's ROM.

At this point, your console terminal will show you the following text, but the text will vary depends on the device you're using, interfaces available, and version of the IOS.

System Bootstrap, Version 11.3(2)XA4, RELEASE SOFTWARE (fc1)
Copyright (c) 1999 by cisco Systems, Inc.
TAC:Home:SW:IOS:Specials for info
C2600 platform with 24576 Kbytes of main memory

There you can see I'm using Cisco 2600 series router with IOS version 11.3(2), and you can see also the available RAM/DRAM.

After this information show up, you might also see the statement:

NVRAM invalid, possibly due to write erase

The above statement might show up if you're bought used Cisco device, don't worry it's not a malfunction or anything.
It only tells us that this router has not been configured yet or that the NVRAM has been erased, just do some configuration and save it, then the statement will go away.

3. Loading the IOS

After finished with the bootstrap, the device will try to search for the valid IOS.
You can place the IOS on a number of places and the device will search the IOS based on the configuration register. The default value of the configuration register is 0x2102 which tells the device to load the IOS from the flash memory.

The normal place for an IOS is the flash memory of the device, but you can also place the IOS on other network devices and load them through TFTP.
The console terminal then shows the decompression process of the image:

program load complete, entry point: 0x80008000, size: 0x2f8558
Self decompressing the image : ###############################################
###############################################
###############################################
###############################################
###############################################
################################## [OK]

Depending on the size of the IOS image, you'd get a longer # mark. I've work with the high end Cisco devices such as Catalyst 6500 series and it takes a quite long time to decompress the image, some of the image size could take more than 100Mb.

If after five attempts a valid IOS image is not found, the router will take you to the ROM mode (ROMMON).
More on ROMMON on the next post.

After the device found the IOS, it will load it to the RAM where it stays there as long as the router is on and lists all the available hardware and software in the router and show them to the console terminal screen.

Cisco Internetwork Operating System Software
IOS (tm) C2600 Software (C2600-I-M), Version 11.3(9)T, RELEASE SOFTWARE (fc1)
Copyright (c) 1986-1999 by cisco Systems, Inc.
Compiled Wed 07-Apr-99 15:43 by pwade
Image text-base: 0x80008084, data-base: 0x80564C88

cisco 2611 (MPC860) processor (revision 0x202) with 18432K/6144K bytes of memory.
Processor board ID JAB0317052N (1135645455)
M860 processor: part number 0, mask 49
Bridging software.
X.25 software, Version 3.0.0.
2 Ethernet/IEEE 802.3 interface(s)
1 Serial network interface(s)
32K bytes of non-volatile configuration memory.
8192K bytes of processor board System flash (Read/Write)

4. Load the Configuration File

Next step is to load the configuration file. The device will start looking the configuration file in the NVRAM, loads them to the RAM and executes them one line at a time.
The configuration file tells the router of the configuration you've done to it such as routing, ip addresses of the interface ports, etc.

If the device can't find the configuration file in the NVRAM, such case can be found when you freshly configure the device, it will try to search the available TFTP server in your network.
If no TFTP server found, it will then display the setup dialog on the console terminal screen.

Would you like to enter the initial configuration dialog? [yes] :

The option enclosed in the brackets [ ], shows the default option, you can just press enter to answer yes or type no to enter the configuration manually.

That's it, four bootup processes that you can easily remember. In CCNA exam, you'd probably be asked on these steps, what will the device do when can't find something here, and what it'll try next, etc.

There are some terminologies you should be familiar with, those are:

ROM - a read only memory that holds the bootstrap of the device and a limited version of Cisco IOS to run a very limited functions usually used for recovery and update.

RAM/DRAM - a volatile memory which will be deleted whenever the device is rebooted or shutdown,
RAM is used to hold the running IOS and the running configuration of the device.

NVRAM - a non-volatile memory which will not be deleted even if the device is rebooted or shutdown,
NVRAM is used to hold the saved configuration (startup configuration) which will be loaded when system bootup to the RAM.

Flash - Also a non-volatile memory used to store the IOS. On higher end Cisco devices, the flash memory is external, pretty much like memory you used for your digital camera (SIMM or PCMCIA).
Very convinient since you can upgrade it as you need.

TFTP Server - Trivial File Transfer Protocol, a simplified version of FTP that you can use to transfer file over the network.

ROMMON - More on this on the next post