cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
4041
Views
50
Helpful
16
Replies

EIGRP - Change metric per subnet and per neighbor.

morabusa
Level 1
Level 1

I am trying to make work something ehich is probably not possible with EIGRP but I would like to confirm it befere deciding to use a different routing protocol. I have an escenario where I have the following devices:

1- Layer 3 CoreSwitch with EIGRP running in the vlan 10.

2- ISP1 Router MPLS with EIGRP running in the vlan 10.

3- ISP2 Router MPLS with EIGRP running in the vlan 10.

(As you can see, the 3 devices are connected in the same vlan/subnet and all of them are EIGRP neighbors)

Routes advertised by ISP1 have better EIGRP metric and this is ok but I would need to modify the metric in the CoreSwitch, to prefer one subnet advertised from ISP2.

I know how to locally modify metrics in EIGRP per neighbor, for example:

L3SW(config)#access-list 22 permit 192.168.30.0
L3SW(config)#router eigrp 55
L3SW(config-router)#offset-list 22 in 10000 vlan10
L3SW(config-router)#exit
L3SW(config)#end

The problem I have is that both neighbors are known through the same SVI (int vlan 10), and I am not sure if there is anything I could do just with EIGRP to fix this (I am thinking about using static routes with a track but I would prefer to achieve this just with EIGRP). Is this possible to do?

 

 

 

1 Accepted Solution

Accepted Solutions

Hello,. 

 

you could change the distance. Let's say the IP address of ISP 1 is 10.10.10.1. The below config would increase the distance to 91 for that one subnet:

 

access-list 22 permit 192.168.30.0
!
router eigrp 55
distance 91 10.10.10.1 0.0.0.0 22

View solution in original post

16 Replies 16

Hello,. 

 

you could change the distance. Let's say the IP address of ISP 1 is 10.10.10.1. The below config would increase the distance to 91 for that one subnet:

 

access-list 22 permit 192.168.30.0
!
router eigrp 55
distance 91 10.10.10.1 0.0.0.0 22

Hello George,

I think what you suggest won’t fix what I need or maybe I am not getting your point.

let’s suppose that these are my IPs:

Core switch IP: 10.10.10.5/27

ISP1 IP: 10.10.10.1/27

ISP2 IP: 10.10.10.2/27

If I perform this change, I think that I would change the AD for all routes learned from one neighbor and it is not what I need. I want all routes going towards ISP1, except one which should go towards ISP2. Remember that ISP1 and ISP2 are connected to the core switch in the same vlan and same subnet. Plus three devices are EIGRP neighbors and they looks directly connected (at least logically).


Plus please keep in mind that I receive the same subnets from both ISPs. So I need a way to prefer a specific subnet from ISP2 which actually has a worse EIGRP metric for all subnets.

 

I believe that the suggestion from @Georg Pauwen really is what you are looking for. Perhaps this article which discusses this kind of change might help you understand it better:

https://www.cisco.com/c/en/us/support/docs/ip/enhanced-interior-gateway-routing-protocol-eigrp/13673-14.html#anc15

Also perhaps it might be helpful to clarify what each of the parameters in the command are doing

distance 91 10.10.10.1 0.0.0.0 22

91 is the new administrative distance

10.10.10.1 0.0.0.0 is the particular neighbor for whom the change is to be made

22 is the access list which specifies the prefix for which the change is to be made.

HTH

Rick

Hello,

 

--> If I perform this change, I think that I would change the AD for all routes learned from one neighbor and it is not what I need.

 

No, it will only change the administrative distance for the one subnet specified in the access list. The rest of the routes will keep being routed through ISP1.

Ok, now I get it. Going to test this and let you know but it looks good (I think I saw your answer before you edited it and for this reason I did not understand it but it is now clearer for me).

Thanks!

BTW, I forgot to answer if this could also be done in NXOS. I am trying to find how to translate these IOS commands to NXOS but without success for the moment. Thank you.

Hello,

 

Cisco has an IOS to NXOS conversion tool, check the link below:

 

https://nxmt.cloudapps.cisco.com/terms.htm

Yes, I have tried it but it says: No mapping for this command: !No Mapping: distance 91 10.10.10.1 0.0.0.0 22

I have found this: https://community.cisco.com/t5/routing/how-to-change-ad-of-specific-routes-in-eigrp-nx-os-6-2/td-p/2517987

I am going to check a bit more about table-map in Nexus to see if I can make work this on a NX-OS device. Thank you very much for all the help!

 

EDIT: This config is what I will try in some days and let you know if it works fine:

router eigrp 55
address-family ipv4 unicast
table-map vpls-route-AD

route-map vpls-route-AD permit 10
match ip route-source prefix-list vpls-route-source
match ip address prefix-list vpls-route
set distance 91

ip prefix-list vpls-route-source seq 5 permit 10.10.10.1/32

ip prefix-list vpls-route seq 5 permit 192.168.30.0/24

Hello,

 

not sure if this works. NX-OS does not have the 'distance' command, and since both your neighbors are connected to one (VLAN 10) interface, there is not really a way to distinguish where the route comes from...

 

Either way, curious to know the results of your testing...

According to what I can understand in the below configuration, we can specify the neighbor with the match ip route-source prefix-list vpls-route-source inside the route-map:

 

router eigrp 55
address-family ipv4 unicast
table-map vpls-route-AD

route-map vpls-route-AD permit 10
match ip route-source prefix-list vpls-route-source
match ip address prefix-list vpls-route
set distance 91

ip prefix-list vpls-route-source seq 5 permit 10.10.10.1/32

ip prefix-list vpls-route seq 5 permit 192.168.30.0/24

 

But yes, not totally sure if this will work. I will let you know, thanks

Hi Morabus,

 

Actually there is a way you can leave the AD the same as 90 and adjust the composite metric!

We can achieve this by using a distribute-list and a route-map.

 

route-map SET_METRIC permit 10

match ip next-hop 10

set metric +5000
!

route-map SET_METRIC permit 20

 !
!

ip access-list standard 10
 10 permit host 192.168.30.5 (Or whatever the gateway is of your ISP-2)
!
router eigrp 100

 distribute-list route-map SET_METRIC in
!

This will adjust the metric by +5000 for every prefix learnt from your EIGRP neighbour 192.168.30.5
I love to use the 'match ip next-hop' especially when configuring BGP. I agree that in this scenario you have to get creative!
Hope this helps!

This configuration is in-fact supported by NX-OS too.

Hi Benjamin,

I suppose that I could also specify inside the route-map, the subnet I want to change the metric, right? I am planning to make this change tomorrow, so I will also test this, thank you very much

Best regards,

 

That's correct, just a simple standard ACL or prefix list which will allow us to only apply the metric increase for those matched prefixes.
I labbed this up myself using my CSR1000Vs, although not NXOS, but same principle really. 

 

Let us know how it goes!

 

[ACL 15 is used to catch the specific prefixes we want to alter the metric for]

 

route-map SET_METRIC permit 10

 match ip next-hop 10

 match ip address 15

 set metric +5000
!

route-map SET_METRIC permit 20

 !
!

ip access-list standard 10
 10 permit host 192.168.30.5 (Or whatever the gateway is of your ISP-2)
!

ip access-list standard 15

 10 permit 10.10.10.0 0.0.0.255

 20 permit 20.20.20.0 0.0.0.255

!
router eigrp 100

 distribute-list route-map SET_METRIC in

!

!

!-------!

Review Cisco Networking for a $25 gift card