Load-balance problem using VPLS as transport

  • 0
  • 1
  • Problem
  • Updated 2 years ago
  • Solved
Hi, everyone!

Here is lab network to test balancing on client ports on Extreme Network switches (X460 in lab, but we have the same problem with X670-G2 in production).
We are interested in sharing group 21 (ports 21, 22) on X460-1.



From Agilent (IP tester) IP traffic goes to Lab-M01 to 18 different VRFs (1001-1009 and 2001-2009). Lab-M01 sends out traffic in VRF 1001 through 1009 with one MPLS label, in VRF 2001 through 2009 with two MPLS labels. When we configure X460-1 and X460-2 as simple L2 switches with one vlan from sharing group 21 on X460-1 to sharing group 21 on X460-2, then balancing works. 

1 MPLS label:

X460-1.8 # sh port 21,22,28 utilization packets 
Port     Link    Rx              Peak Rx          Tx               Peak Tx
         State   pkts/sec        pkts/sec         pkts/sec         pkts/sec
================================================================================
21        A             0              1             6632            8034
22        A             0              0            13238           16037
28        A         19857          23909                0               1
================================================================================

2 MPLS labels:

X460-1.10 # sh port 21,22,28 utilization packets 
Port     Link    Rx              Peak Rx          Tx               Peak Tx
         State   pkts/sec        pkts/sec         pkts/sec         pkts/sec
================================================================================
21        A             2              3             8725           10678
22        A             0              1            13118           13208
28        A         23657          23731                3               3
================================================================================

The problem is that when we configure VPLS on X460-1 and X460-2 to pass the same traffic balancing stops working. All traffic goes to one port (either 21 or 22 depending...).
What can we do to make balancing work with VPLS?

Thanks,
Anatoly
Photo of Anatoly Machekhin

Anatoly Machekhin

  • 290 Points 250 badge 2x thumb

Posted 2 years ago

  • 0
  • 1
Photo of Grosjean, Stephane

Grosjean, Stephane, Employee

  • 12,592 Points 10k badge 2x thumb
This is a LAG, correct? What config is on it (algo, hashing)? I'd recommend custom there. If not good enough, since 15.4 we have a feature - LSP Load Sharing - (for VPLS and RSVP-TE) to distribute the traffic more efficiently, using more LSPs (p.1123 of 22.1 User Guide).
Photo of Anatoly Machekhin

Anatoly Machekhin

  • 290 Points 250 badge 2x thumb
Here is information on X460:
X460-1.1 # sh conf | i sharing
enable sharing 21 grouping 21-22 algorithm address-based custom lacp
X460-1.2 # sho sharing
Load Sharing Monitor
Config    Current Agg     Min    Ld Share  Flags Ld Share  Agg Link  Link Up
Master    Master  Control Active Algorithm       Group     Mbr State Transitions
================================================================================
    21     21     LACP       1    custom    A     21        Y     A       2
                                  custom          22        Y     A       0
================================================================================
Link State: A-Active, D-Disabled, R-Ready, NP-Port not present, L-Loopback
Minimum Active: (<) Group is down. # active links less than configured minimum
Load Sharing Algorithm: (L2) Layer 2 address based, (L3) Layer 3 address based
                        (L3_L4) Layer 3 address and Layer 4 port based
                        (custom) User-selected address-based configuration
Custom Algorithm Configuration: ipv4 L3-and-L4, xor
Distribution Mode Flags:
        A - All: Distribute to all members
        L - Local Slot: Distribute to members local to ingress slot
        P - Port Lists: Distribute to per-slot configurable subset of members
Number of load sharing trunks: 1
(Edited)
Photo of Grosjean, Stephane

Grosjean, Stephane, Employee

  • 12,592 Points 10k badge 2x thumb
Then configure LSP load sharing.
Photo of Anatoly Machekhin

Anatoly Machekhin

  • 290 Points 250 badge 2x thumb
In our lab test we have one LDP LSP for VPLS. It goes from X460-2 to X460-1. It does not go through sharing group 21 to customer equipment.

X460-1.1 # sho mpls ldp lsp  Prefix            Adv Label Peer Label Next Hop        VLAN            
10.0.0.1/32        0x00434   --         --              LB1              
10.0.0.2/32        --        0x00434    172.22.0.2      VLAN_12          
Photo of Korsovsky, Konstantin

Korsovsky, Konstantin, Employee

  • 686 Points 500 badge 2x thumb
Hi Anatoly,
we had discussion within service case but this is just to share with community.

 As Stephane said we can utilize LSP load sharing feature. Here are examples from my lab:

Test 1
Description: single VPLS tunnel without LSP load sharing



Sharing algorithm cannot distribute packets across sharing group member ports because packet headers are almost the same.

Test 2
Description: single VPLS tunnel with LSP load sharing



In this case packets from test-flows are shared between several LSPs and it makes MPLS labels to be different for the different packets from the same VPLS tunnel:
X670G2-48X[L5:U32].14 # show mpls statistics l2vpn 

L2VPN Name
Peer IP/LSP Flags RxPackets RxBytes TxPackets TxBytes
----------------------------------------------------------------------------------------------------------
VPLS_VPN
10.0.0.35 U 2920 227552 15099705 1298574028
LSP1 + 360 28720 1886864 162270218
LSP2 + 370 29760 1885514 162153946
LSP3 + 342 28200 1885072 162116106
LSP4 + 350 28562 1888660 162424674
LSP5 + 381 27602 1887981 162366366
LSP6 + 372 28002 1887950 162363700
LSP7 + 375 27200 1888686 162426910
LSP8 + 370 29506 1888978 162452108

Here is configuration example for this setup:
#
# Module mpls configuration.
#
configure mpls add vlan "lo0"
enable mpls vlan "lo0"
enable mpls rsvp-te vlan "lo0"
enable mpls ldp vlan "lo0"
configure mpls add vlan "v3233"
enable mpls vlan "v3233"
enable mpls rsvp-te vlan "v3233"
enable mpls ldp vlan "v3233"
create mpls rsvp-te path "lsp-path"
create mpls rsvp-te lsp "LSP1" destination 10.0.0.35
create mpls rsvp-te lsp "LSP2" destination 10.0.0.35
create mpls rsvp-te lsp "LSP3" destination 10.0.0.35
create mpls rsvp-te lsp "LSP4" destination 10.0.0.35
create mpls rsvp-te lsp "LSP5" destination 10.0.0.35
create mpls rsvp-te lsp "LSP6" destination 10.0.0.35
create mpls rsvp-te lsp "LSP7" destination 10.0.0.35
create mpls rsvp-te lsp "LSP8" destination 10.0.0.35
configure mpls rsvp-te lsp "LSP1" add path "lsp-path" primary
configure mpls rsvp-te lsp "LSP2" add path "lsp-path" primary
configure mpls rsvp-te lsp "LSP3" add path "lsp-path" primary
configure mpls rsvp-te lsp "LSP4" add path "lsp-path" primary
configure mpls rsvp-te lsp "LSP5" add path "lsp-path" primary
configure mpls rsvp-te lsp "LSP6" add path "lsp-path" primary
configure mpls rsvp-te lsp "LSP7" add path "lsp-path" primary
configure mpls rsvp-te lsp "LSP8" add path "lsp-path" primary
configure mpls lsr-id 10.0.0.32
enable mpls protocol ldp
enable mpls protocol rsvp-te
enable mpls
create l2vpn vpls VPLS_VPN fec-id-type pseudo-wire 111
configure l2vpn vpls VPLS_VPN add service vlan v1000
enable l2vpn sharing
configure l2vpn vpls VPLS_VPN add peer 10.0.0.35 core full-mesh
configure l2vpn vpls VPLS_VPN peer 10.0.0.35 add mpls lsp LSP1
configure l2vpn vpls VPLS_VPN peer 10.0.0.35 add mpls lsp LSP2
configure l2vpn vpls VPLS_VPN peer 10.0.0.35 add mpls lsp LSP3
configure l2vpn vpls VPLS_VPN peer 10.0.0.35 add mpls lsp LSP4
configure l2vpn vpls VPLS_VPN peer 10.0.0.35 add mpls lsp LSP5
configure l2vpn vpls VPLS_VPN peer 10.0.0.35 add mpls lsp LSP6
configure l2vpn vpls VPLS_VPN peer 10.0.0.35 add mpls lsp LSP7
configure l2vpn vpls VPLS_VPN peer 10.0.0.35 add mpls lsp LSP8
As you can see traffic can be well distributed across links when sharing algorithm can get packets with different MPLS labels.

Test 3

Description: single LSP and multiply source ports involved in sharing


In this example sharing algorithm can use information about source ports to better distribute traffic across ports in sharing group.
(Edited)