The first distance vector routing protocol that is discussed here is coincidentally one of the oldest routing protocols that is still used today. Circa 1988, Routing Information Protocol (RIP) for IP was defined in RFC 1058; however, its roots stem back to the 1970s at Xerox Corporation’s Palo Alto Research Center. The following sections look at the characteristics
and configurations involved with this resolute routing protocol.
RIP is a fairly simple routing protocol in both characteristics and implementation. You already know that RIP uses hop count as its only metric, in which it can support up to 15 as a maximum. In instances where the metric is identical (for example, equal hop count) for a subnet, it
load balances up to six equal paths (four by default). Like other distance vector routing protocols, RIP sends the contents of its routing table to its directly connected neighbors, regardless of whether there is a change in the topology. Particularly, RIP’s update interval is every 30 seconds and its invalid timer is for 180 seconds. Thus, RIP (version 1) broadcasts its routing table
every 30 seconds and considers a neighbor or a network to be dead after six missed updates.
Because RIP does not advertise subnet masks in its routing updates, it is also a classful routing protocol. Recall that this requires every subnet of a major network to have the same (fixedlength) subnet masks. In addition, RIP automatically summarizes subnetted networks to their default classful boundaries when sending the update over a different major network which, in turn, nullifies any support for a discontiguous network design. As with many routing protocols, RIP requires manual redistribution if you want to advertise networks from a different routing source other than connected interfaces and other RIPlearned networks.
This is also the case for default routes. If you configure a static default route in a router that is running RIP, you must use the default-information originate command in the routing process to redistribute that default route in its routing updates to its neighbors without any additional configuration. The neighbors receive these updates and set that router as their gateway of last resort, assuming that a static default route is not configured with a lower administrative distance. The routing table subsequently displays the learned 0.0.0.0/0 subnet as a RIP-learned network.
Although version 1 of RIP is considered outdated by the CCNA, ICND1, and ICND2 exams, it is important to know its characteristics and configuration because RIPv2 shares many characteristics and is similar in configuration.
The configuration for RIP is seamless as long as you remember these two simple rules:
- Advertise only your directly connected networks.
- Advertise only the classful network.
The first rule is imperative to keep in mind when configuring routing protocols. Remember that the point of the routing protocols is to advertise their known networks to each other so they can build their routing tables. With that being said, do not confuse the configuration of routing protocols with static routes. You do not specify a destination network with routing protocols as you would a static route. In
Because RIP is a classful routing protocol and does not advertise subnet masks in its updates, the second rule is self explanatory. Regardless of whether you subnetted major networks into smaller subnets, you have to specify only the subnet to its classful boundary. In other words, you specify the network portion of the IP address and use zeros for the host bits. To recap, the classful boundaries are listed in Table 11.2, in which N represents the network and H represents the host
To configure RIP and advertise the directly connected classful networks, you must enter the configuration mode for routing protocols, using the router keyword in global configuration mode followed by the routing protocol you want to configure. After you are in the routing protocol configuration mode (signified by the (config-router)# prompt), you specify the directly connected classful networks by using the network command. If you need to remove a specific network from being advertised, you need to enter the RIP routing process again and enter no followed by the keyword network and the network number you want to remove. Using Figure 11.9 as an example, Routers A, C, and D each have two directly connected networks while Router B has three. To configure RIP to advertise the routing protocols, the configuration for Router A would look like the following:
RouterA(config)#router rip RouterA(config-router)#network 172.16.0.0 RouterA(config-router)#network 192.168.1.0
If you accidentally configure a network at the incorrect classful boundary, the IOS configuration automatically changes your configuration statement(s) to reflect the classful network.
Be prepared to configure a routing protocol given a network topology. Even though there is IOS support to autocorrect your mistakes when entering the networks, as mentioned in the preceding Tip, do not rely on the exam to allow that as a correct answer.
Because Router A has the 172.16.0.0 network and the 192.168.1.4 network attached to it, the classful networks that are advertised are 172.16.0.0 because it is a Class B, and 192.168.1.0 because that network is a Class C. You do not need to include any other network statements because the routers will advertise each others’ networks. After you define the networks with the network command, RIP begins to advertise and listen for updates on those interfaces that are contained in that classful network. For instance, if you did not configure the network 192.168.1.0 statement in Router A, you would never be able to send and receive updates on the serial interface, which would entail that Router B would never learn of the 172.16.0.0 network and Router A would never learn of the other networks in the topology
Keep in mind that the routing protocol does not listen to or learn from advertisements on an interface unless you include their respective networks in the routing protocol process with the network command.
Router B has three directly connected 192.168.1.x networks, so how many statements do you think you must configure for Router B to participate in RIP updates? Despite having three networks, you must advertise the classful networks in the RIP configuration; thus, you require only one statement for the 192.168.1.0 network that will, in essence, encompass all three subnets. Figure 11.10 shows the configurations for each router in this topology
FIGURE 11.10 Completed RIP configuration scenario.
If you want to change the number of allowed equal paths to load balance with RIP, you can use the maximum-paths command in the routing process. For example, if you wanted to change the maximum paths to six equal paths, the configuration would look like the following:
RouterA(config)#router rip RouterA(config-router)#maximum-paths 6
To disable load balancing over multiple equal paths, set the maximum paths to 1.
Some of you may have looked at these configurations and noticed a strange flaw in our logic. Namely, we’ve established that when we configure each network to be advertised in the routers, updates begin being sent and received on the interfaces attached to those networks. But do we really need to be sending updates on LANs that do not connect to RIP routers? For instance, the Ethernet interface on Router A from Figure 11.10 that connects to the 172.16.0.0 network does not have a router on that LAN segment. In essence, we are wasting good bandwidth and processor cycles by broadcasting these RIP update every 60 seconds to a bunch of computers who do not need to receive them. To solve this dilemma for RIP and all other routing protocols, Cisco created a handy configuration option for routing protocols called passive interface.
With this additional configuration command, you specify an interface or interfaces to the routing protocol process that will no longer send routing updates. What is interesting, however, is that the interfaces will still receive and process updates on that interface. As a result, passive interfaces are useful not only for saving bandwidth, but also can be used to manipulate our routing policies by allowing us to determine whether or not we send routing updates to certain routers. The command to achieve this marvelous feat is passive-interface interface in the routing process configuration, such as shown here for RIP:
RouterA(config)#router rip RouterA(config-router)#passive-interface fastethernet 0/0
With this command in place, updates are no longer sent out of Fast Ethernet 0/0. However, if for some reason an update was received on that interface, it would still process it and put it in its routing table.
In an attempt to keep up with modern needs from a routing protocol, RIP version 2 was created in 1994 to address many of the shortcomings of its predecessor. Many of the characteristics are similar to RIPv1; nonetheless, RIPv2 had some significant improvements:
- Multicast updates: Rather than broadcast its routing updates, RIPv2 uses a reserved multicast address of 188.8.131.52 to communicate with other RIPv2 neighbors. By using a multicast address, it does not waste the processing resources of non-RIP devices because only RIPv2 devices process messages to that address.
- Classful or classless support: RIPv2 is classful by default, but can be configured as a classless routing protocol, which allows for subnet masks to be sent in the routing updates. The implication of this enhancement entails that RIPv2 can support VLSM and discontiguous network designs.
- Authenticated updates: To ensure the origin of the routing update and protect from attackers spoofing routing updates, RIPv2 allows update authentication in which the passwords must match in all routers to validate the routing update.
Be sure to remember the enhancements that RIPv2 holds over RIPv1.