Just like your personal computer, Cisco routers and switches require software in order to function. An operating system (OS) is software, consisting of programs and data, that runs on computers, manages computer hardware resources, and provides common services for execution of various application software.
Cisco Internetwork Operating System (IOS)
The operating system running on your computer might be Microsoft Windows, Apple OS X, or Linux. The operating system that runs on the Cisco devices you’ll be using while preparing for the CCNA test run an operating system designed by Cisco called Internetwork Operating System (IOS).
You might be familiar with the different versions of Windows 7, such as Home Basic, Professional, and Ultimate. In the same way, there are several different IOS feature sets which serve different purposes. These include IP Base, IP Voice, Enterprise Base, and Advanced Enterprise Services.
One thing that they all have in common, however, is the ability to send data traffic towards its destination.
IOS is a single file that ranges anywhere from a few megabytes to tens of megabytes in size, depending on the hardware platform, version, and feature set. This file is stored in non-volatile storage referred to as flash. When a router is powered on, it reads the IOS from flash and loads it into RAM. The router initializes itself, often does some basic hardware checks, and then boots up.
The image below shows the output from a router that has just been booted up with a blank configuration.
Working With IOS
There are two main ways in which we interact with the Cisco IOS on a router or switch. These are the command-line interface (CLI) and a web-based interface known as the Router and Security Device Manager (SDM). We will focus primarily on the CLI, although we will take a look at SDM later as you’ll need to be familiar with it for the CCNA examination.
We can access the CLI in three ways:
- Console port
- AUX port
Before you can configure a brand new router or switch, you’ll first have to connect to its console port. The console port is a port used solely for management and it provides access to the device even when it is not connected to any network.
The console port is a low-speed serial connection used to directly connect to the device from a computer. There are a few instances when you would use the console port:
- The initial setup of the device
- When you need to recover a lost password
- When remote access is not available
It is important to note that, by default, there is no security with regard to the console port. If someone is able to establish a console connection to a router or switch, they have complete control of the device. For that reason, it is important that we both configure passwords and keep the devices physically secured, such as in a locked room.
The console is also known as the CTY line.
When working with Cisco routers and switches in real life, you usually won’t be directly in front of the device where you can establish a connection to the console. Instead, you’ll be accessing them remotely, over the network, using a telnet or SSH client.
NOTE: Example telnet clients include PuTTY, TeraTerm, and SecureCRT in addition to the telnet clients that come with most operating systems.
Whereas console connections do not require (nor do they use) a network connection, a device must be configured on the network in order to access it remotely. It must have at least one IPv4 or IPv6 address set up on an interface.
Also unlike console connections, IOS requires that a password be configured and entered in prior to granting remote access to a router or switch.
SSH provides remote access in that same way that telnet does, but it is much more secure. Using telnet, passwords and commands sent to a router or switch can potentially be eavesdropped on by attackers. SSH uses encryption when sending and receiving data, preventing an attacker from stealing passwords or important configuration details.
Most newer version of IOS come with an SSH server built in. In my home Cisco lab and the articles here, I’ll often use telnet because of its simplicity but, as a best practice, you should always use SSH whenever possible.
NOTE: The telnet clients mentioned above all support SSH as well.
When connecting to a device using telnet or SSH, we are connecting to VTY lines.
The third way of accessing the CLI is by using a dialup connection to a modem that is connected to a Cisco device’s auxiliary (AUX) port.
Connecting via the AUX port is very similar to connecting to the console as it does not require any network connection. This provides a way of gaining access to the device whenever there is a network outage and it is impossible to connect via telnet or SSH, for example.
It is also possible to connect directly to an AUX port the same as a console port, however this is usually only done if there are issues with the console port.
In addition to the Cisco IOS, routers and switches also rely on configuration files. IOS is the actual software that runs on the device and controls the hardware, but the configuration files are used to tell the device how we want it to function.
There are two main types of configuration files:
- Startup configuration
- Running configuration
The startup configuration is used when a device is first powered on. After a device loads and boots into IOS, it will look in its NVRAM for a startup configuration file. If it finds one, the configuration is loaded into RAM and becomes the running configuration.
The running configuration, unlike the startup configuration, is stored only in RAM. When we make changes to a device’s configuration, we are actually modifying the running configuration. If we want to make those changes permanent, we must save them and update the startup configuration. The next time the router reloads or is powered on, the new version of our startup configuration will be loaded into memory.
If we do not save our changes, they will be lost when the router reloads or is turned off. For that reason, it is important to make sure you save any changes that you wish to make permanent.
We’ll cover how to do that in a later article, Erasing and Saving Configurations.
This article provided an introduction to Cisco IOS, how it functions, and how we interact with it. Next, we’ll take a look around the IOS Modes in the Command-Line Interface and then get our hands dirty with some Basic Cisco IOS Commands.