Understand Cisco IOS system architecture components.
Work with the Cisco IOS Command Line Interface (CLI) and common commands.
Learn about Cisco IOS troubleshooting techniques.
Understand upgrading and release information.
The Cisco IOS software is network system software that runs on Cisco routers and switches. It is used to configure, monitor, and troubleshoot the system.
Like a computer, a router has a CPU that varies in performance and capabilities depending on the router platform. Two examples of processors that Cisco uses are the Motorola 68030 and the Orion/R4600. The Cisco IOS software running in the router requires the CPU or processor to make routing and bridging decisions, maintain routing tables, and other system management functions. The CPU must have access to data in memory to make decisions or to get instructions.
There are usually four types of memory on a Cisco router:
ROMROM is generally the memory on a chip or multiple chips. It is available on a router's processor board. It is read-only, which means that data cannot be written to it. The initial software that runs on a Cisco router is called the bootstrap software and is usually stored in ROM. The bootstrap software is invoked when the router boots up.
FlashFlash memory is located on a processor board SIMM but can be expanded using PCMCIA (removable) cards. Flash memory is most commonly used to store one or more Cisco IOS software images. Configuration files or system information can also be copied to Flash. On some high-end systems, Flash memory is also used to hold bootstrap software.
RAMRAM is very fast memory that loses its information when the system is restarted. It is used in PCs to store running applications and data. On a router, RAM is used to hold IOS system tables and buffers. RAM memory is basically used for all system operational storage requirements.
NVRAMOn the router, NVRAM is used to store the startup configuration. This is the configuration file that IOS reads when the router boots up. It is extremely fast memory and is persistent across reboots.
Although CPU and memory are required components to run IOS, a router must also have various interfaces to allow packet forwarding. Interfaces are input and output connections to the router that carries data that needs to be routed or switched. The most common types of interfaces are Ethernet and serial. Similar to the driver software on a computer with parallel ports and USB ports, IOS has device drivers to support these various interface types.
All Cisco routers have a console port that provides an EIA/TIA-232 asynchronous serial connection. The console port can be connected to a computer's serial connection to gain terminal access to the router. Most routers also have an auxiliary port that is very similar to the console port, but is typically used for modem connection for remote router management.
Example 4-1 shows the console output of a new Cisco 3640 router that has just been started. Notice the processor, interface, and memory information that is listed.
Example 4-1 Cisco 3640 Router Console Output at Startup
System Bootstrap, Version 11.1(20)AA2, EARLY DEPLOYMENT RELEASE SOFTWARE (fc1) Copyright (c) 1999 by Cisco Systems, Inc. C3600 processor with 98304 Kbytes of main memory Main memory is configured to 64 bit mode with parity disabled program load complete, entry point: 0x80008000, size: 0xa8d168 Self decompressing the image : ################################################# #################################################################### [OK] Restricted Rights Legend Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c) of the Commercial Computer Software - Restricted Rights clause at FAR sec. 52.227-19 and subparagraph (c) (1) (ii) of the Rights in Technical Data and Computer Software clause at DFARS sec. 252.227-7013. Cisco Systems, Inc. 170 West Tasman Drive San Jose, California 95134-1706 Cisco Internetwork Operating System Software IOS (tm) 3600 Software (C3640-IS-M), Version 12.2(10), RELEASE SOFTWARE (fc2) Copyright (c) 1986-2002 by Cisco Systems, Inc. Compiled Mon 06-May-02 23:23 by pwade Image text-base: 0x60008930, data-base: 0x610D2000 cisco 3640 (R4700) processor (revision 0x00) with 94208K/4096K bytes of memory. Processor board ID 17746964 R4700 CPU at 100Mhz, Implementation 33, Rev 1.0 Bridging software. X.25 software, Version 3.0.0. SuperLAT software (copyright 1990 by Meridian Technology Corp). 5 Ethernet/IEEE 802.3 interface(s) 1 Serial network interface(s) DRAM configuration is 64 bits wide with parity disabled. 125K bytes of non-volatile configuration memory. 8192K bytes of processor board System flash (Read/Write) 16384K bytes of processor board PCMCIA Slot0 flash (Read/Write) --- System Configuration Dialog --- Would you like to enter the initial configuration dialog? [yes/no]:
When a new router is first started, IOS runs an autoinstall process wherein the user is prompted to answer a few questions. IOS then configures the system based on the input provided. After initial setup, the configuration is most commonly modified using the command-line interface (CLI). Other ways of configuring the router include HTTP and network management applications.
Cisco IOS CLI
Cisco IOS has three command modes, each with access to different command sets:
User modeThis is the first mode a user has access to after logging into the router. The user mode can be identified by the > prompt following the router name. This mode allows the user to execute only the basic commands, such as those that show the system's status. The system cannot be configured or restarted from this mode.
Privileged modeThis mode allows users to view the system configuration, restart the system, and enter configuration mode. It also allows all the commands that are available in user mode. Privileged mode can be identified by the # prompt following the router name. The user mode enable command tells IOS that the user wants to enter privileged mode. If an enable password or enable secret password has been set, the user needs to enter the correct password or secret to be granted access to privileged mode. An enable secret password uses stronger encryption when it is stored in the configuration and, therefore, is safer. Privileged mode allows the user to do anything on the router, so it should be used with caution. To exit privileged mode, the user executes the disable command.
Configuration modeThis mode allows users to modify the running system configuration. To enter configuration mode, enter the command configure terminal from privileged mode. Configuration mode has various submodes, starting with global configuration mode, which can be identified by the (config)# prompt following the router name. As the configuration mode submodes change depending on what is being configured, the words inside the parentheses change. For example, when you enter interface configuration submode, the prompt changes to (config-if)# following the router name. To exit configuration mode, the user can enter end or press Ctrl-Z.
Note that in these modes, entering the context-sensitive command ? at any point shows the available commands at that level. The ? can also be used in the middle of a command to show possible completion options. Example 4-2 shows the use of the ? command to display the commands available within a given command mode.
Example 4-2 Using Context-Sensitive Help
Router>? Exec commands: access-enable Create a temporary Access-List entry access-profile Apply user-profile to interface clear Reset functions ...
The following steps introduce you to the commands used to change command mode, view system information, and configure a password. Real CLI output from a Cisco 3640 router running Cisco IOS software is shown.
Step 1 Enter enabled mode by entering enable and pressing Enter:
Router> enable Router#
Step 2 To see which version of IOS is running on the system, enter the show version command:
Router# show version Cisco Internetwork Operating System Software IOS (tm) 3600 Software (C3640-IS-M), Version 12.2(10), RELEASE SOFTWARE (fc2) Copyright (c) 1986-2002 by Cisco Systems, Inc. Compiled Mon 06-May-02 23:23 by pwade Image text-base: 0x60008930, data-base: 0x610D2000 ROM: System Bootstrap, Version 11.1(20)AA2, EARLY DEPLOYMENT RELEASE SOFTWARE (fc1) Router uptime is 47 minutes System returned to ROM by reload System image file is "slot0:c3640-is-mz.122-10.bin" cisco 3640 (R4700) processor (revision 0x00) with 94208K/4096K bytes of memory. Processor board ID 17746964 R4700 CPU at 100Mhz, Implementation 33, Rev 1.0 Bridging software. X.25 software, Version 3.0.0. SuperLAT software (copyright 1990 by Meridian Technology Corp). 5 Ethernet/IEEE 802.3 interface(s) 1 Serial network interface(s) DRAM configuration is 64 bits wide with parity disabled. 125K bytes of non-volatile configuration memory. 8192K bytes of processor board System flash (Read/Write) 16384K bytes of processor board PCMCIA Slot0 flash (Read/Write) Configuration register is 0x2002
From the output, you can see that this is a Cisco 3640 router running Cisco IOS software, Version 12.2(10) and the software image is located on the PCMCIA Flash card in slot 0.
Step 3 Next, configure the router name to be "IOS." To enter configuration mode, use the command configure terminal:
Router# configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)# hostname IOS IOS(config)#
Notice that the prompt changes to "IOS" immediately after you enter the hostname command. All configuration changes in Cisco IOS take place immediately.
Step 4 Next, you need to set the enable password and the enable secret pass- word. The enable secret password is stored using stronger encryption and overrides the enable password if it is configured. To set both passwords, you enter the following:
IOS(config)# enable password cisco IOS(config)# enable secret san-fran IOS(config)# exit IOS#
To get into enabled mode, you need to enter the password san-fran. The exit command takes you up one level in the configuration, or out of the current submode.
Step 5 After configuring the router name and setting the enable and enable secret passwords, you can examine the running configuration:
IOS# show running-config Building configuration... Current configuration : 743 bytes ! version 12.2 service timestamps debug uptime service timestamps log uptime no service password-encryption ! hostname IOS ! enable secret 5 $1$IP7a$HClNetI.hpRdox84d.FYU. enable password cisco ! ip subnet-zero ! call rsvp-sync ! interface Ethernet0/0 no ip address shutdown half-duplex ! interface Serial0/0 no ip address shutdown no fair-queue ! interface Ethernet2/0 no ip address shutdown half-duplex ! interface Ethernet2/1 no ip address shutdown half-duplex ! interface Ethernet2/2 no ip address shutdown half-duplex ! interface Ethernet2/3 no ip address shutdown half-duplex ! ip classless ip http server ip pim bidir-enable ! dial-peer cor custom ! line con 0 line aux 0 line vty 0 4 ! end
Step 6 The show running-config output shows the configuration that is currently active in the system; however, this configuration is lost if the system is restarted. To save this configuration to NVRAM, you must issue the following command:
IOS# copy running-config startup-config Destination filename [startup-config]? Building configuration... [OK]
Step 7 To view the startup configuration saved in NVRAM, use the command show startup-config.
In the preceding step sequence, notice the Ethernet and serial interfaces that show up in the configuration file. Each interface requires that certain parameters such as encapsulation and address be set before the interface can be used properly. In addition, IP routing or bridging might need to be configured. Refer to the Cisco IOS installation and configuration guides available at http://www.cisco.com for your version of software to learn about all possible configuration options and recommended guidelines.
Table 4-1 describes some of the more common commands used to monitor the system.
Table 4-1 Commands Used to Monitor Cisco IOS Devices
Cisco IOS Command
Displays current status and configuration details for all interfaces in the system
show processes cpu
Displays CPU utilization and the current processes running in the system
Shows how system buffers are currently allocated and functioning for packet forwarding
Shows how memory is allocated to various system functions and memory utilization
Displays details on hardware cards in the system
show ip route
Displays the current active IP routing table
Displays the current active IP address-to-MAC address mapping in the ARP table
Debugging and Logging
Cisco IOS software allows for detailed debugging for all protocols and processes running in the system for troubleshooting purposes. More information on debugging can be obtained in the Cisco IOS Debug Command Reference, available on http://www.cisco.com.
Only Cisco IOS experts should enable and disable debug commands, because they can have a severe performance impact and should be used with care. Improper use might leave the system inaccessible and in a frozen state in which no packet forwarding takes place.
System messages are shown on the console and can be enabled for any session into the router. Different levels of severity can be configured for different access methods into the router. The eight message severity levels are as follows:
Emergency (severity 0)The system is unusable
Alert (severity 1)Immediate action is needed
Critical (severity 2)Critical condition
Error (severity 3)Error condition
Warning (severity 4)Warning condition
Notification (severity 5)Normal but significant condition
Informational (severity 6)Informational message
Debugging (severity 7)Debugging message
The logging command directs the output to various terminals attached to the system or virtually connected, such as Telnet sessions. Example 4-3 shows how the logging command can be used to determine the severity level of the messages shown.
Example 4-3 logging Command
IOS(config)# logging ? Hostname or A.B.C.D IP address of the logging host buffered Set buffered logging parameters console Set console logging level exception Limit size of exception flush output facility Facility parameter for syslog messages history Configure syslog history table host Set syslog server host name or IP address monitor Set terminal line (monitor) logging level on Enable logging to all supported destinations rate-limit Set messages per second limit source-interface Specify interface for source address in logging transactions trap Set syslog server logging level IOS(config)# logging console ? <0-7> Logging severity level alerts Immediate action needed (severity=1) critical Critical conditions (severity=2) debugging Debugging messages (severity=7) emergencies System is unusable (severity=0) errors Error conditions (severity=3) guaranteed Guarantee console messages informational Informational messages (severity=6) notifications Normal but significant conditions (severity=5) warnings Warning conditions (severity=4) <cr>
Enabling a higher level of messages shows all lower-level messages as well. The debugging level, or level 7, shows all messages. System messages may also be buffered and seen using the show logging command in privileged mode. A user may also send logging messages to a syslog server using the logging host command in configuration mode. A syslog server can be configured on a UNIX device or PC to accept these messages from a router and place them in a file. This allows for large files containing system messages to be maintained, because you are not restricted by the amount of memory on the router.
Reloading and Upgrading
A system restart on Cisco routers is called a reload. If the router needs to be reloaded for any reason, the reload command needs to be entered from privileged mode, as shown in Example 4-4. The reload command also allows a time to be set so that the system restarts after the specified time expires.
Example 4-4 System Reload Options
IOS# reload ? LINE Reason for reload at Reload at a specific time/date cancel Cancel pending reload in Reload after a time interval <cr>
The system can also be reloaded by switching it off and then back on again.
The configuration register is used to specify the router's behavior during the reloading process. It determines whether the IOS image should be loaded, determines whether terminal access parameters are provided, and enables or disables the Esc key. The configuration register can be modified in configuration mode using the config-register command.
Use the config-register command only if you completely understand its effects. Incorrect use of this command can make the system inaccessible.
By default, the router first tries to boot from the first image in the onboard system Flash, if available, and then it tries the PCMCIA Flash cards. The user may also specify which images or locations to attempt booting from and the order using the boot system command in configuration mode:
IOS(config)# boot system slot0
This causes the system to attempt booting from an image in the Flash memory in PCMCIA slot 0 before going to the onboard system Flash.
To upgrade the Cisco IOS software version running on a router, you must first determine the right image to upgrade to using the upgrade planners available on http://www.cisco.com.
Attempting to load an incorrect image for your system might leave the system inaccessible. Ensure that you have the correct software image and meet the RAM and Flash memory requirements to run and store the image before installing.
The copy command copies an image into Flash memory. There are many ways to do this, as demonstrated in Example 4-5.
Example 4-5 Options for Copying an IOS Image into Flash Memory
IOS# copy ? /erase Erase destination file system. flash: Copy from flash: file system ftp: Copy from ftp: file system null: Copy from null: file system nvram: Copy from nvram: file system pram: Copy from pram: file system rcp: Copy from rcp: file system running-config Copy from current system configuration slot0: Copy from slot0: file system slot1: Copy from slot1: file system startup-config Copy from startup configuration system: Copy from system: file system tftp: Copy from tftp: file system xmodem: Copy from xmodem: file system ymodem: Copy from ymodem: file system
The most common methods are TFTP and FTP. After the file has been placed on your TFTP or FTP server, enter the copy command from privileged mode and answer the questions on server IP address and source and destination filenames. After you specify which image the system should load using the boot system command, a reload is required for the new version of IOS to be booted.
This chapter introduced the fundamentals of Cisco IOS software, the operating system that runs on Cisco routers and switches. Cisco IOS software runs on a CPU and requires several types of memory to store the image, configuration, running applications, and data. The CLI is the most common method used to configure, monitor, and troubleshoot a system running Cisco IOS software. The software provides comprehensive debugging and logging capabilities. You can upgrade the software image by downloading it using one of many options and then following a series of simple steps.
What are the four main memory types in a router?
What are the three Cisco IOS command modes?
What is the process of restarting a Cisco IOS system called?
For More Information
Cisco IOS software Release 12.2 documentation: http://www.cisco.com/pcgi-bin/Support/browse/psp_view.pl?p=Software:IOS:12.2&s=Documentation.
Cisco IOS Configuration Fundamentals, Cisco Press, 1997, ISBN 0641049129.
Cisco IOS in a Nutshell, O'Reilly & Associates, Inc., 2001, ISBN 156592942X.
Inside Cisco IOS Software Architecture, Pearson Education, 2000, ISBN 1578701813.