Enhanced Interior Gateway Routing Protocol (EIGRP) is a hybrid routing protocol that maps directly to IP protocol 88. It’s referred to as a hybrid because it uses features from both distance vector and link state protocols. It also uses distance vector measurements along with triggered updates. Designed to overcome some of the limitations of the now-obsolete routing protocol IGRP, the following are enhancements provided by this protocol (among other things):
- The ability to support VLSM
- Reliable Transport Protocol (RTP)
- The DUAL finite-state machine
- Neighbor recovery and discovery
- Protocol-dependent modules
EIGRP is not mentioned in the exam syllabus. I sat the exam and decided to leave it in the book. I can’t say more than that due to the non-disclosure agreement you sign before taking the exam. I hope you understand. You learn advanced EIGRP configuration in our Cisco CCNP ENARSI course.
EIGRP Routing
The main advantages of using EIGRP include faster convergence, VLSM support, low CPU utilization, it scales well to large networks, and it has MD5 authentication built in. It is the only protocol that supports multiple routed protocols (through its protocol-dependent modules) because it features separate tables maintained for each routed protocol (IP, IPX, IPv6, etc.). After an EIGRP network is converged, only changes are propagated via incremental updates as opposed to the entire routing table.
EIGRP is a classless routing protocol, and it uses Diffusing Update Algorithm (DUAL) to calculate loop-free routes based on the information collected. DUAL tracks all the routes advertised by neighbor routers and selects the best path based on composite metrics consisting of bandwidth, delay, reliability, and load. DUAL allows for rapid convergence, making it a good routing protocol choice for many networks.
EIGRP automatically summarizes networks at major network boundaries. Figure 17.1 below is an example of how a badly designed network will be affected if EIGRP is allowed to summarize at the major network boundary:
FIG 17.1 – EIGRP auto summarization
This is default behavior for the protocol. If you are using VLSM in your network, you may need to turn this feature off using the no auto-summary command (see the EIGRP lab below for an example of this).
![]() |
This is IOS-dependent. Auto summary is disabled by default, starting in release 15.0(1)M. |
RouterA#config terminal
RouterA(config)#router eigrp 20
RouterA(config-router)#no auto-summary
EIGRP does not send periodic updates. Instead, when a metric for a route changes, a partial update is sent out. Periodic Hello packets are sent out at predetermined intervals. These Hello packets inform neighbor routers that the router is alive and available to receive and send routing updates.
EIGRP neighbors will form if both ends of the link agree on any authentication configured, have the same autonomous system number (ASN), see the Hello packet coming from an IP address in the same subnet, and have matching K values. This is very important to bear in mind for the exam, as you may be asked to fix a network running EIGRP where neighbors won’t form!
EIGRP Terminology
- Metric – EIGRP uses a composite metric. An algorithm is used for metric calculation. Components of the composite metrics are bandwidth, delay (of the line), reliability, and load. EIGRP uses bandwidth and delay by default (metric = [bw + delay] x 256).
- Topology table – Each EIGRP router maintains a topology table for every configured protocol, such as IP, IPX, etc. All routes learned via EIGRP are held in this table. The topology table holds the metrics and feasible distances associated with the routes.
- Neighbor table – The neighbor table is a list of adjacent routers running EIGRP. The show ip eigrp neighbors command shows the neighbors.
- Successor/feasible successor – When EIGRP runs DUAL, it forms a loop-free topology of the network. Part of this process is to determine a successor and feasible successor to every route in the EIGRP routing table. The successor is the primary path to the route, and the feasible successor is the next-best route if the successor is not available. The feasible successor is a backup route based on and stored in the topology table.
- Internal route – Routes that originate from within an EIGRP AS are known as internal routes. This route is propagated within the entire AS.
- External route – These routes are learned from another routing protocol or AS and are shown in the routing table as static routes.
Cisco cover this in detail in their EIGRP notes.
EIGRP Composite Metric Calculation
As stated above, EIGRP uses a composite metric to determine the best path to take from A to B. This metric can take four attributes into account—bandwidth, delay, load, and reliability. These attributes are used in a formula to determine the EIGRP metric used. You can influence the attributes used by adjusting some special constants in the formula. These values are referred to as K values.
Bandwidth is expressed in Kilobits. EIGRP will take the default bandwidth set for an interface; for example, on a T1 interface, it is 1544 Kbps. You can also manually set the interface bandwidth with the bandwidth command.
Serial 0/0 is up, line protocol is up
Hardware is MCI Serial
Internet address is 192.168.10.203, subnet mask is 255.255.255.0
MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec, rely 255/255, load 1/255
Delay is expressed in microseconds (you can see it next to the bandwidth in the output above). It can be adjusted manually with the delay interface-level command. Cisco recommends using the delay command rather than the bandwidth command if you want to influence EIGRP routing decisions. Many junior engineers believe that adjusting these values actually changes the throughput of the interface, but this is not the case; only the routing metric is affected. If it was affected, you could add the bandwidth 1544 command on a 64 Kbps interface and dramatically increase its throughput capability for free!
![]() |
Interface statistics and QoS can also be affected. |
- Reliability is a dynamic number ranging from 1 to 255. A value of 255 means the link is the most reliable. The value can be seen in the output above.
- Load is also in the range of 1 to 255, and it represents the output load of an interface, with 1 being the least loaded and 255 being 100% loaded.
- It’s also worth noting the MTU value, which is the largest packet size the interface can transmit without having to fragment it.
The EIGRP composite metric can be calculated using the formula below:
[K1 * bandwidth + (K2 * bandwidth) / (256 – load) + K3 * delay] * [K5 / (reliability + K4)]The default K values are K1 = K3 = 1 and K2 = K4 = K5 = 0. As such, the formula can be reduced to:
Metric = bandwidth + delay x 256.
However, the bandwidth and delay used in the EIGRP calculation are not just taken from the interface. EIGRP uses the minimum bandwidth in a path (which makes sense since that is the bottleneck) and the sum of the delays of all the links in the path. The bandwidth and delay values are derived using the formula below:
Bw = 256 * 107 / minimum bandwidth on path (expressed in Kilobits)
Delay = 256 * sum of delays (expressed in 10s of microseconds)
Assuming that you have the bandwidth and delay in the right units, the default EIGRP metric can be expressed as:
[(10⁷ ⁄ least bandwidth on path) + (sum of all delays)] × 256The calculation of the composite metric can be adjusted by changing the K values. This can be done using the metric weights [tos] k1 k2 k3 k4 k5 router configuration command. The [tos] represents type of service, and it is usually set to 0. The K values can be set to any value between 1 and 255. You can view the K values using the show ip protocols command, as shown in the output below. You can see that only K1 and K3 are used by default.
Router#show ip protocols
Routing Protocol is eigrp 150
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 150
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
Routing Information Sources:
Gateway Distance Last Update
192.168.1.3 90 00:00:15
Distance: internal 90 external 170
You should remember that K values have to match before two EIGRP routers can establish a neighbor relationship. As such, when changing the K values, you have to ensure that the change is made across the entire autonomous system.
NOTE: Adjusting the default K value settings is not recommended. It should be done only with the assistance of seasoned senior-level engineers who have a solid understanding of the implications of such actions within the network or based on the recommendation of a Cisco TAC.
EIGRP Neighbors
Because EIGRP doesn’t advertise its entire routing table at set intervals (which older protocols such as RIP does), it needs a method of exchanging routing information with adjacent routers. EIGRP uses the concept of neighbor relationships in order to achieve this outcome.
After a router has been configured to use EIGRP and the interfaces have been brought up with the no shut command, EIGRP attempts to find neighbors by sending Hello packets every five seconds using multicast address 224.0.0.10 (if it is using a broadcast media such as Ethernet or certain high-speed Serial interfaces such as T1). If the connection is NBMA or low-speed Serial (under T1 speeds), the Hello is unicast every 60 seconds.
FIG 17.2 – EIGRP Hello packet capture
Routers running EIGRP in the same network receive the multicast Hello and respond in order to form an adjacency. The adjacency is maintained unless a set number of Hello packets are not received; a Hold timer starts, and if this expires, the route is marked as unreachable.
Reliable Transport Protocol
EIGRP uses Reliable Transport Protocol (RTP) to ensure that packets are delivered, received, ordered, and acknowledged. This is how EIGRP guarantees the delivery and reliability of its routing packets. It doesn’t use TCP or UDP for this process. Whenever a multicast packet is received, the router must send a response in the form of a unicast message. Also, any updates must be sent with a sequence number to ensure that the correct order is maintained.
EIGRP uses five packet types (via IP protocol 88), which are Hello, Ack, Update, Query, and Reply. Each packet type has an opcode, which is a 4-bit field that specifies the EIGRP message. Type 1 = Update, 3 = Query, 4 = Reply, 5 = Hello, and 6 = IPX SA. There are other packet types, but these are redundant.
FIG 17.3 – Capture of a Hello (Type 5) EIGRP packet
Understanding DUAL and Feasibility Condition
DUAL is used to determine the best path (the loop-free path with the lowest metric) to a destination network. The selected route is known as the successor route, and its metric is known as feasible distance (FD). The next-hop router for the successor route (the router that advertised the route) is called the successor.
The successor (next-hop neighbor) advertises the route with its own metric, which is known as the reported distance (RD) or advertised distance. Feasible distance includes the reported distance and the cost to reach the successor. The successor route is placed in the IP routing table and the EIGRP topology table, with the next-hop neighbor as the successor.
If the same prefix is learned from other neighbors, and the reported distance of the route advertised by the neighbor is less than the feasible distance of the successor path, then the neighbors are determined to be loop-free, and their routes are referred to as feasible successor routes. These routes are placed into the EIGRP topology table, but not into the IP routing table. In this way, it can quickly be accessed should the successor route fail for some reason (see below).
This requirement for the candidates for feasible successors to have a reported distance of the destination network, which is less than the feasible distance of the successor routes, is known as the feasibility condition and is used by EIGRP to prevent loops. If the reported distance is higher, then there is the probability that the path being advertised to the router is, in fact, going through the router itself.
When a neighbor changes a metric, or when a topology change occurs and the successor route is removed or changes, DUAL checks for feasible successors for the route, and if one is found, DUAL uses it to avoid recomputing the route unnecessarily. This is referred to as local computation. Performing a local computation saves CPU power because the feasible successor has been chosen and already exists before the successor or primary route fails.
When no feasible successor for the destination network exists, the local router will send a query to neighbor routers asking if they have information on the destination network. If the information is available and another neighbor does have a route to the destination network, then the router performs a diffusing computation to determine a new successor.
Figure 17.4 below illustrates many of the points above. We will look at the various tables EIGRP uses throughout this section.
FIG 17.4 – EIGRP topology calculation
EIGRP uses DUAL to create three tables—neighbor, topology, and routing.
Neighbor Table
The neighbor table maintains a list of routers with which an adjacency has been formed. You can see this list with the show ip eigrp neighbors command.
FIG 17.5 – EIGRP topology example
R2#show ip eigrp neighbors
IP-EIGRP neighbors for process 1
Address Interface Hold Uptime SRTT RTO Q Seq Num
(ms) (ms) Cnt 192.168.1.1 Fa0/0 11 00:21:33 360 2160 0 7
You can see that the process number is 1, which is the ASN configured. The address 192.168.1.1 is the peer IP address. Interface Fa0/0 is where the router received the Hello packets. Hold time is the number of seconds the router will wait until it declares the neighbor down. Uptime (hr:min:sec) is the time that has elapsed since the router first heard from the neighbor. SRTT is the smooth round-trip time, which is the number of milliseconds required for the EIGRP packet to be sent to the neighbor and acknowledged. RTO is the retransmission time out (ms), which is how long the router waits before resending a packet from the retransmission queue. Q is the queue count, which is the number of EIGRP packets waiting to be sent. Finally, the sequence number is the number of the last Update, Query, or Reply packet.
Topology Table
The topology table is where all learned routes can be found. All feasible distances and metrics are stored here. You can see the contents of the topology table with the show ip eigrp topology command. Figure 17.5 above shows the topology table.
R2# show ip eigrp topology
IP-EIGRP Topology Table for AS(1)/ID(192.168.1.2)
Codes: P – Passive, A – Active, U – Update, Q – Query, R – Reply,
r – reply Status, s – sia Status
P 192.168.1.0/24, 1 successors, FD is 281600
via Connected, FastEthernet0/0
P 172.16.0.0/16, 1 successors, FD is 409600
via 192.168.1.1 (409600/128256), FastEthernet0/0
In the output above, the codes represent the following:
- Passive – no EIGRP computations are being performed for this destination
- Active – EIGRP computations are being performed
- Update – an Update packet was sent for this destination
- Query – a Query packet was sent
- Reply – a Reply packet was sent
- SIA – refers to stuck in active, which means that EIGRP hasn’t received a reply to a query from the neighbor for the allotted time (approximately three minutes)
Successors is the number of successors and corresponds to the number of hops in the routing table. FD is feasible distance, which we will discuss shortly. The number 409600 refers to the cost to the destination, and 128256 is the metric advertised by the neighbor.
Routing Table
The routing table is where the routes with the lowest composite metric are placed. You can issue the show ip route command to see the output of the routing table. If a route goes down, EIGRP can quickly replace it using the topology table to find the feasible successor for the route.
R2#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
Gateway of last resort is not set
D 172.16.0.0/16 [90/409600] via 192.168.1.1, 00:22:07, F0/0
C 192.168.1.0/24 is directly connected, F0/0
Mini-lab – Configuring EIGRP
EIGRP can be enabled using the router eigrp [ASN] global configuration command. The ASN keyword represents the autonomous system number, which can range between 1 and 65535. EIGRP neighbors must have the same ASN before a neighbor relationship can be established.
After EIGRP has been enabled with the router eigrp [ASN] command, you can then specify the interfaces that you want to enable EIGRP on using the network [subnet] [mask] router configuration command.
If an interface has an IP address that falls within the network range, then:
- EIGRP is enabled on that interface and Hello messages are sent out;
- Hello messages are received on the interface, and a neighbor relationship can be formed;
- The subnet information of that interface is sent out in EIGRP updates;
- Routes received on that interface are considered in the DUAL process and can be installed in the topology or routing table; and
- The interface subnets are added to the EIGRP topology table.
You can view EIGRP protocol configuration using the show ip protocols command (or sh ip prot for short):
R1#show ip protocols
Routing Protocol is eigrp 150
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
…
If you do not use a mask in the network statement, EIGRP will default to the classful mask and enable all the interfaces in the classful range to use EIGRP. For example, consider a router with the following interfaces:
- Loopback 0 – IP Address 10.0.0.1/24
- Loopback 1 – IP Address 10.1.1.1/24
- Loopback 2 – IP Address 10.2.2.1/24
- Loopback 3 – IP Address 10.3.3.1/24
Enabling EIGRP using the network 10.0.0.0 command will enable EIGRP on all four Loopback interfaces, and you can see that the 10.0.0.0/8 network is enabled for EIGRP in the output of the show ip protocols command below:
R1#show ip protocols
Routing Protocol is eigrp 150
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 150
EIGRP NSF-aware route hold timer is 240s
Automatic network summarization is in effect
Maximum path: 4
Routing for Networks:
10.0.0.0
Routing Information Sources:
Gateway Distance Last Update
Distance: internal 90 external 170
Also, the subnets of the Loopback interfaces are placed into the EIGRP topology table, and you can see them using the show ip eigrp topology command, as shown below:
R1#show ip eigrp topology
IP-EIGRP Topology Table for AS(150)/ID(10.3.3.1)
Codes: P – Passive, A – Active, U – Update, Q – Query, R – Reply,
r – reply Status, s – sia Status
P 10.3.3.0/24, 1 successors, FD is 128256
via Connected, Loopback3
P 10.2.2.0/24, 1 successors, FD is 128256
via Connected, Loopback2
P 10.1.1.0/24, 1 successors, FD is 128256
via Connected, Loopback1
P 10.0.0.0/24, 1 successors, FD is 128256
via Connected, Loopback0
Note that this behavior is consistent regardless of the network number specified. As long as a mask is not specified, EIGRP will use the classful subnet mask. Consider the output below:
R1(config)#router eigrp 150
R1(config-router)#network 10.1.1.0
R1(config-router)#network 10.3.3.0
R1(config-router)#exit
Although the network statements refer to specific networks, the show ip protocols command reveals the following:
R1#show ip protocols
Routing Protocol is eigrp 150
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 150
EIGRP NSF-aware route hold timer is 240s
Automatic network summarization is in effect
Maximum path: 4
Routing for Networks:
10.0.0.0
Routing Information Sources:
Gateway Distance Last Update
Distance: internal 90 external 170
The way to enable EIGRP on a subset of the classful network is to enable EIGRP with a wildcard mask. You can modify the previous example to include the wildcard masks, as shown below:
R1(config)#router eigrp 150
R1(config-router)#network 10.1.1.0 0.0.0.255
R1(config-router)#network 10.3.3.0 0.0.0.255
R1(config-router)#exit
EIGRP will only be enabled on the interfaces covered by the 10.1.1.0/24 and 10.3.3.0/24 networks. You can verify this using the show ip protocols command as follows:
R1#show ip protocols
Routing Protocol is eigrp 150
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 150
EIGRP NSF-aware route hold timer is 240s
Automatic network summarization is in effect
Maximum path: 4
Routing for Networks:
10.1.1.0/24
10.3.3.0/24
Routing Information Sources:
Gateway Distance Last Update
Distance: internal 90 external 170
The show ip eigrp interfaces command shows only the Lo1 and Lo3 interfaces:
R1#show ip eigrp interfaces
IP-EIGRP interfaces for process 150
Xmit Mean Pacing Multicast Pending Flow Timer
Queue Un/Reliable Time Un/Reliable
Interface Peers SRTT
Lo1 0 0/0 0 0/10 0 0
Lo3 0 0/0 0 0/10 0 0
Note that you can use the subnet mask directly in the network statement when configuring EIGRP, and the router will convert it to the wildcard mask for you. For example, if you enter the configuration below:
R1(config-router)#router eigrp 150
R1(config-router)#network 10.1.1.0 255.255.255.0
R1(config-router)#network 10.3.3.0 255.255.255.0
R1(config-router)#exit
The router converts the subnet masks to the appropriate wildcard masks by inverting the 0s and 1s. The configuration file now looks like this:
R1#show running-config | begin router eigrp
router eigrp 150
network 10.1.1.0 0.0.0.255
network 10.3.3.0 0.0.0.255
auto-summary
[END OF MINI-LAB]EIGRP Router ID
EIGRP uses the router ID feature to prevent routing loops. This is used differently from OSPF, which uses the RID to identify neighbors. In EIGRP, the RID is used to identify the source of external routes. External routes with the same RID as the local router are discarded, and this is done to prevent routing loops when external routes are injected into an EIGRP AS at multiple points.
The EIGRP router ID process is similar to that in OSPF. The highest IP address configured on the router is chosen. If Loopback interfaces exist on the router, then they are preferred over physical interfaces (since they are more stable). The RID can be manually configured using the eigrp router-id command. The RID is always listed in the EIGRP topology table, as shown in the output below.
When the EIGRP RID of a router is manually changed using the eigrp router-id [address] router configuration command, the EIGRP neighbors are updated with the new RID, and a new adjacency is formed. This is also shown in the output below:
R1#show ip eigrp topology
IP-EIGRP Topology Table for AS(150)/ID(10.3.3.1)
Codes: P – Passive, A – Active, U – Update, Q – Query, R – Reply,
r – reply Status, s – sia Status
[output truncated]
A RID of 1.1.1.1 is now configured on the router as follows:
R1(config)#router eigrp 150
R1(config-router)#eigrp router-id 1.1.1.1
*Mar 1 05:50:13.642: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 150: Neighbor 150.1.1.2 (Serial0/0) is down: route configuration changed
*Mar 1 05:50:16.014: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 150: Neighbor 150.1.1.2 (Serial0/0) is up: new adjacency
After the change, the EIGRP neighbor relationship is reset, and the new RID is reflected immediately in the EIGRP topology table, as shown below:
R1#show ip eigrp topology
IP-EIGRP Topology Table for AS(150)/ID(1.1.1.1)
Codes: P – Passive, A – Active, U – Update, Q – Query, R – Reply,
r – reply Status, s – sia Status
[output truncated]Mini-lab – EIGRP Passive Interfaces
When EIGRP is enabled on an interface, Hello packets are sent out of that interface, and these Hellos allow EIGRP to dynamically establish neighbor relationships. This is desired on physical interfaces where you would expect to establish neighbor relationships. However, this default behavior might be undesired on shared interfaces where you do not want the router to establish neighbor relationships.
In the Cisco IOS, you can make an interface passive in the EIGRP process by specifying that the interface is passive using the passive-interface router configuration command. This prevents the interface from sending Hello packets, and as such, stops the interface from establishing neighbor relationships. The example below shows how you can configure passive interfaces in EIGRP. You can configure these commands on any router because you aren’t testing any EIGRP traffic in this example.
R1(config)#interface Loopback0
R1(config-if)#ip address 10.0.0.1 255.255.255.0
R1(config-if)#exit
R1(config)#interface Loopback1
R1(config-if)#ip address 10.1.1.1 255.255.255.0
R1(config-if)#exit
R1(config)#interface Serial0/0
R1(config-if)#ip address 150.1.1.1 255.255.255.0
R1(config-if)#exit
R1(config)#router eigrp 150
R1(config-router)#no auto-summary
R1(config-router)#network 150.1.1.0 0.0.0.255
R1(config-router)#network 10.0.0.0 0.0.0.255
R1(config-router)#network 10.1.1.0 0.0.0.255
R1(config-router)#passive-interface Loopback0
R1(config-router)#passive-interface Loopback1
R1(config-router)#exit
In the configuration above, the Loopback interfaces are enabled for EIGRP (because the network statements cover those interfaces), but they will not send any Hellos (since they are passive). This ensures that other neighbors learn about the networks connected to R1 while suppressing Hello packets on interfaces that are unneeded.
You can view the interfaces that are configured as passive in the output of the show ip protocols command, as shown below:
R1#show ip protocols
Routing Protocol is eigrp 150
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 150
EIGRP NSF-aware route hold timer is 240s
Automatic network summarization is not in effect
Maximum path: 4
Routing for Networks:
10.0.0.0/24
10.1.1.0/24
150.1.1.0/24
Passive Interface(s):
Loopback0
Loopback1
Routing Information Sources:
Gateway Distance Last Update
Distance: internal 90 external 170
What if you wanted to make all the interfaces on a router passive in EIGRP? To do this, you would use the default keyword. The passive-interface default command suppresses Hellos from being sent on all interfaces on a router. To establish neighbors, you can use the no passive-interface [name] command to allow Hellos to be sent on the interfaces that you desire. The following output illustrates the use of the passive-interface default command:
R1(config)#interface Loopback0
R1(config-if)#ip address 10.0.0.1 255.255.255.0
R1(config-if)#exit
R1(config)#interface Loopback1
R1(config-if)#ip address 10.1.1.1 255.255.255.0
R1(config-if)#exit
R1(config)#interface Loopback3
R1(config-if)#ip address 10.3.3.1 255.255.255.0
R1(config-if)#exit
R1(config)#interface Loopback2
R1(config-if)#ip address 10.2.2.1 255.255.255.0
R1(config-if)#exit
R1(config)#interface Serial0/0
R1(config-if)#ip address 150.1.1.1 255.255.255.0
R1(config-if)#exit
R1(config)#router eigrp 150
R1(config-router)#network 10.0.0.1 255.255.255.0
R1(config-router)#network 10.1.1.1 255.255.255.0
R1(config-router)#network 10.3.3.1 255.255.255.0
R1(config-router)#network 10.2.2.1 255.255.255.0
R1(config-router)#network 150.1.1.1 255.255.255.0
R1(config-router)#passive-interface default
R1(config-router)#no passive-interface Serial0/0
R1(config-router)#exit
In this case, Hellos would only be sent out of interface Serial0/0.
[END OF MINI-LAB]EIGRP Load Balancing
The EIGRP protocol allows unequal-cost load balancing. This means that EIGRP allows traffic to be spread across links with different speeds. By default, EIGRP allows load balancing across four links. You can see this in the output of the show ip protocols command below:
R2#show ip protocols
Routing Protocol is eigrp 150
[Output truncated]
Automatic network summarization is not in effect
Maximum path: 4
Routing for Networks:
150.1.1.2/32
The network in Figure 17.6 below shows that it is running EIGRP 1, and R2 has two equal paths it can take to reach the 172.16.0.0 network:
FIG 17.6 – EIGRP load balancing
To edit the number of paths that is considered in the EIGRP load balancing algorithm, you can use the maximum-paths [1-6] router configuration command. You can view the ratio of the traffic-sharing between the links in the output of the show ip route [network] command. When performing equal-cost load balancing, the traffic-share values are set to 1 on all the links, as illustrated in the following output:
R2#show ip route 172.16.0.0
Routing entry for 172.16.0.0/16
Known via “eigrp 1”, distance 90, metric 409600, type internal
Redistributing via eigrp 1
Last update from 192.168.2.1 on FastEthernet0/1, 00:02:02 ago
Routing Descriptor Blocks:
192.168.2.1, from 192.168.2.1, 00:02:02 ago, via FastEthernet0/1
Route metric is 409600, traffic share count is 1
Total delay is 6000 microseconds, minimum bandwidth is 10000 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 1
* 192.168.1.1, from 192.168.1.1, 00:02:02 ago, via FastEthernet0/0
Route metric is 409600, traffic share count is 1
Total delay is 6000 microseconds, minimum bandwidth is 10000 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 1
The asterisk (*) in front of the 192.168.1.1 indicates that the next packet will take this route. After that, the asterisk will appear before the 192.168.2.1 route.
By default, EIGRP performs equal-cost load balancing. You can enable unequal-cost load balancing using the variance [multiplier] router configuration command.
The multiplier keyword is an integer that indicates that the router can load balance across links that have a metric less than the minimum metric multiplied by the multiplier. This means that any route in the topology table with a metric less than the minimum metric multiplied by the multiplier will be added to the routing table.
Note that for a route to be installed in the topology table, the route must meet the feasibility condition. EIGRP would never install routes that do not meet the feasibility condition, regardless of the variance configured.
To determine the variance multiplier that should be configured under the EIGRP process, you need to take a ratio of the highest metric to the lowest metric. If you change the bandwidth on f0/1 on both routers from the default 10000 to 1000 with the bandwidth 1000 interface command, the route via 192.168.2.1 will no longer be shown.
R2(config)#int f0/1
R2(config-if)#band 1000
R2(config-if)#end
*Mar 1 00:10:40.551: %SYS-5-CONFIG_I: Configured from console by console
R2#show ip route 172.16.0.0
Routing entry for 172.16.0.0/16
Known via “eigrp 1”, distance 90, metric 409600, type internal
Redistributing via eigrp 1
Last update from 192.168.1.1 on FastEthernet0/0, 00:00:07 ago
Routing Descriptor Blocks:
* 192.168.1.1, from 192.168.1.1, 00:00:07 ago, via FastEthernet0/0
Route metric is 409600, traffic share count is 1
Total delay is 6000 microseconds, minimum bandwidth is 10000 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 1
Now you have to check the topology table to find the route:
R2#show ip eigrp topology 172.16.0.0 255.255.0.0
IP-EIGRP (AS 1): Topology entry for 172.16.0.0/16
State is Passive, Query origin flag is 1, 1 Successor(s), FD is 409600
Routing Descriptor Blocks:
192.168.1.1 (FastEthernet0/0), from 192.168.1.1, Send flag is 0x0
Composite metric is (409600/128256), Route is Internal
Vector metric:
Minimum bandwidth is 10000 Kbit
Total delay is 6000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 1
192.168.2.1 (FastEthernet0/1), from 192.168.2.1, Send flag is 0x0
Composite metric is (2713600/128256), Route is Internal
Vector metric:
Minimum bandwidth is 1000 Kbit
Total delay is 6000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 1
The first number (409600 for the 192.168.1.1 peer) is the EIGRP metric that represents the cost to the destination. The second number (128256) is the EIGRP metric that this peer advertised.
To determine the variance multiplier value, you can use the formula below:
- Multiplier = Highest metric of a feasible successor/Metric of the successor route
Based on this, the variance multiplier for R2 would be:
- Multiplier = 2713600/ 409600
- Multiplier = 6.625
Because the EIGRP process accepts only whole number values, the value for the multiplier must be rounded up to the nearest integer, which would be 7 in the example above. The output below shows the configuration on R2:
R2(config)#router eigrp 1
R2(config-router)#variance 7
R2(config-router)#exit
Now, let’s examine the routing table for the 172.16.0.0/16 prefix:
R2#show ip route 172.16.0.0 255.255.0.0
Routing entry for 172.16.0.0/16
Known via “eigrp 1”, distance 90, metric 409600, type internal
Redistributing via eigrp 1
Last update from 192.168.2.1 on FastEthernet0/1, 00:00:27 ago
Routing Descriptor Blocks:
192.168.2.1, from 192.168.2.1, 00:00:27 ago, via FastEthernet0/1
Route metric is 2713600, traffic share count is 3
Total delay is 6000 microseconds, minimum bandwidth is 1000 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 1
* 192.168.1.1, from 192.168.1.1, 00:00:27 ago, via FastEthernet0/0
Route metric is 409600, traffic share count is 20
Total delay is 6000 microseconds, minimum bandwidth is 10000 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 1
The traffic share shows that for every three packets sent via f0/1, 20 would be sent via f0/0. This is a ratio of the metric, and it ensures that traffic is balanced based on the EIGRP metric.
As you can imagine, there is far more to EIGRP than we have covered here, but we need to stay on track for the CCNA exam. I recommend that you pursue CCNP if you want to discover more on this subject.
End of Chapter Questions
Please visit https://www.howtonetwork.com/ccnasimplified to take the free Chapter 17 exam.
Chapter 17 Labs
Lab 1: EIGRP
The physical topology is shown in Figure 17.7 below:
FIG 17.7 – EIGRP Lab
Lab Exercise
Your task is to configure the network above to allow full connectivity using the EIGRP routing protocol. Please feel free to try the lab without following the Lab Walk-through section.
Text in Courier New font indicates commands that can be entered on the router.
Purpose
EIGRP is a very popular routing protocol and is in wide use today. You will need to have a good working knowledge of it for the CCNA exam and as a Cisco engineer.
Lab Objectives
- Use the IP addressing scheme depicted in Figure 17.7 above. Router A needs to configure a clock rate on interface Serial 0/0: set this to 64000.
- Set Telnet access for the router to use the local login permissions for username banbury and the password ccna.
- Configure the enable password to be cisco.
- Configure the EIGRP routing protocol to advertise all networks attached to the router.
- Ensure that the routing information is correct by checking the routing table for entries of neighbors’ addresses.
- Finally, try to ping all the Loopback interfaces of the neighbors, and then try to access the neighbor routers via Telnet.
Lab Walk-through
- To set the IP addresses on an interface, you will need to do the following:
Router#config t
Router(config)#hostname RouterA
RouterA(config)#
RouterA(config)#interface Serial0/0
RouterA(config-if)#ip address 192.168.1.1 255.255.255.252
RouterA(config-if)#clock rate 64000
RouterA(config-if)#no shutdown
RouterA(config-if)#interface Loopback0
RouterA(config-if)#ip address 172.16.1.1 255.255.0.0
RouterA(config-if)#interface Loopback1
RouterA(config-if)#ip address 172.20.1.1 255.255.0.0
RouterA(config-if)#^Z
RouterA#
Router B:
Router#config t
Router(config)#hostname RouterB
RouterB(config)#
RouterB(config)#interface Serial0/0
RouterB(config-if)#ip address 192.168.1.2 255.255.255.252
RouterB(config-if)#no shutdown
RouterB(config-if)#interface Loopback0
RouterB(config-if)#ip address 172.30.1.1 255.255.0.0
RouterB(config-if)#interface Loopback1
RouterB(config-if)#ip address 172.31.1.1 255.255.0.0
RouterB(config-if)#^Z
RouterB#
Ping across the Serial link now.
- To set Telnet access, you need to configure the VTY lines to allow Telnet access. To do this, type the following (in configuration mode):
RouterA(config)#line vty 0 4
RouterA(config-line)#login local
RouterA(config-line)#exit
RouterA(config)#username banbury password ccna
Router B:
RouterB(config)#line vty 0 4
RouterB(config-line)#login local
RouterB(config-line)#exit
RouterB(config)#username banbury password ccna
- To set an enable password, do the following:
RouterA(config)#enable secret cisco
Router B:
RouterB(config)#enable secret cisco
- To configure EIGRP on a router, there are two steps: first, enable the routing protocol; and second, specify the networks to be advertised by EIGRP.
RouterA(config)#router eigrp 20
RouterA(config-router)#network 192.168.1.0 – Specifies the networks for EIGRP to advertise; one network statement is needed for every network advertised.
RouterA(config-router)#network 172.16.0.0
RouterA(config-router)#network 172.20.0.0
RouterA(config-router)#no auto-summary – This command prevents the router from summarizing the networks
Router B:
RouterB(config)#router eigrp 20
RouterB(config-router)#network 192.168.1.0
RouterB(config-router)#network 172.30.0.0
RouterB(config-router)#network 172.31.0.0
RouterB(config-router)#no auto-summary
- To determine whether the networks being advertised by the neighbors’ EIGRP processes are in your routing table, use the show ip route
Without the no auto-summary command, the router will automatically summarize at the major subnet boundary. It is not so important to do this for this lab. However, if you were using 10.0.0.0 addressing, the network details would be summarized to 10.0.0.0. Make sure that you are aware of the no auto-summary command and when you would want to use it.
RouterA#show ip route
Codes: C – connected, S – static, I – IGRP, 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,
E – EGP, i – IS-IS, 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
C 172.16.0.0/16 is directly connected, Loopback0
C 172.20.0.0/16 is directly connected, Loopback1
D 172.31.0.0/16 [90/2297856] via 192.168.1.2, 00:00:03, Serial0/0
D 172.30.0.0/16 [90/2297856] via 192.168.1.2, 00:00:03, Serial0/0
192.168.1.0/30 is subnetted, 1 subnets
C 192.168.1.0 is directly connected, Serial0/0
RouterA#
You may also have a summary route in your routing table.
RouterA#show ip protocols
Routing Protocol is eigrp 20
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 20
Automatic network summarization is not in effect
Maximum path: 4
Routing for Networks:
172.16.0.0
172.20.0.0
192.168.1.0
Routing Information Sources:
Gateway Distance Last Update
(this router) 90 00:03:23
192.168.1.2 90 00:02:08
Distance: internal 90 external 170
- To test connectivity, you will need to use the ping command, and to log in to neighbor routers, you need to use the telnet command:
RouterA#ping 172.30.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.30.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/32/32 ms
RouterA#
RouterA#telnet 172.30.1.1
Trying 172.30.1.1 … Open
User Access Verification
Username: banbury
Password:
RouterB#exit
[Connection to 172.30.1.1 closed by foreign host]
RouterA#
Do the same on router B:
RouterB#ping 172.20.1.1
RouterB#ping 172.16.1.1
RouterB#telnet 172.20.1.1
Other commands to try:
debug ip eigrp
show ip eigrp neighbors
show ip eigrp topology
show ip eigrp interfaces
- Now please enter reload at the Router# prompt, and type yes.
Show Runs
RouterA#show run
Building configuration…
Current configuration: 838 bytes
!
version 15.1
!
hostname RouterA
!
enable secret 5 $1$rujI$BJ8GgiK8U9p5cdfXyApPr/
!
username banbury password 0 ccna
!
ip subnet-zero
!
interface Loopback0
ip address 172.16.1.1 255.255.0.0
!
interface Loopback1
ip address 172.20.1.1 255.255.0.0
!
interface Serial0/0
ip address 192.168.1.1 255.255.255.252
clockrate 64000
!
router eigrp 20
network 172.16.0.0
network 172.20.0.0
network 192.168.1.0
no auto-summary
!
end
RouterA#
—
RouterB#show run
Building configuration…
Current configuration: 824 bytes
!
version 15.1
!
hostname RouterB
!
enable secret 5 $1$ydeA$MyfRKevOckjm7w/0ornnB1
!
username banbury password 0 ccna
!
ip subnet-zero
!
interface Loopback0
ip address 172.30.1.1 255.255.0.0
!
interface Loopback1
ip address 172.31.1.1 255.255.0.0
!
interface Serial0/0
ip address 192.168.1.2 255.255.255.252
!
router eigrp 20
network 172.30.0.0
network 172.31.0.0
network 192.168.1.0
no auto-summary
no eigrp log-neighbor-changes
!