cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1758
Views
27
Helpful
22
Replies

EIGRP delete lower metric route and install higher metric route

chong.eric
Level 1
Level 1

Hi ,

Router is learning route 192.168.99.0/24 from 10.160.40.138 and 10.160.40.153.  Router installed 192.168.99.0/24 which learned from 10.160.40.153 even metric from 10.160.40.138 is lower.  

Can anyone able to explain why?

 

*Mar 1 01:04:44.875: RT: add 192.168.99.0/24 via 10.160.40.138, eigrp metric [170/28416]
*Mar 1 01:04:44.875: RT: NET-RED 192.168.99.0/24
*Mar 1 01:04:44.875: DUAL: RT installed 192.168.99.0/24 via 10.160.40.138
*Mar 1 01:04:44.875: DUAL: Send update about 192.168.99.0/24. Reason: metric chg
*Mar 1 01:04:44.875: DUAL: Send update about 192.168.99.0/24. Reason: new if
*Mar 1 01:04:44.963: DUAL: rcvquery: 192.168.99.0/24 via 10.160.40.138 metric 4294967295/4294967295, RD is 28416
*Mar 1 01:04:44.963: DUAL: Find FS for dest 192.168.99.0/24. FD is 28416, RD is 28416
*Mar 1 01:04:44.963: DUAL: 10.160.40.138 metric 4294967295/4294967295
*Mar 1 01:04:44.963: DUAL: 10.160.40.153 metric 30720/28160 found Dmin is 30720
*Mar 1 01:04:44.967: DUAL: send REPLY(r1/n1) about 192.168.99.0/24 to 10.160.40.138
*Mar 1 01:04:44.967: RT: delete route to 192.168.99.0 via 10.160.40.138, eigrp metric [170/28416]
*Mar 1 01:04:44.967: RT: SET_LAST_RDB for 192.168.99.0/24
OLD rdb: via 10.160.40.138, FastEthernet0/0
*Mar 1 01:04:44.967: RT: no routes to 192.168.99.0
*Mar 1 01:04:44.967: RT: NET-RED 192.168.99.0/24
*Mar 1 01:04:44.967: RT: delete network route to 192.168.99.0
*Mar 1 01:04:44.967: RT: NET-RED 192.168.99.0/24
*Mar 1 01:04:44.967: RT: SET_LAST_RDB for 192.168.99.0/24
NEW rdb: via 10.160.40.153
*Mar 1 01:04:44.967: RT: add 192.168.99.0/24 via 10.160.40.153, eigrp metric [170/30720]
*Mar 1 01:04:44.967: RT: NET-RED 192.168.99.0/24
*Mar 1 01:04:44.967: DUAL: RT installed 192.168.99.0/24 via 10.160.40.153
*Mar 1 01:04:44.967: DUAL: Send update about 192.168.99.0/24. Reason: metric chg
*Mar 1 01:04:44.967: DUAL: Send update about 192.168.99.0/24. Reason: new if
*Mar 1 01:04:45.003: DUAL: Removing dest 192.168.99.0/24, nexthop 10.160.40.138, infosource 10.160.40.138

22 Replies 22

R6#show ip eigrp topology 192.168.99.0/24
Hop count is 0 <<<- Hop count Zero !!! issue in BGP into EIGRP 
External protocol is BGP, external metric is 0 <<<- as I note in my photo

ANYWAY GOOD LUCK in Your Issue. 

Hello Eric, MHM,

@MHM Cisco World - very respectfully, I don't believe that we are yet looking at the root cause. Hop count is a consequence, not the cause - to EIGRP, hop count is not and has never been a parameter influencing path selections; it does not influence the resulting metric and can never be configured to influence it. You can't even manipulate it manually. On R6, hop count 0 merely says that the network has been locally injected into EIGRP's database as opposed to learning it from an EIGRP neighbor; in this case, it is injected by redistributing. And the external metric (MED) in BGP has no influence to EIGRP anyway because EIGRP cannot redistribute a scalar metric from another protocol directly - rather, it always needs to have it broken down to the bandwidth, delay, reliability, load and MTU components, no exception. Arguing whether situation would be different if the metric in BGP was raised is not relevant because with dissimilar routing protocols, we would compare administrative distances - and eBGP's 20 will always beat EIGRP's 90 for internal and 170 for external routes. BGP would always win. There is something else going on here.

@chong.eric , I think am starting to see what is going on but I have to ask you one thing before I explain what I think is happening: Did you toy around with the split horizon setting in EIGRP? Did you by any chance disable the split horizon on R4 f0/0?

Best regards,
Peter

Hi Peter,

No, I didn't change any split horizon setting in EIGRP

R4#sh ip int fa0/0
FastEthernet0/0 is up, line protocol is up
Internet address is 10.160.40.137/30
Broadcast address is 255.255.255.255
Address determined by non-volatile memory
MTU is 1500 bytes
Helper address is not set
Directed broadcast forwarding is disabled
Multicast reserved groups joined: 224.0.0.10
Outgoing access list is not set
Inbound access list is not set
Proxy ARP is enabled
Local Proxy ARP is disabled
Security level is default
Split horizon is enabled
ICMP redirects are always sent
ICMP unreachables are always sent
ICMP mask replies are never sent
IP fast switching is enabled
IP fast switching on the same interface is disabled
IP Flow switching is disabled
IP CEF switching is enabled
IP CEF Fast switching turbo vector
IP multicast fast switching is enabled
IP multicast distributed fast switching is disabled
IP route-cache flags are Fast, CEF
Router Discovery is disabled
IP output packet accounting is disabled
IP access violation accounting is disabled
TCP/IP header compression is disabled
RTP/IP header compression is disabled
Policy routing is disabled
Network address translation is disabled
BGP Policy Mapping is disabled
WCCP Redirect outbound is disabled
WCCP Redirect inbound is disabled
WCCP Redirect exclude is disabled

Hello Eric,

Thank you. Just for your information, the split horizon indication in show ip interface output refers to RIP, not to EIGRP. The EIGRP split horizon status cannot be checked using show ip interface - instead, you need to use show ip eigrp interface detail output for that:

Router(config)# do show run int e0/0
Building configuration...

Current configuration : 94 bytes
!
interface Ethernet0/0
 ip address 10.0.12.1 255.255.255.0
 no ip split-horizon eigrp 1
end

Router(config)# do show ip int e0/0 | i [Pp][Ll][Ii][Tt]
  Split horizon is enabled

Router(config)# do show ip eigrp interface detail e0/0 | i [Pp][Ll][Ii][Tt]
  Split-horizon is disabled

Anyway, I would have been surprised if you toyed around with the split horizon settings - most people don't touch it for a good reason. It would seem, then, that it is the poisoned reverse that somehow triggers R9.

Can I ask you for one more favor? Could you please capture packets on the R4-R9 link into a PCAP file, and while capturing them, recreate the situation where R4 first uses R9 as the next hop, and then reverts to R6? Then share the PCAP file here please. I would like to see what the R4 and R9 tell to each other during this time. Ideally, create the capture as follows:

  1. Shut down f0/0 and f1/1 on R4
  2. Start the capture on the R4/R9 link
  3. Enable f0/0 on R4 and wait till the network stabilizes. By this time, R4 should use R9 to reach 192.168.99.0/24 with the metric of 28416.
  4. Enable f1/1 on R4 and wait till the network stabilizes. By this time, R4 should use R6 to reach 192.168.99.0/24 with the metric of 30720, and R9 should use R4 to reach 192.168.99.0/24 with the metric of 33280.
  5. Stop the capture.

Thank you!

Best regards,
Peter

Hi @chong.eric ,

A humble ping... do you think you can create the PCAP file as suggested in the previous post from me?

Thank you!

Best regards,
Peter

@Peter Paluch 
I know that BGP win, BUT the issue is 
R4 learn two path 
one via R6 other R9
the EIGRP need to calculate the Path to the Origin router.
The Issue is 
path through R9 is complete EIGRP and there is redistribute (between process) and hence the metric value can calculate.
path through R6 is BGP+EIGRP, and hence the metric must be EIGRP + BGP "Metric"<<<
here the issue the BGP not keep the metric when redistribute the prefix from EIGRP.
this make R4 have path short via BGP.
we need to make 
1-redistribute the BGP into EIGRP with value Large than the Value of other second path 
2-config the R4-R6 delay or BW to make this path less prefer than path through R9.

Hi MHM,

The situation is more complex.

R4 is placed in a position where it is looking at the same destination network through two different advertising routers, and those two advertising routers - R6 and R9 - also happen to be redistribution points for that network so they have a complete power over the metric of the network and can set it to an arbitrary value. The way the redistribution is set up, the path through R9 should be with a total cost of 28416, the path through R6 should be with a total cost of 30720. The redistribution configuration never changes, so neither R6 nor R9 should change their mind about the cost of the redistributed route. Yet, apparently, exactly that happens on R9.

Now, the path through R9 is a combination of two EIGRP processes, and in the process 200, the metric of 192.168.99.0/24 is significantly lower (thanks to an overriding metric configured in the redistribution) than in the process 100 which is the original proces that carries the information about this network. On R9, in process 100, the composite metric of the route to 192.168.99.0/24 through R10 is 25630720 while in process 200, the composite metric through R4 is merely 33280 (that is the result of R9 deciding to use the path through R4 instead of staying with the path through R10). You could say - sure, the path is shorter! - but that would be a wrong understanding.

If R9 first redistributed the route from process 100 to process 200, the network in process 100 was first in its routing table with the high metric of 25630720, and it just got reinjected into process 200 with an overriden metric of 2816 = (10+1)*256. However, this reinjected route in process 200 would itself never override the original route in RIB because that is the basic rule of redistribution: Even if the redistributed route ends in a local routing process that has a lower AD and/or a lower metric, the original route must stay in the routing table untouched because it is the source for the redistribution.

The output from R9, however, shows something quite different:

R9# show ip eigrp topology 192.168.99.0/24
IP-EIGRP (AS 200 Topology entry for 192.168.99.0/24
State is Passive, Query origin flag is 1, 1 Successor(s), FD is 33280
Routing Descriptor Blocks:
10.160.40.137 (FastEthernet0/0), from 10.160.40.137, Send flag is 0x0
 Composite metric is (33280/30720), Route is External
 Vector metric:
  Minimum bandwidth is 100000 Kbit
  Total delay is 300 microseconds
  Reliability is 255/255
  Load is 1/255
  Minimum MTU is 1500
  Hop count is 2
 External data:
  Originating router is 57.213.9.110
  AS number of route is 65001
  External protocol is BGP, external metric is 0
  Administrator tag is 65003 (0x00003637)

IP-EIGRP (AS 100 Topology entry for 192.168.99.0/24
State is Passive, Query origin flag is 1, 0 Successor(s), FD is 4294967295
Routing Descriptor Blocks:
10.160.40.146 (FastEthernet0/1), from 10.160.40.146, Send flag is 0x0
 Composite metric is (25630720/25628160), Route is External
 Vector metric:
  Minimum bandwidth is 100 Kbit
  Total delay is 1200 microseconds
  Reliability is 255/255
  Load is 1/255
  Minimum MTU is 1500
  Hop count is 2
 External data:
  Originating router is 10.43.13.233
  AS number of route is 0
  External protocol is Static, external metric is 0
  Administrator tag is 0 (0x00000000)

Note that in process 200, there is no mention of the locally redistributed route, only the route learned back from R4. In process 100, FD is set to infinity due to the fact that the process 100 was unable to install its own variant of the route into the routing table (a so-called zero-successor route) and so is marked as unusable even if learned. In fact, exactly because the process 100 does not own the route to 192.168.99.0/24 in the RIB on R9 anymore, there is no redistribution from process 100 to process 200 happening, and so there is no locally redistributed route in the process 200.

But clearly, at the beginning, the process 100 on R9 did have the route to 192.168.99.0/24 installed in the RIB and redistributed into process 200. So what happened that this has changed? The redistribution alone would not have caused process 200 overturn process 100.

A possible answer is that R4 advertised the route to 192.168.99.0/24 to R9. But let's break this up into details: Just what could have R4 advertised? The relevant debugs are:

*Mar 1 01:04:44.875: RT: add 192.168.99.0/24 via 10.160.40.138, eigrp metric [170/28416]
*Mar 1 01:04:44.875: RT: NET-RED 192.168.99.0/24
*Mar 1 01:04:44.875: DUAL: RT installed 192.168.99.0/24 via 10.160.40.138
*Mar 1 01:04:44.875: DUAL: Send update about 192.168.99.0/24. Reason: metric chg
*Mar 1 01:04:44.875: DUAL: Send update about 192.168.99.0/24. Reason: new if

Here, R4 picked the route through R9 and sent updates about it. But with EIGRP, we have split horizon with poisoned reverse. Unless it was deactivated on R4 - and that's why I asked Eric if he changed its setting - R9 would have received a poisoned reverse update from R4 which it should not have cared about at all because it wasn't using the path through R4 anyway.

So either R9 unexpectedly reacted even to the poisoned reverse from R4, or the split horizon on R4 was in fact disabled and then R4 advertised the network with the metric of 28416 to R9. R9 would then realize that it had a better path to 192.168.99.0/24 with a total metric of 33280 instead of 25630720... and that would explain some thing.

But unless we have this nailed down and clarified beyond doubt, we do not really know what is happening. There are quite a few things that should not have happened here and that don't make sense, at least not intuitively. Hence, I am not accepting an arbitrary manipulation with metrics as a solution - without understanding exactly what is going on and why the manipulation would solve it, it is a blind shot which, if it works, it works only by chance and coincidence.

Best regards,
Peter

Config that make the Path through R6-R2 not via R3-R5-R4-R2
why I calculate the metric and the R1 prefer the path through R6-R2
nbbnbnnbnbn.png
I only change the BW and make the path R3-R5-R4-R2 is more prefer for R1 and 
gota 
the R1 select the path.
it only the metric calculate.
cxzcxzcxzcxzcxz.png

hope this is solution here.
last NOTE:-
the BGP is slow coverage compare to EIGRP, wait a while then check.

Review Cisco Networking for a $25 gift card