Skip to main content

Lab - Implement EIGRP for IPv4

Topology

image.png


Addressing Table

Device Interface IP Address Subnet Mask
EIGRP-R1 G0/0 10.0.12.1 255.255.255.0
  G0/1.1 172.16.1.1 255.255.255.0
  G0/1.2 192.168.1.1 255.255.255.0
EIGRP-R2 G0/0 10.0.12.2 255.255.255.0
  G0/1 10.0.23.2 255.255.255.0
EIGRP-R3 G0/0 10.0.23.3 255.255.255.0
  G0/1 172.16.13.1 255.255.255.0
  Loopback 0 192.168.3.1 255.255.255.0
EIGRP-D2 G2/2 172.16.1.2 255.255.255.0
  G1/1 172.16.13.2 255.255.255.0
EIGRP-PC1 NIC DHCP

Objectives

  • Part 1: Build the Network and Configure Basic Device Settings
  • Part 2: Configure and Verify EIGRP for IPv4
  • Part 3: Tune EIGRP for IPv4

Background / Scenario

EIGRP is an interior gateway routing protocol created by Cisco and published as open source in 2016 in RFC 7868. It is a very efficient distance-vector based protocol. In this lab, you will configure and examine EIGRP in two forms, Classic EIGRP and Named EIGRP. Named EIGRP is an update to Classic EIGRP that added multiprotocol support and default support for wide metrics.

This lab is an exercise in configuring options available for EIGRP supporting IPv4 and does not necessarily reflect implementation best practices.


Required Resources - Sergio Jiménez's Version

For this lab I am using GNS3 where I have deployed:

• 3 Routers (Cisco IOSv)
• 2 Switches (Cisco IOSvL2)
• 1 VPC


Instructions

Part 1: Configure Basic Device Settings

Console into each device, enter global configuration mode, and apply the basic settings. The startup configurations for each device are provided below.

EIGRP-R1

hostname EIGRP-R1
no ip domain lookup
banner motd # EIGRP-R1, Implement EIGRP for IPv4 #
line con 0
exec-timeout 0 0
logging synchronous
exit
line vty 0 4
privilege level 15
exec-timeout 0 0
password cisco123
login
exit
interface g0/1
no ip address
no shutdown
exit
interface g0/1.1
encapsulation dot1q 1
ip address 172.16.1.1 255.255.255.0
no shutdown
exit
interface g0/1.2
encapsulation dot1q 2
ip address 192.168.1.1 255.255.255.0
no shutdown
exit
interface g0/0
ip address 10.0.12.1 255.255.255.0
no shutdown
exit
ip dhcp pool HOSTS
network 192.168.1.0 255.255.255.0
default-router 192.168.1.1
exit
end

EIGRP-R2

hostname EIGRP-R2
no ip domain lookup
banner motd # EIGRP-R2, Implement EIGRP for IPv4 #
line con 0
exec-timeout 0 0
logging synchronous
exit
line vty 0 4
privilege level 15
exec-timeout 0 0
password cisco123
login
exit
interface g0/0
ip address 10.0.12.2 255.255.255.0
no shutdown
exit
interface g0/1
ip address 10.0.23.2 255.255.255.0
no shutdown
exit
end

EIGRP-R3

hostname EIGRP-R3
no ip domain lookup
banner motd # EIGRP-R3, Implement EIGRP for IPv4 #
line con 0
exec-timeout 0 0
logging synchronous
exit
line vty 0 4
privilege level 15
exec-timeout 0 0
password cisco123
login
exit
interface g0/0
ip address 10.0.23.3 255.255.255.0
no shutdown
exit
interface g0/1
ip address 172.16.13.1 255.255.255.0
no shutdown
exit
interface loopback 0
ip address 192.168.3.1 255.255.255.0
no shutdown
exit
end

EIGRP-D1

hostname EIGRP-D1
no ip domain lookup
banner motd # EIGRP-D1, Implement EIGRP for IPv4 #
line con 0
exec-timeout 0 0
logging synchronous
exit
line vty 0 4
privilege level 15
exec-timeout 0 0
password cisco123
login
exit
vlan 2
name HOST-VLAN
exit
interface g2/2
switchport mode access
spanning-tree portfast
no shutdown
exit
interface g1/1
switchport mode trunk
no shutdown
exit
interface g3/3
switchport mode access
switchport access vlan 2
spanning-tree portfast
no shutdown
exit
end

EIGRP-D2

hostname EIGRP-D2
no ip domain lookup
ip routing
banner motd # EIGRP-D2, Implement EIGRP for IPv4 #
line con 0
exec-timeout 0 0
logging synchronous
exit
line vty 0 4
privilege level 15
exec-timeout 0 0
password cisco123
login
exit
interface g2/2
no switchport
ip address 172.16.1.2 255.255.255.0
no shutdown
exit
interface g1/1
no switchport
ip address 172.16.13.2 255.255.255.0
no shutdown
exit
end

Set the clock on each device if necessary, and update the timezone settings.

conf t
clock timezone CET +1
clock summer-time CEST recurring last Sunday March 02:00 Sunday October 02:00

Save the config.

Verify that PC1 receives an address via DHCP and that it can ping its default gateway.

Part 2: Configure and Verify EIGRP for IPv4

In this part of the lab, you will configure and verify EIGRP in the network. R1 and R3 will used Named EIGRP, while R2 will use Classic EIGRP. After you have established the network, you will examine the differences in how each version of EIGRP deals with metrics.  For the lab, you will use the Autonomous System number 27 on all routers.

Step 1: Configure Classic EIGRP for IPv4 on R2

  1. Start the configuration of Classic EIGRP by issuing the router eigrp 27 command.

  2. Configure the EIGRP router ID using the eigrp router-id command. Use the number 2.2.2.2 for R2.

  3. Identify the interfaces that should be speaking EIGRP and the networks that should be included in the EIGRP topology table. This is done with the network command. 

    It is best to be as specific as possible when creating network statements, while balancing efficiency and the number of commands necessary. For our lab example, we will use network 10.0.0.0 255.255.224.0 to specify the interfaces. This covers less network space than 10.0.0.0/8, while including both interfaces with a single network command.

  4. Verify the interfaces now involved in EIGRP with the show ip eigrp interfaces command.

Step 2: Configure Named EIGRP for IPv4 on R1 and R3.

  1. Start the configuration of Named EIGRP by issuing the router eigrp [ name ] command. The name parameter can be a number, but the number does not identify an Autonomous System as it does with Classic EIGRP, it simply identifies the process. For our purposes, name the process BASIC-EIGRP-LAB.

  2. Enter into address-family configuration mode with the address-family ipv4 unicast autonomous system 27 command.

  3. Configure the EIGRP router ID using the eigrp router-id command. Use the number 1.1.1.1 for R1.

  4. Identify the interfaces that should be speaking EIGRP and the networks that should be included in the EIGRP topology table. This is done with the network command. In this case, the configuration requires three network commands. An example for R1 follows:

  5. Repeat Steps 2a through 2d for R3 and D2. Use 3.3.3.3 for the router ID on R3, and 132.132.132.132 for the router ID on D2. Configure the appropriate network statements on both devices according to the Addressing Table.

Step 3: Verify EIGRP for IPv4.

  1. A few seconds after configuring the network statements, you should have seen syslog messages noting that EIGRP adjacencies have been formed.

  2. To verify that routing is working, ping from PC1 to interface Loopback 0 on R3 (192.168.3.1). The ping should be successful. You should also be able to ping other addresses in the topology.

  3. On R1, examine the EIGRP entries in the IP routing table using the show ip route eigrp | begin Gateway command. As you can see, there is one path installed in the routing table for the network, and two paths for the 192.168.3.0/24 network. Take note of the metric values listed.

  4. To display the neighbors discovered by EIGRP, issue the show ip eigrp neighbors command.

  5. The show ip eigrp interfaces detail provides EIGRP related interface information, such as settings and statistics. Note that G0/0/0.2 does not have any peers.
  6. Now examine the EIGRP topology table using the show ip eigrp topology all-links command. The all-links parameter instructs the router to display all available routes, including the ones that are not successors or feasible successors.

    Remember that the topology table is EIGRP’s database of route information. EIGRP selects the best paths from this database, based on the DUAL algorithm, and offers them to the IP routing table. However, the IP routing table does not have to use those offered paths, because the router may have learned about the same network from a more reliable routing source, which would be a routing source with a lower administrative distance.






    We will focus on the routes, highlighted in the above output, to 192.168.3.0/24 and 10.0.23.0/24. There
    are several things to notice:

    - The entry for the 192.168.3.0/24.0 network shows two successors, while the entry for 10.0.23.0/24 shows only one successor. Both entries show two paths. The path with the lowest Feasible Distance (FD) is selected as the successor and is offered to the routing table. For 192.168.3.0/24, there are two paths with equal FD (2048000). Therefore, both are successors and both are offered to the routing table. In the case of 10.0.23.0/24, the FD is listed as 19660800. The path via 10.0.12.2 shows that number as the FD (first number in parentheses). The path via 172.16.1.2 shows an FD of 2621440, which is higher than the current feasible distance. So that path, although valid, is a higher cost path and is not offered to the routing table.

    - The FD listed in the topology table does not match the metric listed in the routing table. For 192.168.3.0/24, the routing table shows the metric value 16000, while the topology table shows the FD as 2048000. This is due to the routing table having a limit of 4 bytes (32 bits) for metric information while EIGRP on R1 is using EIGRP wide metrics, which are 64 bits. Wide metrics are used by Named EIGRP by default. To work around the 32-bit metric size limitation in the routing table, EIGRP divides the wide-metric value by the EIGRP_RIB_SCALE value, which defaults to 128, as you will see next in the output for the show ip protocols command. The value 2048000 divided by 128 is 16000.

    Note: A network with mixed EIGRP implementations (Named and Classic in the same routing domain), will have some loss of route clarity which could lead to sub-optimal path selection. The recommended implementation is to use Named EIGRP in all cases.

    - There are no feasible successors listed in the topology table for 192.168.3.0/24 or 10.0.23.0/24. The feasibility condition requires that the reported distance (RD) to a destination network be less than the current feasible distance for a next-hop to be considered a feasible successor to the route. In the case of 10.0.23.0/24, the RD of the path via 172.16.1.2 is the second number listed: (2621440/1966080). Because the RD is equal to the current FD, this route is disqualified as a feasible successor. If the path via 172.16.1.2 were to be lost, R1 would have to send queries to find a new way to get to 10.0.23.0/24. Feasible successors only exist in the topology table. Only successors appear in the routing table.

  7. To see the Routing Information Base (RIB) Scale and Metric Scale values, as well as other protocol information, issue the show ip protocols | section eigrp command.

  8. To examine details about a particular path, issue the show ip eigrp topology [address] command.


Part 3: Tune EIGRP for IPv4

In this part of the lab, you will tune and optimize EIGRP for IPv4 through the use of passive interfaces, authentication, and variance.

Step 1: Configure specific interfaces as passive.

Passive interfaces are interfaces that only partially participate in a routing protocols operation. The network address for the passive interface is advertised through other interfaces. However, the routing protocol does not actually speak on the passive interface. Use passive interfaces when you have a connected network that you want to advertise, but you do not want protocol neighbors to appear on that interface. For example, interfaces supporting users should always be configured as passive. There are two ways to configure
interfaces as passive, either specifically by interface name or by default. Normally a device with many LAN interfaces will use the default option, and then use the no form of the command on those specific interfaces that should be sending and receiving EIGRP messages.

  1. On PC1, run Wireshark and set the capture filter to eigrp. You should see a hello message roughly every five seconds. If your device were capable of running EIGRP, you might be able to form an adjacency and interact in the routing domain. This is unnecessary traffic on the LAN and a potential security risk. Stop the capture.

  2. On R1, configure af-interface G0/0/1 to be passive.

  3. On PC1, restart the Wireshark capture with the capture filter still configured for eigrp. You should no longer see EIGRP Hello messages.

Step 2: Configure interfaces to default to passive.

The second option for configuring passive interfaces is to configure them all as passive and then issue the no passive-interface command for certain interfaces. This approach is suitable in a security-focused scenario, or when the device has many LAN interfaces. The commands vary depending on whether you are using Classic or Named EIGRP.

  1. In Classic EIGRP configuration, enter the passive-interface default command followed by no passive-interface interface number commands for all the interfaces that should be participating in EIGRP. The following provides an example of this on R2. You will temporarily lose EIGRP adjacencies until passive-interface is removed from required interfaces.

  2. In Named EIGRP configuration, you apply the passive-interface command to the af-interface default configuration, and the no passive-interface command to the specific af-interface interface-number. The following provides an example of this on R3. You will temporarily lose EIGRP adjacencies until passive-interface is removed from required interfaces.

  3. The output of the show ip protocols | section Passive command will give you a list of passive interfaces configured for EIGRP, which for R3 will only be the Loopback 0 interface that is simulating a LAN.

Step 3: Configure EIGRP authentication.

EIGRP supports authentication on an interface basis. In other words, each interface can be configured to require authentication of the connected peer. This ensures that connected devices that try to form an adjacency are authorized to do so. Classic EIGRP supports key-chain based MD5-hashed keys, while Named EIGRP adds support for SHA256-hashed keys. The two are not compatible.

In this step, you will configure both types of authentication to exercise the range of options available.

  1. On R1, R2, R3, and D2, create a key-chain named EIGRP-AUTHEN-KEY with a single key. The key should have the key-string $3cre7!!
  2. On R2, configure interfaces G0/0/0 and G0/0/1 to encrypt the key chain you just created with MD5. Note that you will lose EIGRP adjacencies until the neighbor interfaces are configured.
  3. Configure interface G0/0/0 on both R1 and R3 to use the key chain with MD5. EIGRP adjacencies with R2 should be restored.
  4. Use the show ip eigrp interface detail | section Gi0/0/0 command to verify that authentication is in place and what type of authentication it is.
  5. On R1 and D2, configure SHA 256 based authentication using the same $3cre7!! shared secret. R1 and D2 are running Named EIGRP, so the configuration is applied in af-interface mode. On R1, configure the G0/0/1.1 subinterface. On D2, configure the G1/0/1 interface. The configuration for R1 is shown. Note that the R1-D2 adjacency will be lost until both ends are configured.
  6. Use the show ip eigrp interface detail command to verify that authentication is in place and what type of authentication it is.

Step 4: Manipulate load balancing with variance.

By default, load balancing occurs only over equal-cost paths. EIGRP supports up to four equal cost paths by default but can be configured to support as many as 32 with the maximum-paths command. 

EIGRP has the added capability to load balance over unequal-cost paths. Load balancing is controlled by the variance parameter. Its value is a multiplier that is used to determine how to deal with multiple paths to the same destination.

Variance is set to 1 by default, so any paths up to the configured maximum number of paths that have a feasible distance equal to the best current feasible distance are also offered to the routing table. This provides equal cost load balancing.

The variance parameter can also be set to zero, which dictates that no load balancing takes place.

The variance parameter can be adjusted so that paths that have an FD that is less than or equal to variance times current best FD are also considered as successors and installed into the routing table. There is an extremely important differentiation here -- to be a feasible successor, the RD of a path must be less than the current best FD. To be considered for unequal load balancing, the FD of the feasible successor is multiplied by the variance value, and if the product of this calculation is less than the current best FD, the feasible successor is promoted to successor.

There are two caveats; first, only feasible successors are considered and second, unequal cost load balancing is unequal; traffic share is proportional to the best metric in the routing table for the given path.

Note: Keep in mind that your routing table may be different than the one created by the examples in this lab. If your results are different, examine them carefully to determine why so that you can thoroughly understand how EIGRP is operating.

  1. On R3, there are two equal-cost paths to 192.168.1.0/24.

  2. To change this and allow for the demonstration of variance, change the interface bandwidth for the R2 interfaces G0/0/0 and G0/0/1 to 800000.

  3. When you examine the routing table on R3, you see that there is no load balancing occurring. All destinations have a single path.

  4. However, we know there are multiple paths in the network. The first consideration for manipulating variance is that it only works with feasible successors. Examining the topology table on R3 shows that there is a feasible successor for the 192.168.1.0/24 network. The route via 10.0.23.2 out the G0/0/0 interface has a RD less than the FD for the current successor. 

  5. To use the other route for unequal cost load balancing, we can set the variance parameter to 2. This will mean that any path with an RD less than or equal to 5242880 will qualify as a successor (2 x 2621440 = 5242880). 

  6. The output of the show ip route eigrp | begin Gateway command now displays two paths available to the 192.168.1.0/24 network. Notice that the routes have different metrics, but are listed and used just the same. Also, notice adding variance 2 adds a second path to the 10.0.12.0/24 network.

  7. Issue the show ip route 192.168.1.0 command to see more details about the paths the router has to the 192.168.1.0 network. As a part of this output, you see the traffic share count, which tells you the ratio of traffic that will be sent between these links. In this example, the count is 120 via 172.16.13.2 and 113 via 10.0.23.2. What that means is that 120 packets will be sent via 172.16.13.2 and then 113 packets will be sent via 10.0.23.2.