cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1754
Views
5
Helpful
5
Replies

MPLS Load Balancing/Sharing with TE or CEF or Both?

jwbensley
Level 1
Level 1

So I am just playing around in GNS3 trying to set up multiple ECMP links between to P routers like this;

CE1 -- PE1 -- P1 == P2 -- PE2 -- CE2

(There are actually four links between P1 & P2!)

I have set up a pseudoswire xconnect from PE1 to PE2 so CE1 & 2 can ping each other on the same local subnet range. That works just fine.

My question is this:

I have configured "ip load-sharing per-packet" on each of the four interfaces on P1 and P2 that are facing each other (I know per-packet balancing is frowned upon but lets not talk about that right now!) and this works, traffic is distributed across all links (I can see with packet captures in GNS3).

Where does "ip load-sharing per-packet" fit in to the chain of events with regards to MPLS and CEF etc?; So, with MPLS enabled everywhere the two P routers are forwarding based on labels and not IP address. With MPLS enabled, does this command force the P routers to load-balance each MPLS frame as it comes in, round-robbin'ing the ingress frames across all links, the same as it would if it were a plain IP packet? So the command is ignorate of the kind of traffic being used? Or is the P router looking down into the MPLS frame for the IP in the IP packet?

Also, in order to get the same sort of performance boost you get from per-packet load balancing, seeing as I am using MPLS here, should I be using some francy MPLE TE to do this instead of that interface sub-command?

If I remove that command, I seem to always use link 2 for sending traffic towards P2 from P1, and link 3 for receiving the return traffic from P2 to P1. This is presumably because the ICMP packets have nothing to hash on except the source and destination IP addresses, so they always hash to the same physical links. Without using that command how else can I make use of the four links?

1 Accepted Solution

Accepted Solutions

Giuseppe Larosa
Hall of Fame
Hall of Fame

Hello Jwbensley,

first of all,

"ip load-sharing per-packet" is not a viable option as it causes out  of order issues.

Real world devices perform load balancing based on the second (more internal ) label value so to achieve some load balancing for example multiple pseudowires must be defined between the same pair of PE nodes.

L3 VPN use different internal labels for different customer prefixes of the same VRF site ( unless some special command is used to say use one label per VRF site)

>> f I remove that command, I seem to always use link 2 for sending traffic towards P2 from P1, and link 3 for receiving the return traffic from P2 to P1

This is the expected behaviour in this scenario.

With MPLS TE you can achieve results similar to the use of multiple pseudowires /LSPs : forms of load sharing not true load balancing. In all cases in MPLS world flow based and not per packet

Hope to help

Giuseppe

View solution in original post

5 Replies 5

In MPLS TE for this kind of scenario you can go with explicit path defined. you can route them as if you needed.

Regards
Thanveer
"Everybody is genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is a stupid."

Hi Muhammad,

Thanks for the answer, although that hasn't really helped at all.

So what are you saying about TE, with TE I can achieve the same kind of per-packet load balancing?

Cheers,

James.

Sorry If I mislead you brother, NO I am not saying about per packet load balancing, Its as per its name traffic engineering.

Regards
Thanveer
"Everybody is genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is a stupid."

Giuseppe Larosa
Hall of Fame
Hall of Fame

Hello Jwbensley,

first of all,

"ip load-sharing per-packet" is not a viable option as it causes out  of order issues.

Real world devices perform load balancing based on the second (more internal ) label value so to achieve some load balancing for example multiple pseudowires must be defined between the same pair of PE nodes.

L3 VPN use different internal labels for different customer prefixes of the same VRF site ( unless some special command is used to say use one label per VRF site)

>> f I remove that command, I seem to always use link 2 for sending traffic towards P2 from P1, and link 3 for receiving the return traffic from P2 to P1

This is the expected behaviour in this scenario.

With MPLS TE you can achieve results similar to the use of multiple pseudowires /LSPs : forms of load sharing not true load balancing. In all cases in MPLS world flow based and not per packet

Hope to help

Giuseppe

Hi Giuseppe,

Many thanks for the info, all very useful!

Cheers,

James.

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: