EIGRP configuration is divided into two modes – the router configuration mode and the Interface configuration mode. The global configuration such as AS number and networks to advertise are configured in the router configuration mode, the Interface specific configuration such as metrics and timers are configured in the Interface configuration mode.

The steps to Enable EIGRP and define the networks to be advertised are similar to that of RIP and can be done in the following two steps:

  1. Enable EIGRP globally using the router eigrp as-number global configuration command. This command will bring you to the routing configuration mode as shown below:
Router(config)#router eigrp 10
Router(config-router)# 

The AS Number can be anything from 1 to 65535 but has to be same on all routers that need to form adjacency.

  1. Tell the router which networks to advertise using the network <network> command in the routing configuration mode as shown below:
Router(config-router)#network 192.168.0.0 

EIGRP gives the option to use wildcard masks when configuring EIGRP but for CCNA we will use classful networks only when defining networks in EIGRP.

Remember that the network command is used to tell the router the connected routes you want to advertise. Any routes learned from other routers will automatically be advertised out. As soon as the network command is given, EIGRP will begin sending out hello packets to the network and wait for hello packets from the neighbors.

Figure 5-4 will be used for the rest of EIGRP sections in this chapter.

Figure 5-4 EIGRP example network

 4

Now that you know how EIGRP functions and how to configure it, let us configure the network shown in Figure 5-4 to see EIGRP in effect. We will not configure RouterE in this section.

The configuration required on the four routers to get EIGRP working is shown below. All routers will be configured to be EIGRP AS 10.

RouterA(config)#router eigrp 10
RouterA(config-router)#network 192.168.1.0
RouterA(config-router)#network 192.168.4.0

RouterB(config)#router eigrp 10
RouterB(config-router)#network 192.168.1.0
RouterB(config-router)#network 192.168.2.0
RouterB(config-router)#network 10.0.0.0

RouterC(config)#router eigrp 10
RouterC(config-router)#network 192.168.2.0
RouterC(config-router)#network 192.168.3.0
RouterC(config-router)#network 192.168.6.0
RouterD(config)#router eigrp 10
RouterD(config-router)#network 192.168.4.0
RouterD(config-router)#network 192.168.4.0
RouterD(config-router)#network 192.168.5.0

Now look at the routing table of each router to see the effect. Remember that lines starting with D denote a route learned from EIGRP.

RouterA#sh ip route
–output truncated–

Gateway of last resort is not set

C    192.168.4.0/24 is directly connected, FastEthernet0/1
D    192.168.5.0/24 [90/307200] via 192.168.4.4, 00:03:22, FastEthernet0/1
D    10.0.0.0/8 [90/307200] via 192.168.1.2, 00:04:17, FastEthernet0/0
D    192.168.6.0/24 [90/2707456] via 192.168.1.2, 00:03:42, FastEthernet0/0
C    192.168.1.0/24 is directly connected, FastEthernet0/0
D    192.168.2.0/24 [90/2195456] via 192.168.1.2, 00:04:19, FastEthernet0/0
D    192.168.3.0/24 [90/2221056] via 192.168.1.2, 00:03:47, FastEthernet0/0

RouterB#sh ip route
–output truncated–

Gateway of last resort is not set

D    192.168.4.0/24 [90/307200] via 192.168.1.1, 00:04:37, FastEthernet0/0
D    192.168.5.0/24 [90/332800] via 192.168.1.1, 00:03:33, FastEthernet0/0
     10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D       10.0.0.0/8 is a summary, 00:04:27, Null0
C       10.1.0.0/16 is directly connected, FastEthernet0/1
D    192.168.6.0/24 [90/2681856] via 192.168.2.3, 00:03:53, Serial0/0
C    192.168.1.0/24 is directly connected, FastEthernet0/0
C    192.168.2.0/24 is directly connected, Serial0/0
D    192.168.3.0/24 [90/2195456] via 192.168.2.3, 00:03:57, Serial0/0

RouterC#sh ip route
–output truncated–

Gateway of last resort is not set

D    192.168.4.0/24 [90/2221056] via 192.168.2.2, 00:04:39, Serial0/1
D    192.168.5.0/24 [90/2246656] via 192.168.2.2, 00:04:11, Serial0/1
D    10.0.0.0/8 [90/2195456] via 192.168.2.2, 00:04:39, Serial0/1
C    192.168.6.0/24 is directly connected, Serial0/0
D    192.168.1.0/24 [90/2195456] via 192.168.2.2, 00:04:39, Serial0/1
C    192.168.2.0/24 is directly connected, Serial0/1
C    192.168.3.0/24 is directly connected, FastEthernet0/0

RouterD#sh ip route
–output truncated–

Gateway of last resort is not set

C    192.168.4.0/24 is directly connected, FastEthernet0/1
C    192.168.5.0/24 is directly connected, FastEthernet0/0
D    10.0.0.0/8 [90/332800] via 192.168.4.1, 00:04:22, FastEthernet0/1
D    192.168.6.0/24 [90/2733056] via 192.168.4.1, 00:04:22, FastEthernet0/1
D    192.168.1.0/24 [90/307200] via 192.168.4.1, 00:04:22, FastEthernet0/1
D    192.168.2.0/24 [90/2221056] via 192.168.4.1, 00:04:22, FastEthernet0/1
D    192.168.3.0/24 [90/2246656] via 192.168.4.1, 00:04:22, FastEthernet0/1

Stopping EIGRP updates on an Interface

As soon as EIGRP is enabled on an interface, it will start sending and receiving hello packets on its interfaces. Many situations require you to stop EIGRP from sending hello packets out an interface or forming an adjacency via that interface. An example of such a situation is when an interface connects to the Internet. You do not want your routing updates to go out to the Internet. In such situations, you can use the passive-interface interface command in the routing configuration mode to stop EIGRP from sending hello packets out that interface.

In our example network, we do not need to send EIGRP updates out interface fa0/1 on RouterB. We can stop updates going out off these interfaces using the following commands:

RouterB(config)#router eigrp 10
RouterB(config-router)#passive-interface fa0/1 

Notice that the behavior of the passive-interface command is different in EIGRP than in RIP. In RIP, updates will not be sent out a passive interface but will continue to be received. EIGRP on the other hand, will not send or receive updates on a passive interface.

Multiple Autonomous Systems 

As you already know, AS is used to group routers into a single administrative domain in EIGRP. Routers belonging to different AS will not form an adjacency and thus will not exchange routes.

Having a single AS across a large network can cause it to have a complicated topology and routing table. In such networks, convergence can slow down during network changes. To mitigate this, large networks should be broken into multiple ASes.

Routing information is not shared between different ASes by default. Dividing a large network into multiple ASes will cause incomplete routing tables. To mitigate that, routes are redistributed between the ASes at points where they intersect. While redistribution is out of scope of CCNA, you should remember the following when it comes to EIGRP redistribution:

  1. Normal EIGRP routes are called internal routes and have an administrative distance (AD) of 90. On the other hand, redistributed routes are called external routes and have an administrative distance of 170. Even routes redistributed between two EIGRP ASes are treated as external routes
  2. When redistributing from one EIGRP AS to another, the metrics are not changed. This is because EIGRP understands it own metrics! On the other hand when redistributing between different routing protocols, you need to tell the receiving routing protocol how to treat the metrics. This is because EIGRP will not understand metrics from OSPF and similarly OSPF will not understand metrics from EIGRP.

VLSM Support and Summarization

 EIGRP propagates subnet masks along with routes in its updates. This enables it to support Variable length subnet masks (VLSM).  As you already know VLSM helps conserve subnets though use of subnet masks. This also helps EIGRP support discontiguous subnets. A discontiguous network is one that has two subnets of a classful network connected together by another classful network.

An example of discontiguous network can be seen in Figure 5-4 where 10.1.0.0/16 and 10.2.0.0/16 networks are separated by 192.168.x.0/24 networks. Remember that RIPv1 does not support such networks.

EIGRP by default does not support discontigous networks, but can be configured to do so. To understand the problems that arises when a protocol does not support discontiguous networks, let us configure RouterE to use EIGRP:

RouterE(config)#router eigrp 10
RouterE(config-router)#network 192.168.5.0
RouterE(config-router)#network 192.168.6.0
RouterE(config-router)#network 10.0.0.0  

Let us verify the routing table on RouterE first:

RouterE#sh ip route
–output truncated–

Gateway of last resort is not set

D    192.168.4.0/24 [90/307200] via 192.168.5.4, 00:00:39, FastEthernet0/0
C    192.168.5.0/24 is directly connected, FastEthernet0/0
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       10.2.0.0/16 is directly connected, FastEthernet0/1
D       10.0.0.0/8 is a summary, 00:00:26, Null0
C    192.168.6.0/24 is directly connected, Serial0/0
D    192.168.1.0/24 [90/332800] via 192.168.5.4, 00:00:39, FastEthernet0/0
D    192.168.2.0/24 [90/2246656] via 192.168.5.4, 00:00:39, FastEthernet0/0
D    192.168.3.0/24 [90/2195456] via 192.168.6.3, 00:00:34, Serial0/0

Now to see the problem associated with a routing protocol not supporting discontiguous networks, take a look at the routing table of RouterA:

RouterA#sh ip route
–output truncated–

Gateway of last resort is not set

C    192.168.4.0/24 is directly connected, FastEthernet0/1
D    192.168.5.0/24 [90/307200] via 192.168.4.4, 19:36:09, FastEthernet0/1
D    10.0.0.0/8 [90/307200] via 192.168.1.2, 00:01:02, FastEthernet0/0
D    192.168.6.0/24 [90/2221056] via 192.168.4.4, 00:01:10, FastEthernet0/1
C    192.168.1.0/24 is directly connected, FastEthernet0/0
D    192.168.2.0/24 [90/2195456] via 192.168.1.2, 19:37:06, FastEthernet0/0
D    192.168.3.0/24 [90/2221056] via 192.168.1.2, 00:01:10, FastEthernet0/0

Notice that there is only one route to the 10.0.0.0/8 network pointing towards RouterB whereas in our network we have two 10.x.0.0/16 networks.

Similarly on RouterD, there is only a single 10.0.0.0/8 route pointing towards RouterE:

RouterD#sh ip route
–output truncated–

Gateway of last resort is not set

C    192.168.4.0/24 is directly connected, FastEthernet0/1
C    192.168.5.0/24 is directly connected, FastEthernet0/0
D    10.0.0.0/8 [90/307200] via 192.168.5.5, 00:02:41, FastEthernet0/0
D    192.168.6.0/24 [90/2195456] via 192.168.5.5, 00:02:49, FastEthernet0/0
D    192.168.1.0/24 [90/307200] via 192.168.4.1, 19:37:52, FastEthernet0/1
D    192.168.2.0/24 [90/2221056] via 192.168.4.1, 19:37:52, FastEthernet0/1
D    192.168.3.0/24 [90/2221056] via 192.168.5.5, 00:02:49, FastEthernet0/0

So traffic destined to 10.2.0.0/16 network will be routed to RouterE from RouterD but to RouterB from RouterA.

This happens in EIGRP because by default EIGRP automatically summaries the networks at classful boundaries. Which means that RouterB and RouterE by default advertise the 10.x.0.0/16 network as 10.0.0.0/8 network. This behavior of EIGRP can be changed to support discontigous networks by using the no auto-summary command in the global configuration mode. The followings commands disable auto summary on all routers in our network:

RouterA(config)#router eigrp 10
RouterA(config-router)#no auto-summary

RouterB(config)#router eigrp 10
RouterB(config-router)#no auto-summary

RouterC(config)#router eigrp 10
RouterC(config-router)#no auto-summary

RouterD(config)#router eigrp 10
RouterD(config-router)#no auto-summary

RouterE(config)#router eigrp 10
RouterE(config-router)#no auto-summary

The above changes will cause EIGRP to reset all adjacencies and form them again, creating a small window when the routing tables will not be updated. After the adjacencies come back up, the routing table on RouterA will look like the following:

RouterA#sh ip route
–output truncated–

Gateway of last resort is not set

C    192.168.4.0/24 is directly connected, FastEthernet0/1
D    192.168.5.0/24 [90/307200] via 192.168.4.4, 19:57:14, FastEthernet0/1
10.0.0.0/16 is subnetted, 2 subnets
D       10.2.0.0 [90/332800] via 192.168.4.4, 00:16:05, FastEthernet0/1
D       10.1.0.0 [90/307200] via 192.168.1.2, 00:16:08, FastEthernet0/0
D    192.168.6.0/24 [90/2221056] via 192.168.4.4, 00:22:15, FastEthernet0/1
C    192.168.1.0/24 is directly connected, FastEthernet0/0
D    192.168.2.0/24 [90/2195456] via 192.168.1.2, 19:58:11, FastEthernet0/0
D    192.168.3.0/24 [90/2221056] via 192.168.1.2, 00:22:15, FastEthernet0/0

In the above output notice that there are now routing entries for both 10.1.0.0/16 and 10.2.0.0/16 networks, both pointing towards the correct next hop. Similarly, the routing table on RouterD has entries for each of those networks:

RouterD#sh ip route
–output truncated–

Gateway of last resort is not set

C    192.168.4.0/24 is directly connected, FastEthernet0/1
C    192.168.5.0/24 is directly connected, FastEthernet0/0
10.0.0.0/16 is subnetted, 2 subnets
D       10.2.0.0 [90/307200] via 192.168.5.5, 00:17:27, FastEthernet0/0
D       10.1.0.0 [90/332800] via 192.168.4.1, 00:17:31, FastEthernet0/1
D    192.168.6.0/24 [90/2195456] via 192.168.5.5, 00:23:37, FastEthernet0/0
D    192.168.1.0/24 [90/307200] via 192.168.4.1, 19:58:39, FastEthernet0/1
D    192.168.2.0/24 [90/2221056] via 192.168.4.1, 19:58:39, FastEthernet0/1
D    192.168.3.0/24 [90/2221056] via 192.168.5.5, 00:23:37, FastEthernet0/0

As you saw in this section, discontiguous networks can cause routing problems but EIGRP can support them with a little change.

EIGRP load balancing and maximum hops 

Like RIP, EIGRP can load balance across a default of 4 equal cost paths. It can be configured to load balance across a maximum of 6 paths (for older IOS versions) and 16 paths (for IOS versions 12.2(33) and above). The difference between EIGRP and RIP load balancing is that EIGRP can be configured to load balance across unequal cost paths also.

EIGRP load balancing can be seen in our setup on RouterC. You may have noticed that RouterC has two paths to the 192.168.4.0/24 network and both paths use similar links. Hence RouterC will load balance traffic destined to 192.168.4.0/24 network as can be seen in its routing table:

RouterC#sh ip route
–output truncated–

Gateway of last resort is not set

D    192.168.4.0/24 [90/2221056] via 192.168.6.5, 00:03:32, Serial0/0
                    [90/2221056] via 192.168.2.2, 00:03:32, Serial0/1
D    192.168.5.0/24 [90/2195456] via 192.168.6.5, 00:03:32, Serial0/0
10.0.0.0/16 is subnetted, 2 subnets
D       10.2.0.0 [90/2195456] via 192.168.6.5, 00:03:32, Serial0/0
D       10.1.0.0 [90/2195456] via 192.168.2.2, 00:03:32, Serial0/1
C    192.168.6.0/24 is directly connected, Serial0/0
D    192.168.1.0/24 [90/2195456] via 192.168.2.2, 00:03:38, Serial0/1
C    192.168.2.0/24 is directly connected, Serial0/1
C    192.168.3.0/24 is directly connected, FastEthernet0/0

To see the effect of metrics on EIGRP load balancing, I reduced the bandwidth on the s0/0 interface to 100 Kbit/sec. This caused the cost of the route to 192.168.4.0/24 via 192.168.2.2 to increase. Since the cost increased, EIGRP will no longer load balance across that path. The change in bandwidth and the effect on the routing table can be seen below:

RouterC(config)#int s0/0
RouterC(config-if)#bandwidth 100
RouterC(config-if)#end
RouterC#sh ip route
–output truncated–

Gateway of last resort is not set

D    192.168.4.0/24 [90/2221056] via 192.168.2.2, 00:00:08, Serial0/1
D    192.168.5.0/24 [90/2246656] via 192.168.2.2, 00:00:08, Serial0/1
10.0.0.0/16 is subnetted, 2 subnets
D       10.2.0.0 [90/2272256] via 192.168.2.2, 00:00:08, Serial0/1
D       10.1.0.0 [90/2195456] via 192.168.2.2, 00:00:08, Serial0/1
C    192.168.6.0/24 is directly connected, Serial0/0
D    192.168.1.0/24 [90/2195456] via 192.168.2.2, 00:00:08, Serial0/1
C    192.168.2.0/24 is directly connected, Serial0/1
C    192.168.3.0/24 is directly connected, FastEthernet0/0

In the above output notice that the traffic to 192.168.4.0/24 is no longer load balanced.

The maximum paths across which EIGRP can load balance can be configured using the maximum-paths paths command as shown below:

RouterA(config)#router eigrp 10
RouterA(config-router)#maximum-paths ?
<1-16>  Number of paths

RouterA(config-router)#maximum-paths 6

Unequal cost load balancing in EIGRP can be achieved using the variance command but is out of the scope of the CCNA exam.

One of the limitations that EIGRP inherits from distance vector protocols is the maximum hop count limitation. By default it has a maximum hop count of 100 but can be increased up to 255 using the metric maximum-hops hops command as shown below:

RouterA(config)#router eigrp 10
RouterA(config-router)#metric maximum-hops ?
<1-255>  Hop count

RouterA(config-router)#metric maximum-hops 255

One important thing to remember when it comes to hop counts in EIGRP is that the count is not used in the calculation of cost of a route, but is only used to limit the size of an autonomous system.