Cisco Router Basics

Cisco Routers can be one of the most frightening things to a technician who has never had dealings with them (and those who have). Once familiar with the basic commands of the cisco router simple changes to network routing and basics should be pretty simple.

Let’s start with some terminology:
FastEthernet[#] – Ethernet Interface
Serial[#] – legacy Serial devices were actually hooked up via serial cables. The name has held to this day, although some serial interfaces are now built onto the cisco itself.
CSU/DSU – a digital-interface device used to connect a router to a digital circuit (T1, T3, etc.)
T1/DS1 Circuit – circuit made of twenty-four 8-bit channels (also known as timeslots) holding 64kbit/s each. A total of 1.536 Mbit/s of bandwidth is achieved by sampling each of the twenty-four 8-bit channels at 8000 times per second (64kbit/s total).
Controller – The physical circuit that each interface is connected to on the cisco router.
Running Config – The configuration of the cisco router that is currently in running memory.
Startup Config – Configuration stored in the cisco router memory that will be loaded upon each reboot of the router.
Console – The direct interface that allows you to make config changes when connected via console cable.
IOS – Operating system of the cisco router (currently 12.4)

Lets start by learning how to connect to the router

First we need to connect our console cable from our computer to our console port on the router. After this we will need to use some serial communication terminal program to communicate with the router. If you use windows I recommend you use Putty or HyperTerminal. If you are a linux/OS X user then it is best to use Minicom (through terminal). Once connected you will probably need to hit enter a few times where you will see a screen as follows:

1
Router>

Note that Router is the default and will be replaced with the hostname of the router once configured. Also note that there are both privileged users and unprivileged users. Unprivileged users are represented with the greater than symbol (>) where privileged users are represented with the hash symbol (#). Once a user is privileged they will have access to make changes on the router and see more details on configuration.

Now that we are connected to the router and have a basic of what we should see lets look at a few simple commands:

1
2
Router> enable
Router#

The enable command lets a non-privileged user become a privileged user. If not enable password is set this change will happen instantly, otherwise a password will be required. While non-privileged users can do basic things such as ping and telnet, to gain the full power of the router requires privileged access.

Now we can look at the simple configuration commands we should start with on a new router:

1
2
3
4
5
Router# config
Configuring from terminal, memory, or network [terminal]? terminal
Router(config)# hostname myrouter
myrouter(config)# exit
myrouter#

As you can see the config command allows us to configure the cisco router, but requires an option of where we are configuring from. Since we are logged in via terminal we will want to type terminal at this point. The first configuration value issued to the router is the hostname configuration. Here we simply are naming our router to “myrouter”. Next we type exit to exit the configuration and enable the changes made on our router. Until this point nothing is actually committed to running-config. Shortcuts are very valuable time savers in IOS. Lets look at the same configuration change with a few shortcuts enabled.

1
2
3
4
Router# config t
Router(config)# hostname myrouter
myrouter(config)# ^Z
myrouter#

Note that the config t takes the place of the config and terminal question. We then exit to the parent mode of the router by typing [CTRL] + Z in the config mode. This will take us to the parent mode where exit will take us to the mode under the current mode we are in (more on this later).

Now lets look at the current configuration of our router:

1
       myrouter# show running-config

This will show the current configuration that is running in memory. We can also look at the configuration that is loaded upon reboot of the router by issuing the following command:

1
       myrouter# show startup-config

These commands show every configuration that has been issued to your router at this time (Whether by factory default or by user). Included in the next code segment are a few useful commands to view information on your router and network:

1
2
3
4
myrouter# show proc cpu
myrouter# show interfaces
myrouter# show ip route
myrouter# show ip arp

The first command here is a way to get an idea of how much CPU usage the router is currently running at. You can also do show proc memory to get memory usage. The second command shows us our interfaces that are connected and configured in the cisco. show ip route simply shows us routing and gateway information. We will sometimes see what is known as the gateway of last resort here. This is a simple gateway that applies to everything that isn’t applied above it. On simple networks this will be shown as Gateway of last resort is 0.0.0.0 to network 0.0.0.0 meaning that all other traffic is forwarded to the default gateway. the last command allows us to look at connections to the router via arp table inquiries. This is good for not only seeing ip addresses but also MAC addresses and to what interface the device is connected to. For a full list of commands or subcommands you can type ? or show ?.

Inside Terminal Configuration

We will being our configuration of the router by doing basic tasks. Let us start by turning on telnet service, turning off httpd service (which is pretty much useless), adding a username, and adding a ip address so that we can remotely manage the router.
Before we begin, there are 4 basic things to know about issuing cisco commands inside of the config terminal:

      Commands are issued simply by typing them into the terminal.
      Commands are deleted from the configuration by typing no followed by the command
      [Ctrl] + Z (^Z) will exit to the parent mode and activate any commands you have issued. Where exit will only exit the current config zone
      int (the shortcut for interface), and line commands will take you inside sub-configuration sections.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
      myrouter# config t
      myrouter(config)# line vty 0 4
      myrouter(config-line)# access-class 23 in
      myrouter(config-line)# privilege level 15
      myrouter(config-line)# login local
      myrouter(config-line)# transport input telnet
      myrouter(config-line)# exit
      myrouter(config)# no ip http server
      myrouter(config)# username cpierce pass cisco1
      myrouter(config)# enable secret cisco2
      myrouter(config)# int FastEthernet0
      myrouter(config-if)# ip address 172.16.1.1 255.255.0.0
      myrouter(config-if)# ip address 192.168.0.1 255.255.255.0 secondary
      myrouter(config-if)# no shutdown
      myrouter(config-if)# ^Z
      myrouter# write
      Building configuration...
      [OK]
      myrouter#

Note on newer cisco IOS versions transport input telnet ssh is acceptable as well which will enable ssh and telnet services (or you could leave out telnet in the case of only allowing ssh access). As you can see we also configurated 2 ip addresses. One Secondary and one Primary. We could turn the secondary off by issuing the no ip address 192.168.0.1 255.255.255.0 secondary command. We also turned off httpd access via the no ip http server command. You also see we issue a no shutdown on FastEthernet0 to turn the device on. You should now be able to telnet to your system via the ip address 172.16.1.1 (provided you are on the same network) with the username cpierce and the password cisco1

1
2
3
4
5
6
      telnet 172.16.1.1
      Username: cpierce
      Password:  ******
      myrouter> enable
      Password:  ******
      myrouter#  show running

We will now take what we’ve learned and put it to practical use by configuring the following network:
Our ISP gives us the IP address of 1.2.3.4 as our public IP address. We want to use Network Address Translation (NAT) to share this public internet connection with our local area network 172.16.1.1/16 (255.255.0.0). We will now use our newly installed cisco router from above to implement this routing. This will assume all steps above have been taken:

1
2
3
4
5
6
7
8
9
10
11
12
13
        myrouter# config t
        myrouter(config)# int Serial0
        myrouter(config-if)# no shutdown
        myrouter(config-if)# ip address 1.2.3.4 255.255.255.0
        myrouter(config-if)# ip nat outside
        myrouter(config-if)# exit
        myrouter(config)# int FastEthernet0
        myrouter(config-if)# ip nat inside
        myrouter(config-if)# exit
        myrouter(config)# ip route 0.0.0.0 0.0.0.0 Serial0
        myrouter(config)# ip nat inside source list 1 interface Serial0 overload
        myrouter(config)# ^Z
        myrouter#

We can now assign any device connected to FastEthernet0 an ip of 172.16.x.x and should have Internet access out the Serial0 interface.