cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
2659
Views
0
Helpful
2
Replies

Load balancing on MPLS/LDP

ThomasD86
Level 1
Level 1

Hi,

in our network we've noticed that certain routers are using one of their two upstream links, way more than the other. We've seen peaks of 80-90% utilisation on one link where the other just sits at 15-20%

 

The topology I am working with is rather simple, looking at the attached image, R1 and R2 are our PE routers, there's l2vpn circuits between the two of them. R3 and R4 are our P routers. For transport we use MPLS and LDP, our IGP is OSPF. Issue is that it seems that only one link is using for forwarding traffic towards R2. It looks that rather than load balancing per stream, the router is load balancing per remote hosts, that is to say that he will use one of the two uplink interfaces to reach certain hosts. and the other to reach certain others.

In this case, From R1 (ASR 907) I am trying to reach R2 (ASR 9906), I can see from R1 that I have two paths towards R2:

 

show ip route 172.16.128.54
Routing entry for 172.16.128.54/32
  Known via "ospf 1", distance 110, metric 111, type intra area
  Last update from 172.16.2.36 on TenGigabitEthernet0/4/7, 3d05h ago
  Routing Descriptor Blocks:
    172.16.2.36, from 172.16.0.223, 3d05h ago, via TenGigabitEthernet0/4/7
      Route metric is 111, traffic share count is 1
  * 172.16.2.34, from 172.16.0.223, 3d05h ago, via TenGigabitEthernet0/3/7
      Route metric is 111, traffic share count is 1
      Repair Path: 172.16.2.36, via TenGigabitEthernet0/4/7

My first question is: I see that the .36 path is being utilized as a repair path. In this state, will the repair path sit unused or, will it be used to load balance? I couldn't find a clear answer on this.

Show MPLS forwarding-table, further confirms that there's 2 destinations:

 

show mpls forwarding-table 172.16.128.54 32
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop    
Label      Label      or Tunnel Id     Switched      interface              
260        64110      172.16.128.54/32 0             Te0/4/7    172.16.2.36 
           64110      172.16.128.54/32 0             Te0/3/7    172.16.2.34 

Another question here is, if the two routers are towards a different upstream router, how can the route be utilizing the same local and outgoing labels for both? Shouldn't those be different?

 

If I look to CEF however

 

show ip cef exact-route 172.16.128.24 172.16.128.54
172.16.128.24 -> 172.16.128.54 => label [64110|64110]-(local:260)TAG adj out of TenGigabitEthernet0/3/7, addr 172.16.2.34

It shows that the router is utilising only one link.

This is the configuration of OSPF on R1:

 

router ospf 1
 router-id 172.16.0.84
 auto-cost reference-bandwidth 1000000
 nsr
 nsf ietf
 fast-reroute per-prefix enable prefix-priority low
 fast-reroute per-prefix remote-lfa area 2 tunnel mpls-ldp
 timers throttle spf 150 150 5000
 timers throttle lsa 1 1020 5000
  passive-interface default
 no passive-interface TenGigabitEthernet0/3/7
 no passive-interface TenGigabitEthernet0/4/7
 no passive-interface Loopback0
 no passive-interface Loopback2
 no passive-interface Loopback3
 maximum-paths 16
 bfd all-interfaces
 mpls ldp sync

This is the LDP configuration:

 

mpls label protocol ldp
no mpls ip propagate-ttl 
mpls ldp nsr
mpls ldp graceful-restart
mpls ldp session protection
mpls ldp igp sync holddown 2000
mpls ldp discovery hello interval 10
mpls ldp discovery hello holdtime 30
mpls ldp discovery targeted-hello interval 15
mpls ldp discovery targeted-hello holdtime 120
mpls ldp discovery targeted-hello accept
multilink bundle-name authenticated
l2vpn

Reading online I cannot get a definite answer on how load balacing works in this scenario, some says that cisco routers by default do load balancing on MPLS, others that in this scenario load balancing can only be achieved using fat/entropy labels. 

 

Could anyone help?

Thanks

1 Accepted Solution

Accepted Solutions

Harold Ritter
Spotlight
Spotlight

Hi @ThomasD86 ,

 

What you are seeing is expected behavior. You will need to configure flow aware transport (FAT) pseudowire to load balance per flow in the core. Please refer to the following document for more information:

 

https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/mp_l2_vpns/configuration/xe-3s/asr903/16-12-1/b-mpls-l2-vpns-xe-16-12-asr900/b-mpls-l2-vpns-xe-16-12-asr900_chapter_01.html#task_m4j_2ng_wy

 

Regards, 

Regards,
Harold Ritter, CCIE #4168 (EI, SP)

View solution in original post

2 Replies 2

Harold Ritter
Spotlight
Spotlight

Hi @ThomasD86 ,

 

What you are seeing is expected behavior. You will need to configure flow aware transport (FAT) pseudowire to load balance per flow in the core. Please refer to the following document for more information:

 

https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/mp_l2_vpns/configuration/xe-3s/asr903/16-12-1/b-mpls-l2-vpns-xe-16-12-asr900/b-mpls-l2-vpns-xe-16-12-asr900_chapter_01.html#task_m4j_2ng_wy

 

Regards, 

Regards,
Harold Ritter, CCIE #4168 (EI, SP)

Thank you Harold!