Routing is a relay system by which packets are forwarded from one device to another. Each device in the network as well as the network itself has a logical address so it can be identified and reached individually or as part of a larger group of devices. For a router to act as an effective relay device, it must be able to understand the logical topology of the network and to communicate with its neighboring devices. The router understands several different logical addressing schemes and regularly exchanges topology information with other devices in the network. The mechanism of learning and maintaining awareness of the network topology is considered to be the routing function while the movement of traffic through the router is a separate function and is considered to be the switching function. Routing devices must perform both a routing and a switching function to be an effective relay device. A router receiving a packet from a host, the router will need to make a routing decision based on the protocol in use; the existence of the destination network address in its routing table; and the interface that is connected to the destination network. After the decision has been made the router will switch the packet to the appropriate interface on the router to forward it out. If the destination logical network does not exist in the routing table, routing devices will discard the packet and to generate an Internet Control Message Protocol (ICMP) message to notify the sender of the event.

Section 4.1: Routing Tables

A routing table is a database repository that holds the router's routing information that represents each possible logical destination network that is known to the router. The entries for major networks are listed in ascending order and, most commonly, within each major network the subnetworks are listed in descending order. If the routing table entry points to an IP address, the router will perform a recursive lookup on that next-hop address until the router finds an interface to use. The router will switch the packet to the outbound interfaces buffer. The router will then determine the Layer 2 address that maps to the Layer 3 address. The packet will then be encapsulated in a Layer 2 frame appropriate for the type of encapsulation used by the outbound interface. The outbound interface will then place the packet on the medium and forward it to the next hop. The packet will continue this process until it reaches its destination.

There are two ways in which a routing table can be populated: a route can be entered manually, this is called static routing, or a router can dynamically learning a route. Once a router learns a route, it is added to its route table.

4.1.1: Static Routing

A statically defined route is a route is manually entered into the router. The purpose of this is to add routes to a router's routing table. Thus, static routing consists of individual configuration commands that define a route to a router. A router can forward packets only to subnets in its routing table. The router always knows about directly connected routes. By adding static routes, a router can be told how to forward packets to subnets that are not attached to it.

A static route can be entered into the router in global configuration mode with the following command:

ip route destination_ip_address subnet_mask { ip-address | interface } [ distance ]

In the ip route command, the destination_ip_address and subnet_mask is the IP address and subnet mask for the destination host. The ip-address parameter is the IP address of the next hop that can be used to reach the destination and interface is the router interface to use. The optional distance parameter specifies the administrative distance.

The advantages to using static routes in an internetwork are the administrator has total control of what is in the routers routing table and there is no network overhead for a routing protocol. The disadvantage of using only static routes is they do not scale well.

4.1.2: Dynamic Routing

Dynamic routing is a process in which a routing protocol will find the best path in a network and maintain that route. Once a route fails, the routing protocol will automatically find an alternate route to the destination. Routing protocols are easier to use than static routes. However, a routing protocol will consume more CPU cycles and network bandwidth than a static route.

4.1.3: Routing Updates

Routing updates can occur using the distance vector approach or the link-state approach.

  • Distance-vector protocols use a routine, periodic announcement that contains the entire contents of the routing table. These announcements are usually broadcasts and are propagated only to directly-connected, next-hop, devices. This allows the router to view the network from the neighbor's perspective and facilitates the addition of the router's metric to the 'distance' already stated by the neighboring router. However, this approach uses considerable bandwidth at regular intervals on each link even if no topology changes have occurred.
  • Link-state protocols use a triggered-update type of announcement that is generated only when there is a topology change within the network. The link-state announcements only contain information about the link that changed and are propagated or flooded to all devices in the network. This approach saves bandwidth on each link because the announcements contain less information and is only sent when there is a topology change. In some link-state protocols, a periodic announcement is required to ensure that the topology database is synchronized among all routing devices.

4.1.4: Verifying Routing Tables

You can use the show ip route privileged exec command to view an IP routing table. If the information that is displayed is not correct, you can force an update from the neighboring devices with the clear ip route command. An optional keyword specifying an ip_address and subnet_mask, or the * (wildcard) character, can be used to further identify the routes to be refreshed.