MPLS load balancing

Answered Question
Oct 15th, 2008

Hello,

Graph of the network is in the attachment. I have problem that loadbalanicing among two GigabitEtehernet links in OSPF (between PE4 and P1 router on the picture)doesn't work. Black link goes to 1G/s and begins to drop packets and red one stays empty. Amount of traffic is 1,4Gbps. 700Mb/s from EoMPLS vlan 11 plus 700Mb/s from EoMPLS vlan 12.

Regarding two EoMPLS tunnels, PE4 should balance traffic in CEF and it should look the inner label from MPLS packet.

All routers are Cisco7600

Here is output from PE4

PE4#sh mpls forwarding-table 192.168.0.5 32 detail

Local Outgoing Prefix Bytes Label Outgoing Next Hop

Label Label or VC or Tunnel Id Switched interface

395 134 192.168.0.5/32 1573173346488 Gi1/0/0 10.10.1.189

MAC/Encaps=14/18, MRU=9216, Label Stack{134}

001563F33EC0001C0F5C92C08847 00086000

No output feature configured

Per-destination load-sharing, slots: 0 2 4 6 8 10 12 14

134 192.168.0.5/32 130361493 Gi2/0/0 10.10.1.197

MAC/Encaps=14/18, MRU=9216, Label Stack{134}

001563F33EC0001C0F5C92C08847 00086000

No output feature configured

Per-destination load-sharing, slots: 1 3 5 7 9 11 13 15

PE4#sh mpls forwarding-table 192.168.0.105 32 detail

Local Outgoing Prefix Bytes Label Outgoing Next Hop

Label Label or VC or Tunnel Id Switched interface

120 49 192.168.0.105/32 0 Gi1/0/0 10.10.1.189

MAC/Encaps=14/18, MRU=9216, Label Stack{49}

001563F33EC0001C0F5C92C08847 00031000

No output feature configured

Per-destination load-sharing, slots: 0 2 4 6 8 10 12 14

49 192.168.0.105/32 217252 Gi2/0/0 10.10.1.197

MAC/Encaps=14/18, MRU=9216, Label Stack{49}

001563F33EC0001C0F5C92C08847 00031000

No output feature configured

Per-destination load-sharing, slots: 1 3 5 7 9 11 13 15

If anyone have idea what could be the problem please give me a hint.

I have this problem too.
0 votes
Correct Answer by Giuseppe Larosa about 8 years 3 months ago

Hello Antonio,

you're right the sh mpls l2transport vc detail can be used only on EoMPLS endpoints.

How to find a sh command for the forwarding decisions on P router PE4:

probably sh ip cef exact-route looks like the right one because it reflects the observed behaviour and MPLS is built on CEF.

The sh mls cef is platform specific and could apply only to IPv4 traffic between the specified endpoints (not MPLS aware)

I think that Martin's suggestions could be tried or the use of MPLS traffic-engineering.

You could also define additional loopback addresses to be used for setting up EoMPLS that are even (like 192.168.20.2).

Or even to see the dependency on inner label value:

in a maintanence window delete the EoMPLS and rebuild it in the hope this time they will use a different inner label value.

Hope to help

Giuseppe

  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 5 (4 ratings)
Loading.
Giuseppe Larosa Wed, 10/15/2008 - 09:20

Hello Antonio,

the shows you have posted are for the destination loopback interfaces of PE2 and PE1 but EoMPLS traffic has a double label stack so if the Exor rule for the inner label gives the same result the same link is used.

To verify the EoMPLS forwarding use

sh mpls l2transport vc detail

show mpls l2transport vc [vcid vc-id | vcid vc-id-min vc-id-max] [interface name [local-circuit-id]] [destination ip-address | name] [detail]

see

http://www.cisco.com/en/US/docs/ios/mpls/command/reference/mp_s2.html#wp1036907

this can tell you if the actual EoMPLS forwarding follows what the sh command says.

if the MPLS forwarding rule is as simple as

out label EXOR inlabel this can lead to the same result 0 or 1 and so in the usage of only one link.

CEF uses exor of IP SA , IP DA and an hash seed so we can expect something similar here.

the P1 router passes the same outer label for the same destination (loopback address) on both links you can check this with sh mpls ldp binding.

Hope to help

Giuseppe

Antonio_1_2 Thu, 10/16/2008 - 04:47

Hi Giuseppe,

I checked EoMPLS for VLAN 12 on PE4 and it goes via black link. But since EoMPLS for VLAN 11 originates on PE3, I can't verify forwarding on PE4 with command: sh mpls l2transport vc detail

On PE4 that (EoMPLS vlan11) is MPLS packet so I should use show mpls forwarding-table 192.168.0.5 ? Is it correct? And in the output of that command there is both links red and black as next-hop.

Harold Ritter Wed, 10/15/2008 - 09:30

Antonio,

This is normal behavior. The load-balancing in the case of l2vpn is done on the VC label (inner label). If you want to send traffic from one vlan via one link and traffic from the other vlan via the other link, you could run two MPLS TE tunnels, one from PE4 to PE2 going over the red link and one from PE3 to PE1 going over the black link.

Regards

Antonio_1_2 Thu, 10/16/2008 - 04:56

Hi Harold,

So there is no loadsharing in MPLS using OSPF only with TE? I thought that CEF is always used as switching mechanisam regradles MPLS or IP routing. This is not true?

Regards.

Harold Ritter Thu, 10/16/2008 - 06:50

Hi Antonio,

There is load balancing without MPLS TE but the hashing value is derived from the VC label. If you had a substantial number of VC labels, you would probably see fair load balancing between the two links. In your case, since you only have two VC labels, it might just happen that the hashing result for both of them will end up selecting the same link. MPLS TE will dictate the link that each one takes.

Regards

mheusing Thu, 10/16/2008 - 07:24

Hi Antonio,

You could also use static routes for the PE loopback IPs used for EoMPLS. Let the static route for one Loopback point towards one link IP next hop address and another static for the other Loopback to the second link. The same story in the opposite direction. In case you do not want to affect other traffic towards the destination PE routers, you could setup a separate Loopback for EoMPLS.

This approach provides the manual control you need, but likely a bit simpler than MPLS TE, if it is only for two VCs.

Hope this helps!

Regards,

Martin

Antonio_1_2 Fri, 10/17/2008 - 00:18

Hi,

Can you just clarify me which command I use on PE4 in order to see which outgoing interface uses EoMPLS VLAN11. For EoMPLS VLAN 12 I use show mpls l2transport vc 12, but I can't use this command for vlan12 because it originates on PE3. On PE4 EoMPLS vlan11 should be MPLS packet. So do I use show mpls forwarding-table 192.168.0.5 detail (or maybe show ip cef exact-route).

In the output below you can see both outgoing interfaces Gi1/0/0(black link) and Gi2/0/0(red). I can't see which one it uses.

PE4#sh mpls forwarding-table 192.168.0.5 32 detail

Local Outgoing Prefix Bytes Label Outgoing Next Hop

Label Label or VC or Tunnel Id Switched interface

395 134 192.168.0.5/32 1573173346488 Gi1/0/0 10.10.1.189

MAC/Encaps=14/18, MRU=9216, Label Stack{134}

001563F33EC0001C0F5C92C08847 00086000

No output feature configured

Per-destination load-sharing, slots: 0 2 4 6 8 10 12 14

134 192.168.0.5/32 130361493 Gi2/0/0 10.10.1.197

MAC/Encaps=14/18, MRU=9216, Label Stack{134}

001563F33EC0001C0F5C92C08847 00086000

No output feature configured

Per-destination load-sharing, slots: 1 3 5 7 9 11 13 15

and for CEF otputs are:

PE4#sh ip cef exact-route 192.168.0.1 192.168.0.5

192.168.0.1 -> 192.168.0.5 => label 134 TAG adj out of GigabitEthernet1/0/0, addr 10.10.1.189

But since PE4 is Cisco7600 this command should be relevant and its output shows that Gi2/0/0 as ougoing interface(red link)

PE4#sh mls cef exact-route 192.168.0.1 192.168.0.5

Interface: Gi2/0/0, Next Hop: 10.10.1.197, Vlan: 1023, Destination Mac: 0015.63f3.3ec0

Correct Answer
Giuseppe Larosa Fri, 10/17/2008 - 04:55

Hello Antonio,

you're right the sh mpls l2transport vc detail can be used only on EoMPLS endpoints.

How to find a sh command for the forwarding decisions on P router PE4:

probably sh ip cef exact-route looks like the right one because it reflects the observed behaviour and MPLS is built on CEF.

The sh mls cef is platform specific and could apply only to IPv4 traffic between the specified endpoints (not MPLS aware)

I think that Martin's suggestions could be tried or the use of MPLS traffic-engineering.

You could also define additional loopback addresses to be used for setting up EoMPLS that are even (like 192.168.20.2).

Or even to see the dependency on inner label value:

in a maintanence window delete the EoMPLS and rebuild it in the hope this time they will use a different inner label value.

Hope to help

Giuseppe

frenzeus Fri, 10/24/2008 - 22:45

Hi, has anyone got links with info pertaining to how the load sharing occurs for the label stacks? Appreciate any pointers to this.

Tx.

Actions

This Discussion