EIGRP External Route Path Selection

EIGRP external routes use an AD (Administrative Distance) of 170. When two sources are advertising the same route, then it’s up to the metric to decide which one we will install in the routing table. When the metric is equal, EIGRP will install both routes as successor routes, and that’s it.

What I explained above is only true when all EIGRP routers are using the same AS number. When you use more than one AS number, something else will happen…

To demonstrate this, I’ll use the following three routers:

EIGRP External Path Selection Demo

Above we have three routers. R2 and R3 have a loopback interface with the same IP address (23.23.23.23) which we’ll redistribute into EIGRP.

Configuration

External route – Same AS Number

Let’s start with an example where all routers are using the same AS number. Here’s the configuration of all routers:

R1(config)#router eigrp 1
R1(config-router)#no auto-summary
R1(config-router)#network 192.168.12.0 0.0.0.255
R1(config-router)#network 192.168.13.0 0.0.0.255
R2(config-if)#router eigrp 1
R2(config-router)#no auto-summary
R2(config-router)#network 192.168.12.0 0.0.0.255
R2(config-router)#redistribute connected metric 1 1 1 1 1
R3(config)#router eigrp 1
R3(config-router)#no auto-summary
R3(config-router)#network 192.168.13.0 0.0.0.255
R3(config-router)#redistribute connected metric 1 1 1 1 1

R2 and R3 will redistribute all directly connected interfaces that don’t have a network command, in our case that’s only the loopback interface. Here’s what the routing table of R1 looks like:

R1#show ip route eigrp 
      23.0.0.0/32 is subnetted, 1 subnets
D EX     23.23.23.23 
           [170/2560000512] via 192.168.13.3, 00:01:16, GigabitEthernet0/2
           [170/2560000512] via 192.168.12.2, 00:01:16, GigabitEthernet0/1

R1 has install two successor routes. This makes sense since the AD and metric are both the same.

External Route – Different AS

Let’s try something else…R1 and R2 will remain in AS 1 but between R1 and R3 I’m going to use AS 3. Let’s change the configurations:

R1(config)#router eigrp 1
R1(config)#no network 192.168.13.0
R1(config)#router eigrp 3
R1(config-router)#network 192.168.13.0 0.0.0.255 
R3(config)#no router eigrp 1
R3(config)#router eigrp 3
R3(config-router)#network 192.168.13.0 0.0.0.255         
R3(config-router)#redistribute connected metric 1 1 1 1 1

Here’s what the routing table of R1 looks like now:

R1#show ip route eigrp 
      23.0.0.0/32 is subnetted, 1 subnets
D EX     23.23.23.23 
           [170/2560000512] via 192.168.12.2, 00:00:04, GigabitEthernet0/1

Only one entry remains…the path through R2. Why? Let’s see if we can find an answer in the EIGRP topology table:

R1#show ip eigrp topology 
EIGRP-IPv4 Topology Table for AS(1)/ID(192.168.13.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status 
P 192.168.12.0/24, 1 successors, FD is 2816
        via Connected, GigabitEthernet0/1
P 23.23.23.23/32, 1 successors, FD is 2560000512
        via 192.168.12.2 (2560000512/2560000256), GigabitEthernet0/1
EIGRP-IPv4 Topology Table for AS(3)/ID(192.168.13.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status 
P 192.168.13.0/24, 1 successors, FD is 2816
        via Connected, GigabitEthernet0/2
P 23.23.23.23/32, 0 successors, FD is Infinity
        via 192.168.13.3 (2560000512/2560000256), GigabitEthernet0/2

Above you can see that the path through R3 has been set to infinity. This doesn’t make much sense since the metric remained the same. To figure out what is really going on, we’ll have to do a little experiment. First I will shut all interfaces on R1:

R1(config)#interface Gi0/1
R1(config-if)#shutdown
R1(config)#interface Gi0/2
R1(config-if)#shutdown

Before I reenable all interfaces, we’ll enable a debug:

R1#debug ip routing
IP routing debugging is on

The debug ip routing command is very useful as it will tell you when and why certain routes are installed in the routing table. Let’s enable the interface that connects to R3 first:

R1(config)#interface Gi0/2
R1(config-if)#no shutdown

We can now see that R1 installs the route in its routing table:

R1#
RT: updating eigrp 23.23.23.23/32 (0x0)  :
    via 192.168.13.3 Gi0/2  0 1048578

So far so good, R1 has installed the path through R3. Let’s enable the interface that connects to R2:

R1(config)#interface GigabitEthernet 0/1
R1(config-if)#no shutdown

This is where the magic happens:

R1#
RT: updating eigrp 23.23.23.23/32 (0x0)  :
    via 192.168.12.2 Gi0/1  0 1048578
RT: closer admin distance for 23.23.23.23, flushing 1 routes
RT: add 23.23.23.23/32 via 192.168.12.2, eigrp metric [170/2560000512]
RT: updating eigrp 23.23.23.23/32 (0x0)  :
    via 192.168.13.3 Gi0/2  0 1048578

Above we can see that R1 removes the path through R3 and installs the path through R2. It’s showing us that it has a “closer admin distance”. The administrative distance however is the same but EIGRP does prefer the lower AS number. That’s why the path through R2 is preferred.

Want to take a look for yourself? Here you will find the final configuration of each device.

Conclusion

EIGRP path selection is usually pretty straightforward but there’s a little twist when you use different AS numbers. When the AD and metric are the same, EIGRP will prefer the lower AS number.

 

Table of Content

Unit 1: Introduction to EIGRP

Unit 2: EIGRP Neighbor Adjacency

Unit 3: EIGRP Filtering

Unit 4: EIGRP Advanced Features