Chapter 7: Checking Out RIP and EIGRP Characteristics and Design
In This Chapter
Configuring common options for the RIP and EIGRP protocols
Working with troubleshooting tools to manage the RIP and EIGRP protocols
As I discuss at length in Chapters 1 and 6 of this minibook, you can choose from various protocols to dynamically manage the routing tables on your network. In this chapter, you implement two of these protocols, RIP and EIGRP. You find out not only how to enable them, but also how to configure the main options you need to properly work with these protocols. You also examine the basic tools used in diagnosing issues that arise in their operation. After the protocols are up and running, you have the basic tools you need in order to manage the protocols. If you read this entire chapter, you will be able to work comfortably with the configuration and management processes for both RIP and EIGRP.
Working with Routing Information Protocol (RIP)
I first present RIP in Book IV, Chapter 1 with an introduction to the major routing protocols. RIP is designed to function on small to large networks but can suffer when a network is not designed to accommodate its eccentricities. This chapter focuses primarily on RIPv2, rather than on RIPv1, because with RIPv1, all systems must use class-based network masks or be subnetted exactly the same way. RIPv2, on the other hand, supports Variable Length Subnet Masks (VLSM). If you choose to deploy network IDs across your network you will likely want to deploy VSLM in order to conserve addresses on your network. So, if you plan to deploy RIP as a protocol, you will likely use version 2.
The biggest issue with RIPv1 is that all systems must use class-based network masks or be subnetted exactly the same way, whereas RIPv2 supports Variable Length Subnet Masks (VLSM). VLSM is covered in Book II, Chapter 1, if you want to find out more about it. The following sections cover the basic commands for setting up RIP and how to monitor or troubleshoot RIP on your network.
Understanding the RIP commands
To work with the RIP commands, you start by enabling the protocol. However, before enabling the routing protocol, you need to enable IP routing, if you have not already done so, which you can see in Chapter 3 of this minibook.
Enabling RIP
As with most routing protocols, when you enable the RIP protocol, you will be placed in Router Configuration mode (config-router), so take note of the change in the configuration prompt during the following example. The main configuration requirement is the list of networks for which RIP will be routing.
The following enables routing for two connected networks, 192.168.1.0/24 and 192.168.10.0/24, for a network that looks like Figure 7-1.
Figure 7-1: A small network for RIP routing.
Router2>
enable
Password:
Router2#
configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)#
ip routing
Router2(config)#
router rip
Router2(config-router)#
network 192.168.10.0
Router2(config-router)#
network 192.168.1.0
Router2(config-router)#
exit
Router2(config)#
exit
Following this command, RIP automatically starts sending out copies of its routing information for the two identified networks through all of its network interfaces. RIPv1 sends the copies via a broadcast, whereas RIPv2 performs a multicast to 224.0.0.9. For Router2
to receive updates, you also must enable RIP on Router1
with the following commands:
Router1>
enable
Password:
Router1#
configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#
ip routing
Router1(config)#
router rip
Router1(config-router)#
network 192.168.5.0
Router1(config-router)#
network 192.168.1.0
Router1(config-router)#
exit
Router1(config)#
exit
At the same time, RIP receives the data from neighboring RIP routers at 30-second intervals. After this data is received, Router2
updates its routing table so that the new routing table looks like this:
Router2>
enable
Password:
Router2#
show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
R 192.168.10.0/24 [120/1] via 192.168.1.1, 00:00:07, FastEthernet0/0
C 192.168.5.0/24 is directly connected, FastEthernet0/1
C 192.168.1.0/24 is directly connected, FastEthernet0/0
S 192.168.3.0/24 [1/0] via 192.168.1.1
The last routing table has several routes. Notably, the first listed route has an R
identifier, which denotes that this route was ascertained via RIP.
Showing routes coming from a specific routing protocol
To see only the routes that come from specific routing protocols, you modify the show ip route
command in the following manner. Now, only the directly connected interfaces and the RIP-provided routes are shown.
Router>
enable
Password:
Router2#
show ip route connected
C 192.168.5.0/24 is directly connected, FastEthernet0/1
C 192.168.1.0/24 is directly connected, FastEthernet0/0
Router2#
show ip route rip
R 192.168.10.0/24 [120/1] via 192.168.1.1, 00:00:15, FastEthernet0/0
Configuring your RIP version
The version of RIP that is currently enabled allows receipt of RIPv1 and RIPv2 data, but it sends out only RIPv1 data. To configure this version of RIP to support only the more modern and flexible version 2, use the following command. Note that this setting has a lot of flexibility, because you can configure RIP to send and receive any combination of RIPv1 and RIPv2 data.
Router2>
enable
Password:
Router2#
configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)#
ip routing
Router2(config)#
router rip
Router2(config-router)#
version 2
Router2(config-router)#
no auto-summary
Router2(config-router)#
neighbor 192.168.1.1
Router2(config-router)#
exit
Router2(config)#
exit
The preceding command also includes two other commands within the router configuration prompt:
• auto-summary
: RIPv2 supports the auto-summary feature, which automatically summarizes along classful boundaries. You can configure this behavior to use other network ranges in the interface configuration of your router, or you can completely disable auto-summary using the no auto-summary
command in Router Configuration mode. In Interface Configuration mode, you can use the command ip summary-address rip 10.1.0.0 255.255.0.0
to force the summarization to occur at a specific boundary rather than the Class A boundary. In this case, you would be forcing route summary to occur at the 10.1.0.0/16 boundary rather than the class boundary of 10.0.0.0/8.
• neighbor
: RIP detects neighbor routers, but this process can take time because RIP has to wait for advertisements from neighboring routers. You can use the neighbor to specify on this router what the neighbor routers are. When you do this, rather than send a broadcast and multicast update, RIP sends unicast or directed RIP update messages. Configuring neighbors on each router takes a little more time, but reduces the network traffic associated with RIP by reducing the broadcast traffic.
Troubleshooting RIP
A major task in troubleshooting is gathering information to be used to identify the area where the source of your problem is. This section deals with commands that you can use to gather information about the RIP routing protocol in order to assist in your troubleshooting and problem resolution.
Getting network information
To start this process, look at the ip route
command, which in addition to listing routes, can display summary information letting you know how many RIP-based networks exist in the routing table.
Router2>
enable
Password:
Router2#
show ip route summary
IP routing table name is Default-IP-Routing-Table(0)
IP routing table maximum-paths is 16
Route Source Networks Subnets Overhead Memory (bytes)
connected 2 0 144 272
static 1 0 72 136
rip 1 0 72 136
Total 4 0 288 544
To ensure that the routing protocol is up and functioning, use the show ip protocols
command, which provides similar output to the following. However, first note some important things to look for in the output:
• Timers and when the next update will be sent to neighboring routers
• Version of RIP in use
• Interfaces in use for RIP
• Networks being routed by RIP
• Address from which you are receiving RIP information
Router2>
enable
Password:
Router2#
show ip protocols
Routing Protocol is “rip”
Sending updates every 30 seconds, next due in 12 seconds
Invalid after 180 seconds, hold down 180, flushed after 240
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Redistributing: rip
Default version control: send version 2, receive version 2
Interface Send Recv Triggered RIP Key-chain
FastEthernet0/0 2 2
FastEthernet0/1 2 2
Automatic network summarization is not in effect
Maximum path: 4
Routing for Networks:
192.168.1.0
192.168.5.0
Routing Information Sources:
Gateway Distance Last Update
192.168.1.1 120 00:32:42
Distance: (default is 120)
Note the last item, which lists the administrative distance. This point becomes important when using multiple routing protocols, because each protocol has a different default distance that determines which routing protocol is favored when a remote network is advertised on multiple routing protocols.
Seeing information RIP receives
You can view the contents of the RIP database to find out what information RIP has received. Doing so shows you the networks that are part of RIP, the summarization settings, and from which routers your router has learned routes.
Router2>
enable
Password:
Router2#
show ip rip database
192.168.1.0/24 auto-summary
192.168.1.0/24 directly connected, FastEthernet0/0
192.168.5.0/24 auto-summary
192.168.5.0/24 directly connected, FastEthernet0/1
192.168.10.0/24 auto-summary
192.168.10.0/24
[1] via 192.168.1.1, 00:00:20, FastEthernet0/0
Debugging RIP
Finally, you have the system debug
command. In regard to RIP, the debug
command is limited to database changes. In the following output, you see the types of data you can get from debug
command, which are also listed here:
• The RIP information your router is sending out and the networks included in the update
• The RIP version being used
• The RIP data being received, including the interface it arrived on, the router it came from, and the networks that are included
Router2>
enable
Password:
Router2#
debug ip rip ?
database RIP database events
events RIP protocol events
trigger RIP trigger extension
<cr>
Router2#
debug ip rip
RIP protocol debugging is on
Router2#
*Mar 17 22:57:39.842: RIP: sending v1 update to 255.255.255.255 via FastEthernet0/1 (192.168.5.1)
*Mar 17 22:57:39.842: RIP: build update entries
*Mar 17 22:57:39.842: network 192.168.1.0 metric 1
*Mar 17 22:57:39.842: network 192.168.10.0 metric 2
*Mar 17 22:57:46.870: RIP: sending v1 update to 255.255.255.255 via FastEthernet0/0 (192.168.1.240)
*Mar 17 22:57:46.870: RIP: build update entries
*Mar 17 22:57:46.870: network 192.168.5.0 metric 1
*Mar 17 22:57:53.654: RIP: received v1 update from 192.168.1.1 on FastEthernet0/0
*Mar 17 22:57:53.654: 192.168.10.0 in 1 hops
Router2#
no debug ip rip
Working with Enhanced Interior Gateway Routing Protocol (EIGRP)
Because EIGRP has replaced IGRP in all ways, I do not cover IGRP except to say that, for legacy reasons, you may still see it on some routers.
Three main tables, which are stored in memory, support the EIGRP routing protocol:
• Neighbor Table: Information about all adjacent routers running EIGRP are stored here. This information includes sequence numbers and protocol timers.
• Topology Table: All destination networks that neighbor routers have reported knowing about are stored in this table. This table would include the metrics for every route reported, as some network ID may have multiple routes and the best route would be evaluated by the cost of the metrics.
• Routing Table: In addition to least cost routes, EIGRP evaluates secondary routes to each network and creates a list of feasible successors that are added to the routing table. A feasible successor is a route that would be used if the primary route to a network fails.
The information that EIGRP receives in its updates go into these three tables.
Using the EIGRP commands
The configuration of EIGRP is just about as easy as the configuration of RIP. One difference is the concept of an Autonomous System (AS), which defines a group of routers to which the EIGRP router belongs to. The AS number is exchanged as part of the routing protocol messages, and any message with a different AS number is ignored by your router. So, it is important that all routers in the same routing group share the same AS number.
Auto-summary
Just as you do when configuring RIP, you specify the connected networks that your routing protocols will be sending to other routers by using the network
command. Also, as with RIP, there is an auto-summary option, which you can modify or disable.
Router2>
enable
Password:
Router2#
configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)#
ip routing
Router2(config)#
router eigrp 100
Router2(config-router)#
network 192.168.1.0
Router2(config-router)#
network 192.168.5.0
Router2(config-router)#
no auto-summary
Router2(config-router)#
exit
Router2(config)#
exit
Auto-summary for EIGRP works similarly to the way it works for RIP. With auto-summary enabled, all routes are summarized as close to the classful boundaries. To change this feature, enter specific interfaces on your router and force summarization to occur at different boundaries — for example, ip summary-address eigrp 100 10.0.0.0 255.255.0.0
for a router configured with networks of 10.0.1.0 and 10.0.100.0.
Reviewing the following routing table, you see the addition of D
type routes. The D
routers are routes that were learned through EIGRP, whereas EX identifies routes from EIGRP configured for external use.
Router2>
enable
Password:
Router2#
show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
D 192.168.10.0/24 [90/284160] via 192.168.1.1, 00:04:19, FastEthernet0/0
C 192.168.5.0/24 is directly connected, FastEthernet0/1
C 192.168.1.0/24 is directly connected, FastEthernet0/0
S 192.168.3.0/24 [1/0] via 192.168.1.1
Split horizon
EIGRP uses a behavior called split horizon (discussed in Chapter 6 of this minibook) to control routing updates. By default, this behavior is enabled on all interfaces on the router. You can disable split horizon on any or all interfaces.
Router2>
enable
Password:
Router2#
configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)#
interface fastethernet0/0
Router2(config-if)#
no ip split-horizon eigrp 100
Router2(config-if)#
exit
Router2(config)#
exit
Load balancing
EIGRP supports load balancing, which is sending data over multiple paths when they are available. There are two basic methods of load balancing with EIGRP, either based on equal costs or unequal costs. By default EIGRP will use equal cost load balancing. So if there are two or more paths to the same destination, they will be load balanced only if their total link costs are equal. Figure 7-2 shows a network with three paths and with total costs of 20, 25, and 45. In this case, the link with the cost of 20 is always used. If you want EIGRP to load balance over two links, the two links would require an equal cost. When the network does not naturally evaluate to equal costs, you can force it with the variance
command, thereby making it unequal cost routing. In the sample network shown in Figure 7-2, the path through Router3
has a cost of 25, by using the variance
command, you can make it equal to the path through Router4
, as shown here:
Figure 7-2: An unequal cost network.
Router2>
enable
Password:
Router2#
configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)#
ip routing
Router2(config)#
router eigrp 100
Router2(config-router)#
variance 2
Router2(config-router)#
exit
Router2(config)#
exit
The variance of 2 in the preceding output instructs EIGRP to take the least-cost route and multiply it by the variance. In this case, if you take the least-cost route of 20 and multiply it by 2, you end up with 40; so all routes with a cost less than 40 are considered to be equal. To route over all three links, use a variance of 3, making all routes less than 60 equivalent.
Some other methods for dealing with equal or unequal path routing involve changing the default system metric values. EIRGP uses the following calculation to generate a final metric, with lowest metrics being preferred:
metric = [K1*bandwidth + (K2*bandwidth)/(256 - load) + K3*delay] *
[K5/(reliability + K4)]
The default values for these settings are K1=1, K2=0, K3=1, K4=0, and K5=0, which means that the normal net metric is based on the bandwidth and delay of the links. If you use the same physical network infrastructure throughout your network, the metric is therefore based solely on the number of hops.
Router2>
enable
Password:
Router2#
configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)#
ip routing
Router2(config)#
router eigrp 100
Router2(config-router)#
metric weights tos k1 k2 k3 k4 k5
Router2(config-router)#
exit
Router2(config)#
exit
Router2#
configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)#
interface FastEthernet 0/0
Router2(config-if)#
bandwidth 1000
Router2(config-if)#
delay 120
!--- Delay is entered in tens of microseconds.
Router2(config-if)#
exit
Router2(config)#
exit
Clearing your IP route
Troubleshooting EIGRP
The basic command for checking the status of EIGRP and other routing protocols is show ip protocols
. The following output shows the output related to EIGRP. However, first here are some key things to look for:
• No filters on interfaces, either incoming or outgoing
• Metric settings (automatically at the default settings)
• Maximum configured hop count
• AS number
• Summarization settings
• Networks this router is distributing
• Neighbors seen
• Administrative distance
Router2>
enable
Password:
Router2#
show ip protocols
Routing Protocol is “eigrp 100”
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Default networks flagged in outgoing updates
Default networks accepted from incoming updates
EIGRP metric weight K1=1, K2=0, K3=1, K4=0, K5=0
EIGRP maximum hopcount 100
EIGRP maximum metric variance 1
Redistributing: eigrp 100
EIGRP NSF-aware route hold timer is 240s
Automatic network summarization is not in effect
Maximum path: 4
Routing for Networks:
192.168.1.0
192.168.5.0
Routing Information Sources:
Gateway Distance Last Update
192.168.1.1 90 00:03:43
Distance: internal 90 external 170
In addition to the basics found in show ip protocols
, a suite of commands is available through the show ip eigrp
command. The following information shows the categories of information you can find by using the show ip eigrp
command:
Router2>
enable
Password:
Router2#
show ip eigrp ?
<1-65535> Autonomous System
interfaces IP-EIGRP interfaces
neighbors IP-EIGRP neighbors
topology IP-EIGRP Topology Table
traffic IP-EIGRP Traffic Statistics
vrf Select a VPN Routing/Forwarding instance
The interfaces option
The interfaces
option identifies which interfaces receive EIGRP messages, and how many possible unreliable and reliable routes exist.
Router2>
enable
Password:
Router2#
show ip eigrp interfaces
IP-EIGRP interfaces for process 100
Xmit Queue Mean Pacing Time Multicast Pending
Interface Peers Un/Reliable SRTT Un/Reliable Flow Timer Routes
Fa0/0 1 0/0 4 0/10 50 0
Fa0/1 0 0/0 0 0/10 0 0
The neighbors option
The EIGRP neighbors
option gives you information about systems from which your router is receiving EIGRP packets and when that information is allowed to be modified.
Router2>
enable
Password:
Router2#show ip eigrp neighbors detail
IP-EIGRP neighbors for process 100
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 192.168.1.1 Fa0/0 11 00:02:02 4 200 0 10
Version 12.0/1.0, Retrans: 1, Retries: 0
The topology option
The topology
option displays information that goes into the topology table. In this case, you can see that the output includes a list of potential routes which can be used for the networks and on which interface the routes were learned. Notice that the listing includes successors, while if they were available, you would also see the feasible successors.
Router2>
enable
Password:
Router2#
show ip eigrp topology all
IP-EIGRP Topology Table for AS(100)/ID(192.168.5.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 192.168.10.0/24, 1 successors, FD is 284160, serno 7
via 192.168.1.1 (284160/281600), FastEthernet0/0
P 192.168.1.0/24, 1 successors, FD is 28160, serno 6
via Connected, FastEthernet0/0
P 192.168.5.0/24, 1 successors, FD is 28160, serno 8
via Connected, FastEthernet0/1
The traffic option
A traffic
display provides the statistics on the EIGRP traffic that your router is seeing, the packets it has received, and the number to which it has responded. Notice that these statistics are for a specific AS identifier.
Router2>
enable
Password:
Router2#
show ip eigrp traffic
IP-EIGRP Traffic Statistics for AS 100
Hellos sent/received: 272/109
Updates sent/received: 13/13
Queries sent/received: 0/0
Replies sent/received: 0/0
Acks sent/received: 5/7
Input queue high water mark 1, 0 drops
SIA-Queries sent/received: 0/0
SIA-Replies sent/received: 0/0
Hello Process ID: 167
PDM Process ID: 166
The debug command
Finally, you come to the debug
command. Be aware that enabling any debug
command puts a load on your router. Notice that the following output gives you information on the neighbors, such as new adjacency (learning of a new adjacent or neighbor router), changes in link availability, and routing information.
Router2>
enable
Password:
Router2#
debug ip eigrp
IP-EIGRP Route Events debugging is on
*Mar 18 00:38:35.281: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 192.168.1.1 (FastEthernet0/0) is up: new adjacency
*Mar 18 00:38:49.569: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 192.168.1.1 (FastEthernet0/0) is down: peer restarted
*Mar 18 00:38:54.321: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 192.168.1.1 (FastEthernet0/0) is up: new adjacency
*Mar 18 00:38:58.913: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 192.168.1.1 (FastEthernet0/0) is down: peer restarted
*Mar 18 00:39:03.397: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 192.168.1.1 (FastEthernet0/0) is up: new adjacency
*Mar 18 00:45:05.109: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 192.168.1.1 (FastEthernet0/0) is up: new adjacency
*Mar 18 00:45:05.117: IP-EIGRP(Default-IP-Routing-Table:100): 192.168.1.0/24 - do advertise out FastEthernet0/0
*Mar 18 00:45:05.697: IP-EIGRP(Default-IP-Routing-Table:100): Processing incoming UPDATE packet
*Mar 18 00:45:05.697: IP-EIGRP(Default-IP-Routing-Table:100): Int 192.168.10.0/24 M 284160 - 256000 28160 SM 281600 - 256000 25600
*Mar 18 00:45:05.713: %LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to up
*Mar 18 00:45:05.717: IP-EIGRP(Default-IP-Routing-Table:100): Int 192.168.10.0/24 metric 284160 - 256000 28160
*Mar 18 00:45:06.713: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up
*Mar 18 00:45:07.117: IP-EIGRP(Default-IP-Routing-Table:100): 192.168.1.0/24 - do advertise out FastEthernet0/0
*Mar 18 00:45:07.129: IP-EIGRP(Default-IP-Routing-Table:100): Int 192.168.10.0/24 metric 284160 - 256000 28160
*Mar 18 00:45:07.141: IP-EIGRP(Default-IP-Routing-Table:100): 192.168.5.0/24 - do advertise out FastEthernet0/0
*Mar 18 00:45:07.141: IP-EIGRP(Default-IP-Routing-Table:100): Int 192.168.5.0/24 metric 28160 - 25600 2560
*Mar 18 00:45:07.161: IP-EIGRP(Default-IP-Routing-Table:100): Processing incoming UPDATE packet
*Mar 18 00:45:07.161: IP-EIGRP(Default-IP-Routing-Table:100): Int 192.168.5.0/24 M 4294967295 - 256000 4294967295 SM 4294967295 - 256000 4294967295
Router2#
no debug ip eigrp