In this Cisco CCNA tutorial, you’ll learn about EIGRP which stands for the Enhanced Interior Gateway Routing Protocol. We’ll cover its characteristics and configuration as well. Scroll down for the video and also text tutorial.
EIGRP Enhanced Interior Gateway Routing Protocol Video Tutorial
EIGRP’s predecessor was IGRP which is a legacy protocol that is not used anymore. EIGRP is a great protocol as it supports large networks. It has a very fast convergence time, way quicker than RIP.
It also supports bounded updates where network topology change updates are only sent to routers affected by the change. So, it’s more efficient. It doesn’t flood information everywhere when it doesn’t need to. Messages are sent using multicast rather than broadcast, therefore, they’ll only be processed by other EIGRP routers.
EIGRP will automatically perform equal cost load balancing on up to 4 paths by default. You can manually increase that up to 16 paths but it can load balance you over if you want to. It will do equal cost load balancing by default.
EIGRP is also the only routing protocol that can also do unequal cost load balancing. With all of the other protocols, if the multiple paths have got the same metric, they can load balance over these equal cost paths.
EIGRP can have multiple paths with unequal metrics and you can configure it to load balance over those different paths. It wouldn’t do it automatically, so you’re going to have to manually configure it if you want to do that.
EIGRP Configuration – AS number
To enable EIGRP, we use this command at the global config:
router eigrp 100
‘100’ is the Autonomous System (AS) number which means independent administrative domain. EIGRP routers need to have the same AS number to peer with each other.
You could have two different organizations that have gone extranet with each other. They’re connected and they are both using EIGRP internally. In that case, we would use two different AS numbers.
Organization A would have its AS number and it would have its internal routes and organization B would have a different AS number and it would have its own internal routes. EIGRP, which is between the two organizations, would not peer even though it’s physically connected. They wouldn’t be sharing information.
EIGRP Configuration – network
After you have enabled EIGRP globally with route-ready EIGRP and the AS number, the next command to put in is the network command. This specifies which interfaces are going to participate in EIGRP. The network command uses a wildcard mask which is the inverse of a subnet mask.
To figure out what the wild card masks should be, subtract each octet in the subnet mask from 255 to calculate that wildcard mask. For example, a subnet mask of 255.255.0.0 all would equal a wildcard mask of 0.0.255.255, the inverse. If you have a subnet mask of 255.255.255.252, it would equal a wildcard mask of 0.0.0.3. 255 minus 255 is 0, 255 minus 252 is 3. That’s how you figure out what the wildcard mask would be.
If you don’t enter a wildcard mask, for example, if you put a network 10.0.0.0 without the wildcard mask, the command defaults to using the classful boundary. So, that would be 0.255.255.255, the wildcard mask for the Class A address. 0.0.255.255 for Class B, and 0.0.0.255 for a Class C address. That’s the inverse of a standard subnet mask for our different classful networks.
This is important because it can be confusing about what the network command means. This is the definition. If you say, network 10.0.0.0 then a wildcard mask of 0.0.255.255, it means that it will look for interfaces with an IP address that falls within that range. Any interface in this example that has got an IP address that begins with 10.0 and then anything after that would be a match.
When we do have a match in an interface or it can be multiple interfaces with one network command, enable EIGRP on those interfaces. It will send out and listen for EIGRP hello messages and peer with any adjacent EIRP routers on the same link. Then, once the EIGRP peer has been set up, advertise the network and mask, which is configured on those interfaces.
EIGRP Configuration Example – network
Let’s work through a few examples to really explain this. Here, we’ve said network 10.0.0.0 and on our router, R1, we’ve got three interfaces. FastEthernet0/0 has got an IP address of 10.1.0.1/24. FastEthernet1/0 is 10.0.1.1/24, and FastEthernet2/0 is 10.0.2.1/24. You see that all of the interfaces there have got an IP address that begins with 10.
With EIGRP, we configure a network 10.0.0.0 that’s a Class A address which will use our wildcard mask of 0.255.255.255. It will look for any interface that begins with 10 and it will match all three of our interfaces.
EIGRP will be enabled in all the interfaces and the router will peer with any adjacent EIGRP routers that are connected to those same links. The networks that will be advertised are what is configured on the interface, so, that will be 10.1.0.0/24 on FastEthernet0/0, 10.0.1.0/24 on FastEthernet1/0, and 10.0.2.0 on FastEthernet2/0.
10.0.0.0/8 is not advertised. Even though that is what we configured to the network statement, we’re just looking for interfaces that fall within that range. When we find them, we advertise the network that is configured on the interface, which is /24 subnet mask in our example.
Moving on to another example, here we are going to specify the wildcard mask. The router’s interfaces FastEthernet0/0 has now got an IP address of 10.1.0.1/24, FastEthernet1/0 is 10.0.1.1./24, and FastEthernet2/0 is 10.0.2.1/24. Under the EIGRP config, we say network 10.0.0.0 0.0.255.255. It means to look for any interfaces that begin with 10.0.
The network statement matches the interfaces FastEthernet1/0 and 2/0. FastEthernet0/0 does not match because it starts with 10.1, not 10.0. Here, the networks would be advertised, again it’s the network that is configured on the interfaces that matched. That will be 10.0.1.0/24 and 10.0.2.0/24. 10.1.0.0/24 in FastEthernet0/0 did not match so it’s not advertised. FastEthernet0/0 interface is not going to be sending out and listening for EIGRP hello messages.
Also, the network statement here is a /16 but we do not advertise 10.0.0.0/16 because it is not configured on any of the interfaces. If we did want to advertise 10.0.0.0/16, we could do that with a summary address.
Another example, here on router R1 we’ve got the same networks again 10.1.0.0, 10.0.1.0, and 10.0.2.0. If we said network 10.0.0.0, they all begin with ten so it would match all of them. EIGRP would be enabled on all interfaces and we would advertise the /24 as configured on the interface.
Another way that we could get the exact same result is we could say network 10.1.0.0. 0.0.0.255. That would match the 10.1.0 network. The commands network 10.0.1.0 0.0.0.255 would match 10.0.1 and network 10.0.2.0 0.0.0.255 would match 10.0.2. If we wanted to just advertise 10.0.2, we could use the statement network 10.0.2.0 0.0.0.255 and that would only match interface FastEthernet2/0.It wouldn’t match FastEthernet0/0 and 1/0.
And one more, very similar just showing another way that we can do it. Again, we’ve got network 10.0.0.0. Another way we could do this is network 10.1.0.1 0.0.0.0. That means we’re matching an interface with exactly 10.0.1.0.1 because we’re using a /32 on the wild card mask. Network 10.0.1.1/32 and network 10.0.2.1 0.0.0.0 another /32.
Again, the networks that will be advertised are /24 because that’s what’s configured on the interface. Not a /32 that we used in the network command. There are multiple different ways that you can get the same effect. It really doesn’t matter which one you use. They’re all valid.
EIGRP Router ID
EIGRP routers identify themselves to other EIGRP routers using a router ID in the form of an IPv4 address. The router ID will default to being the highest IP address of any loopback interfaces configured under the router or if there is no lookback, then, it will be the highest of all other IP addresses on our physical interface.
Now, you don’t want the router ID to be going up and down or changing. You want it to be stable because this is how the router identifies itself to other EIGRP routers. Therefore, it’s recommended to either use the lookback interface or you can manually specify a router ID. If you do either of those, then the IP address within the router ID is definitely never going to change.
EIGRP Router ID – No Loopback
Here’s an example where we have not configured a loopback. On router R1, I will do a ‘show ip interface brief’ command and I can see I’ve got no loopbacks on there. The highest physical address is 10.0.3.1 on interface FastEthernet3/0. To view what the ID is, we can do a ‘show ip protocols’. So in the output of that command, I can see that my router ID is 10.0.3.1.
EIGRP Router ID – Loopback
If I did have a loopback, and even if the loopback interface is lower than an IP address on a physical interface, it will be the router ID. So I’ve done a ‘show ip interface brief here’, and you can see I’ve got loopback0 with IP address 220.127.116.11. When I do a ‘show IP protocols’, I can see that this is the router ID.
Now, if you’ve got a router that doesn’t have any loopback addresses on there, just the physical IP addresses, and you’ve already configured EIGRP, if you then go and add a loopback on there, it’s not going to immediately become the EIGRP router ID.
It needs the EIGRP process to be restarted before it will pick up the new IP address. So, you could disable and then reenable EIGRP, or you could reboot the router. That will force it to come up with that loopback address as the router ID.
EIGRP Router ID – Manually Configured
If you want to manually specify the router ID, the command is under the EIGRP process, EIGRP ID, and then the idea that you want to use that has to be in the format of an IPV4 address. Now the router doesn’t need to have the IP address configured on the router because this isn’t an IP address. It’s just a router ID, but it uses the format of an IP address.
In the example here, we’ve said EIGRP router ID 18.104.22.168. That IP address is not actually configured on the router. However, real world best practice is to use an IP address that has been configured on the router because it gets confusing otherwise.
EIGRP Configuration Example
This configuration example is taken from my free ‘Cisco CCNA Lab Guide’ which includes over 350 pages of lab exercises and full instructions to set up the lab for free on your laptop.
- Enable EIGRP AS 100 on every router. Ensure all networks except 203.0.113.0/24 are advertised.
On every router:
R1(config)#router eigrp 100
2. Verify the routers have formed adjacencies with each other.
R1#sh ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(100)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 10.0.0.2 Fa0/0 11 00:00:20 21 126 0 10
1 10.0.3.2 Fa1/1 11 00:00:10 44 264 0 6
3. Which routing protocol (RIP or EIGRP) do you expect routes to the 10.x.x.x networks to be learned from in the routing tables?
Both RIP and EIGRP are advertising the 10.x.x.x networks. EIGRP has a better (lower) administrative distance of 90 compared to RIP’s AD of 120, so the EIGRP routes will be installed in the router’s routing tables.
4. Do you expect to see any routes from the other routing protocol in the routing tables?
Only RIP (not EIGRP) is advertising the 203.0.113.0/24 network and injecting the default static route. Those routes will remain unchanged in the routing tables.
5. View the routing tables to verify your answers.
R1#sh ip route
Codes: L – local, 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, H – NHRP, l – LISP
+ – replicated route, % – next hop override
Gateway of last resort is 10.0.3.2 to network 0.0.0.0
10.0.0.0/8 is variably subnetted, 12 subnets, 2 masks
C 10.0.0.0/24 is directly connected, FastEthernet0/0
L 10.0.0.1/32 is directly connected, FastEthernet0/0
C 10.0.1.0/24 is directly connected, FastEthernet0/1
L 10.0.1.1/32 is directly connected, FastEthernet0/1
C 10.0.2.0/24 is directly connected, FastEthernet1/0
L 10.0.2.1/32 is directly connected, FastEthernet1/0
C 10.0.3.0/24 is directly connected, FastEthernet1/1
L 10.0.3.1/32 is directly connected, FastEthernet1/1
D 10.1.0.0/24 [90/30720] via 10.0.0.2, 00:06:39, FastEthernet0/0
D 10.1.1.0/24 [90/33280] via 10.0.0.2, 00:06:21, FastEthernet0/0
D 10.1.2.0/24 [90/35840] via 10.0.0.2, 00:06:15, FastEthernet0/0
D 10.1.3.0/24 [90/261120] via 10.0.3.2, 00:06:09, FastEthernet1/1
R 203.0.113.0/24 [120/2] via 10.0.3.2, 00:00:22, FastEthernet1/1
R* 0.0.0.0/0 [120/2] via 10.0.3.2, 00:00:22, FastEthernet1/1
Enhanced Interior Gateway Routing Protocol: https://www.cisco.com/c/en/us/support/docs/ip/enhanced-interior-gateway-routing-protocol-eigrp/16406-eigrp-toc.html
IP Routing: EIGRP Configuration Guide: https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_eigrp/configuration/15-mt/ire-15-mt-book/ire-enhanced-igrp.html