It is beneficial to understand how Cisco routers look-up routes in the routing table. There are various scenarios where the router might behave contrary to expected and by understanding the router’s look-up processes you may be able to identify a problem and apply a quick remedy.
Cisco routers were originally designed to work according to the classful hierarchy of IPv4 networks. Therefore, to understand the Cisco IOS routing table, it helps to maintain the perspective of classful versus classless networking.
In the Cisco CCNA you will need to be able to identify the following types of routes in the routing table:
• Level 1 route – is a network route, a default route, or a supernet route. It is also called an ultimate route.
• Level 2 route – is a subnetted route with a greater than classful subnet mask, it is also a called a child route.
• Parent route – is a classful route, but it is not an ulltimate route. A parent route has subnetted child routes. If there are no child routes there is no parent route. Parent routes do not have an exit interface or next hop IP address. A parent route is also called a level 1 route.
• Child route – A child route is a subnetted route, where the subnet mask is greater than the classful subnet mask (eg. /27 versus /24). A child route is a level 2 route.
• Ultimate route – an ultimate route is a route that has an exit interface or a next hop IP address.
• Default Route – also known as a “gateway of last resort,” is a route configured to the 0.0.0.0 /0 network and mask. This route does not have to qualify or “match” the destination network therefore it is a match for all destinations.
• Network Route – is a level one, ultimate route with an exit interface.
Routing Table Behavior
The router can be configured to behave classfully or classlessly, which is a separate issue from the routing protocol and whether or not the routing protocol has the capability to support classless networks. Classless routing behavior is configured by default on the routers and you can verify this by issuing a “show running-config” command. If you wanted to turn classless behavior on you use the ip classless command, the no ip classless command removes classless behavior
(config)#no ip classless
The important difference between “ip classless” and “no ip classless” is that with “ip classless” enabled, if the router finds a matching parent route it will search for a match in the child routes and if it does not finding a matching child routes from the subnets that are available in the routing table it will go back and search the Level 1 routes for a possible secondary match like a default route.
Example: In the image above showing a routing table, if the router was to receive a request for 18.104.22.168/26 it would find a match to the classful parent route of 22.214.171.124 and proceed to search through the child routes. After not finding a match to 126.96.36.199/26 it would go on looking in the table for a possible match, if a default route was available, like the default static route “S* 0.0.0.0/0” above, it would find a suitable match, because the /0 in the subnet mask indicates that no bits in the route’s network address need to match the packet’s destination address in order to have a match.
With “no ip classless” enabled, the router after not finding a matching child route would simply drop the packet. Why would it drop the packet? My personal guess is that “no ip classless” means “classful behavior” and in the world of purely classful network hierarchies, prior to the possibility of discontiguous classless networks, meaning VLSM and CIDR, either you owned the classful network and therefore all of the possible subnets, or you didn’t, so why keep searching the routing table, the destination network couldn’t possibly be anywhere else, so it is dropped.
Note: In Packet Tracer, the global commands “ip classless” and “no ip classless” are not available.