Internal vs. External EIGRP


This post will help explain what the difference between internal EIGRP and external EIGRP is.

 This is our topology:

internal vs external EIGRP

We have three different EIGRP autonomous systems (AS). From R1 we want to get to the IP 1.1.1.1, which is a loopback interface on R3. We can go through AS 100, which has a number of routers in it. Or we can see how we can get to it through AS 300 and AS 200.

The basic IP addressing is below:
R1#sh run int e0/0 | b interface
interface Ethernet0/0
 ip address 10.1.30.1 255.255.255.0
end

R1#sh run int e0/1 | b interface
interface Ethernet0/1
 ip address 10.1.6.1 255.255.255.0
end

R1#

R2#sh run int e0/0 | b interface
interface Ethernet0/0
 ip address 10.1.30.2 255.255.255.0
end

R2#sh run int e0/1 | b interface
interface Ethernet0/1
 ip address 10.1.20.2 255.255.255.0
end

R2#

R3#sh run int e0/0 | b interf
interface Ethernet0/0
 ip address 10.1.20.3 255.255.255.0
end

R3#sh run int e0/1 | b interf
interface Ethernet0/1
 ip address 10.1.3.3 255.255.255.0
end

R3#sh run int lo0 | b interf
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
end

R3#

R4#sh run int e0/0 | b interf
interface Ethernet0/0
 ip address 10.1.4.4 255.255.255.0
end

R4#sh run int e0/1 | b interf
interface Ethernet0/1
 ip address 10.1.5.4 255.255.255.0
end

R4#

R5#sh run int e0/0 | b interf
interface Ethernet0/0
 ip address 10.1.3.5 255.255.255.0
end

R5#sh run int e0/1 | b interf
interface Ethernet0/1
 ip address 10.1.4.5 255.255.255.0
end

R5#

R6#sh run int e0/0 | b interf
interface Ethernet0/0
 ip address 10.1.6.6 255.255.255.0
end

R6#sh run int e0/1 | b interf
interface Ethernet0/1
 ip address 10.1.5.6 255.255.255.0
end

R6#

internal and external EIGRP configuration

We will start by configuring AS 100, then AS 300 and AS 200. At this stage we are not adding the loopback interface on R3 into any AS:
R1(config)#router eigrp 100
R1(config-router)#network 10.1.6.0 0.0.0.255
R1(config-router)#

R6(config)#router eigrp 100
R6(config-router)#network 10.1.6.0 0.0.0.255
R6(config-router)#
%DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor 10.1.6.1 (Ethernet0/0) is up: new adjacency
R6(config-router)#network 10.1.5.0 0.0.0.255
R6(config-router)#

R4(config)#router eigrp 100
R4(config-router)#network 10.1.5.0 0.0.0.255
R4(config-router)#
%DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor 10.1.5.6 (Ethernet0/1) is up: new adjacency
R4(config-router)#
R4(config-router)#network 10.1.4.0 0.0.0.255
R4(config-router)#

R5(config)#router eigrp 100
R5(config-router)#network 10.1.4.0 0.0.0.255
R5(config-router)#
%DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor 10.1.4.4 (Ethernet0/1) is up: new adjacency
R5(config-router)#network 10.1.3.0 0.0.0.255
R5(config-router)#

R3(config)#router eigrp 100
R3(config-router)#network 10.1.3.0 0.0.0.255
R3(config-router)#
%DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor 10.1.3.5 (Ethernet0/1) is up: new adjacency
R3(config-router)#

R1(config-router)#exit
R1(config)#router eigrp 300
R1(config-router)#network 10.1.30.0 0.0.0.255
R1(config-router)#

R2(config)#router eigrp 300
R2(config-router)#network 10.1.30.0 0.0.0.255
R2(config-router)#
%DUAL-5-NBRCHANGE: EIGRP-IPv4 300: Neighbor 10.1.30.1 (Ethernet0/0) is up: new adjacency
R2(config-router)#
R2(config-router)#exit
R2(config)#router eigrp 200
R2(config-router)#network 10.1.20.0 0.0.0.255
R2(config-router)#

R3(config-router)#exit
R3(config)#router eigrp 200
R3(config-router)#network 10.1.20.0 0.0.0.255
R3(config-router)#
%DUAL-5-NBRCHANGE: EIGRP-IPv4 200: Neighbor 10.1.20.2 (Ethernet0/0) is up: new adjacency
R3(config-router)#
R3(config-router)#
With this basic setup, what is R1's view of the world?
R1#sh ip route eigrp | b Gate
Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 7 subnets, 2 masks
D        10.1.3.0/24 [90/358400] via 10.1.6.6, 00:02:16, Ethernet0/1
D        10.1.4.0/24 [90/332800] via 10.1.6.6, 00:02:51, Ethernet0/1
D        10.1.5.0/24 [90/307200] via 10.1.6.6, 00:03:29, Ethernet0/1
R1#
We can see all of the prefixes in AS 100, but none in AS 200. We will not see the AS 300 link, as this will show as a connected route. Let's add the loopback to both of R3's EIGRP AS configurations, and see which R1 prefers.
R3(config-router)#router eigrp 100
R3(config-router)#network 1.1.1.1 0.0.0.0
R3(config-router)#router eigrp 200
R3(config-router)#network 1.1.1.1 0.0.0.0
R3(config-router)#

R1#sh ip route eigrp | b Gate
Gateway of last resort is not set

      1.0.0.0/32 is subnetted, 1 subnets
D        1.1.1.1 [90/486400] via 10.1.6.6, 00:00:23, Ethernet0/1
      10.0.0.0/8 is variably subnetted, 7 subnets, 2 masks
D        10.1.3.0/24 [90/358400] via 10.1.6.6, 00:05:29, Ethernet0/1
D        10.1.4.0/24 [90/332800] via 10.1.6.6, 00:06:04, Ethernet0/1
D        10.1.5.0/24 [90/307200] via 10.1.6.6, 00:06:42, Ethernet0/1
R1#
So, we can now see it, and it prefers the one through R6. For R1 to see it through AS 200 and AS 300, we must perform some redistribution on R2:
R2(config-router)#router eigrp 200
R2(config-router)#redistribute eigrp 300
R2(config-router)#router eigrp 300
R2(config-router)#redistribute eigrp 200
R2(config-router)#
R1 can now see the prefixes originated by AS 200:
R1#sh ip route eigrp | b Gate
Gateway of last resort is not set

      1.0.0.0/32 is subnetted, 1 subnets
D        1.1.1.1 [90/486400] via 10.1.6.6, 00:02:24, Ethernet0/1
      10.0.0.0/8 is variably subnetted, 8 subnets, 2 masks
D        10.1.3.0/24 [90/358400] via 10.1.6.6, 00:07:30, Ethernet0/1
D        10.1.4.0/24 [90/332800] via 10.1.6.6, 00:08:05, Ethernet0/1
D        10.1.5.0/24 [90/307200] via 10.1.6.6, 00:08:43, Ethernet0/1
D EX     10.1.20.0/24 [170/307200] via 10.1.30.2, 00:00:55, Ethernet0/0
R1#
Without redistribution, as above, two EIGRP AS's are completely separated. So we need to redistribute from one AS to another (A to B), and to make sure that the traffic can get back again, from B to A. Nevertheless, we still prefer the route to 1.1.1.1 through R6.

Notice the difference we have for the AS 200 route. It is displayed as "D EX", meaning it is an external EIGRP route, and has a higher metric, 170 instead of 90. Let's dig in a bit further and see if R1 actually knows about the 1.1.1.1 network from AS 300:
R1#sh ip eigrp topology 1.1.1.1/32
EIGRP-IPv4 Topology Entry for AS(100)/ID(10.1.30.1) for 1.1.1.1/32
  State is Passive, Query origin flag is 1, 1 Successor(s), FD is 486400
  Descriptor Blocks:
  10.1.6.6 (Ethernet0/1), from 10.1.6.6, Send flag is 0x0
      Composite metric is (486400/460800), route is Internal
      Vector metric:
        Minimum bandwidth is 10000 Kbit
        Total delay is 9000 microseconds
        Reliability is 255/255
        Load is 1/255
        Minimum MTU is 1500
        Hop count is 4
        Originating router is 1.1.1.1
EIGRP-IPv4 Topology Entry for AS(300)/ID(10.1.30.1) for 1.1.1.1/32
  State is Passive, Query origin flag is 1, 0 Successor(s), FD is Infinity
  Descriptor Blocks:
  10.1.30.2 (Ethernet0/0), from 10.1.30.2, Send flag is 0x0
      Composite metric is (435200/409600), route is External
      Vector metric:
        Minimum bandwidth is 10000 Kbit
        Total delay is 7000 microseconds
        Reliability is 255/255
        Load is 1/255
        Minimum MTU is 1500
        Hop count is 2
        Originating router is 10.1.30.2
      External data:
        AS number of route is 200
        External protocol is EIGRP, external metric is 409600
        Administrator tag is 0 (0x00000000)
R1#
It does, but it still prefers the internal EIGRP route, even though the router through R2 is better, with a shorter hop count of 2 instead of 4, and it also has a better delay, which is used in calculating the best route.

EIGRP will always prefer internal routes to external routes. Internal EIGRP routes have a metric of 90, and external ones have a metric of 170. A lower metric will always be preferred. External EIGFRP routes are ones that come from redistribution, either between different EIGRP AS's, or via a different protocol. Which we will look at now, by switching EIGRP AS 200, to OSPF.
R2(config)#no router eigrp 200
R2(config)#
R2(config)#router ospf 200
R2(config-router)#network 10.1.20.0 0.0.0.255 area 0
R2(config-router)#

R3(config)#no router eigrp 200
R3(config)#
R3(config)#router ospf 200
R3(config-router)#network 10.1.20.0 0.0.0.255 area 0
R3(config-router)#
%OSPF-5-ADJCHG: Process 200, Nbr 10.1.30.2 on Ethernet0/0 from LOADING to FULL, Loading Done
R3(config-router)#
R3(config-router)#network 1.1.1.1 0.0.0.0 area 0
R3(config-router)#
R3(config-router)#

R2(config-router)#redistribute eigrp 300
R2(config-router)#
R2(config-router)#router eigrp 300
R2(config-router)#redistribute ospf 200 metric 10000 10 255 1 1500
R2(config-router)#
Now if we look at R1 again, we can see that we still know about the 10.1.20.0/24 network; it still appears as an external route, and we still prefer the internal EIGRP route to 1.1.1.1.
R1#sh ip route eigrp | b Gate
Gateway of last resort is not set

      1.0.0.0/32 is subnetted, 1 subnets
D        1.1.1.1 [90/486400] via 10.1.6.6, 00:29:56, Ethernet0/1
      10.0.0.0/8 is variably subnetted, 8 subnets, 2 masks
D        10.1.3.0/24 [90/358400] via 10.1.6.6, 00:35:02, Ethernet0/1
D        10.1.4.0/24 [90/332800] via 10.1.6.6, 00:35:37, Ethernet0/1
D        10.1.5.0/24 [90/307200] via 10.1.6.6, 00:36:15, Ethernet0/1
D EX     10.1.20.0/24 [170/284160] via 10.1.30.2, 00:01:00, Ethernet0/0
R1#
R1#sh ip eigrp topology 1.1.1.1/32
EIGRP-IPv4 Topology Entry for AS(100)/ID(10.1.30.1) for 1.1.1.1/32
  State is Passive, Query origin flag is 1, 1 Successor(s), FD is 486400
  Descriptor Blocks:
  10.1.6.6 (Ethernet0/1), from 10.1.6.6, Send flag is 0x0
      Composite metric is (486400/460800), route is Internal
      Vector metric:
        Minimum bandwidth is 10000 Kbit
        Total delay is 9000 microseconds
        Reliability is 255/255
        Load is 1/255
        Minimum MTU is 1500
        Hop count is 4
        Originating router is 1.1.1.1
EIGRP-IPv4 Topology Entry for AS(300)/ID(10.1.30.1) for 1.1.1.1/32
  State is Passive, Query origin flag is 1, 0 Successor(s), FD is Infinity
  Descriptor Blocks:
  10.1.30.2 (Ethernet0/0), from 10.1.30.2, Send flag is 0x0
      Composite metric is (284160/258560), route is External
      Vector metric:
        Minimum bandwidth is 10000 Kbit
        Total delay is 1100 microseconds
        Reliability is 255/255
        Load is 1/255
        Minimum MTU is 1500
        Hop count is 1
        Originating router is 10.1.30.2
      External data:
        AS number of route is 200
        External protocol is OSPF, external metric is 11
        Administrator tag is 0 (0x00000000)
R1#
This time though, we know that the route has originated through OSPF, and into EIGRP AS 300.

In a nutshell, the difference between internal EIGRP and external EIGRP is that external routes come to us through redistribution, either between different EIGRP AS's, or through a different protocol, such as OSPF.

To read more about EIGRP, grab a copy of CCNA and Beyond!

CCIE #49337, author of CCNA and Beyond, BGP for Cisco Networks, MPLS for Cisco Networks, VPNs and NAT for Cisco Networks.

Related Posts

Previous
Next Post »