EIGRP and not needing the Down Bit with Dual Homed CEs - does it work?
I'm going through MPLS Fundamentals and labbing concepts to help learn them. Page 222 has an example of a CE advertising a route to a PE which then advertises it to two other PE that are dual homed to a CE. EIGRP is the PE-CE protocol.
The point made is that because BGP propagates the EIGRP metric values in the BGP metric the PEs will compare the metric of an EIGRP route learnt from the CE to the metric in the BGP route for the same route. Both PEs will thus prefer the iBGP route (AD 200) over the CE's EIGRP route (AD 170 or 90).
However, I'm not seeing this behaviour. What I'm seeing is that the PE is preferring the CE's eigrp route because it is installed in the route table a EIGRP and then redistributed into BGP, setting the weight to 32768, and BGP likes this path best, not the iBGP route.
Once I removed redistribution from EIGRP to BGP on the offending PE, the problem stops and the PE does prefer the iBGP route (AD 200) over the EIGRP route (AD 90 in this case). If I put the redistribution back on then the problem recurs.
Here is my lab setup and some output showing the behaviour.
R2 is the PE advertising R9's (CE loopback) address 184.108.40.206/32 to R1 and R4 PEs (via R3 route-reflector). R7 is dual homed to R1 and R4 via EIGRP. Mutual redistribution between BGP ipv4 vrf ONE and eigrp ipv4 vfr ONE is configured on all PEs. All RD's and RT's are 1:1.
R4 knows 220.127.116.11 (R9's loopback) via iBGP. This is redistributed into EIGRP and advertised to R7.
Rack1R4#sh ip route vrf ONE 18.104.22.168
Routing entry for 22.214.171.124/32
Known via "bgp 1", distance 200, metric 146432, type internal
Redistributing via eigrp 1
Advertised by eigrp 1 metric 1 1 1 1 1
Last update from 126.96.36.199 00:35:08 ago
Routing Descriptor Blocks:
* 188.8.131.52 (Default-IP-Routing-Table), from 184.108.40.206, 00:35:08 ago
Route metric is 146432, traffic share count is 1
AS Hops 0
Rack1R7#sh ip route
220.127.116.11/32 is subnetted, 1 subnets
D 18.104.22.168 [90/158208] via 22.214.171.124, 00:21:41, FastEthernet1/4 <- R4
R7 advertises this to R1.
R1 is supposed to check the EIGRP metric and compare this against the metric in the iBGP route from R2 according to the book, stopping R1 from redistributing it back to BGP and negating the need for EIGRP to have a down bit like OSPF and IS-IS.
However, R1 is installing the EIGRP route because it likes the locally originated BGP route with a weight of 32768 before it compares metrics.
Rack1R1#sh ip bgp vpnv4 all 126.96.36.199
BGP routing table entry for 1:1:188.8.131.52/32, version 8219
Paths: (2 available, best #1, table ONE)
Advertised to update-groups:
184.108.40.206 from 0.0.0.0 (220.127.116.11)
Origin incomplete, metric 160768, localpref 100, weight 32768, valid, sourced, best
Extended Community: RT:1:1 0x8800:32768:0 0x8801:1:135168
mpls labels in/out 26/nolabel
18.104.22.168 (metric 2) from 22.214.171.124 (126.96.36.199)
Origin incomplete, metric 146432, localpref 100, valid, internal
Extended Community: RT:1:1 0x8800:32768:0 0x8801:1:130048
Originator: 188.8.131.52, Cluster list: 184.108.40.206,
mpls labels in/out 26/20
Rack1R1#sh ip route vrf ONE
220.127.116.11/32 is subnetted, 1 subnets
D 18.104.22.168 [90/160768] via 22.214.171.124, 00:05:27, FastEthernet0/0.2
R1 is supposed to prefer the iBGP route from R2 according to the book, but it just isn't doing this. It advertises this redistributed route back to R3.
Rack1R1#sh ip bgp vpnv4 all neighbors 126.96.36.199 advertised-routes
BGP table version is 8230, local router ID is 188.8.131.52
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 1:1 (default for vrf ONE)
*> 184.108.40.206/32 220.127.116.11 160768 32768 ?
The behaviour described in the book only seems to happen when R1 does not redistribute EIGRP back to BGP. The it does install the iBGP route over the EIGRP route. This isn't desirable though, because R7 no longer has the benefit of dual homing, R1 doesn't advertise any of it's routes via MP-BGP.
Am I doing something weird? Should the PE's always prefer the iBGP vpnv4 route over the EIGRP route when dual homed like this? That makes sense as it stops potential looping like the down bit does, but it isn't doing it in my lab.