ON THIS PAGE
Example: Configuring Multicast Load Balancing over Aggregated Ethernet Links
This example shows how to configure point-to-multipoint LSPs to load balance across aggregated Ethernet links. The load balancing applies to all traffic types, including multicast. Feature parity for multicast load balancing of point-to-multipoint LSPs over aggregated Ethernet child links on the MX Series routers with MPCs or MICs is supported in Junos OS Releases 11.1R2, 11.2R2, and 11.4.
VPLS multicast load balancing requires Junos OS Release 14.1 or later.
Requirements
Before you begin:
-
Configure the router interfaces.
-
Configure an interior gateway protocol or static routing. See the Junos OS Routing Protocols Library for Routing Devices.
Overview
This example shows a sample topology and configuration to perform the following tasks:
-
Load balancing VPLS multicast traffic over link aggregation
-
Load balancing point-to-multipoint multicast traffic over link aggregation
-
Re-load balancing after a change in the next-hop topology
Next-hop topology changes might include but are not limited to:
-
Layer 2 membership change in the link aggregation
-
Indirect next-hop change
-
Composite next-hop change
-
Load balancing is hash-based, so the higher the number of flows, the better. As is the case with unicast, you can also configure the hash key to be based on Layer 3 and Layer 4 information to achieve a better load-balancing result. There are a few exceptions that are specific to multicast traffic, which might lead to uneven load balancing—for example, when the outgoing interface list includes multiple aggregated interfaces with an unequal number of child links.
For Draft Rosen multicast VPNs (MVPNs), load balancing over aggregated Ethernet interfaces is uneven when the LAGs are all core interfaces. In the case of Next-Generation MBGP MPVNs, multicast traffic is sent over point-to-multipoint and RSVP, and the hash is computed up to the IP headers. In the Draft Rosen case, multicast traffic is tunneled over GRE tunnels, and the hash is used only on GRE tunnel headers. This is why load balancing is not even for Draft Rosen when the LAGs are all core interfaces.
Topology
Figure 1 shows the topology for this example. The example includes the configuration for Devices PE1 and PE2.
Configuration
Procedure
CLI Quick Configuration
To quickly configure this example, copy the following commands, paste them
into a text file, remove any line breaks, change any details necessary to
match your network configuration, and then copy and paste the commands into
the CLI at the [edit]
hierarchy level.
Device PE1
[edit] set forwarding-options hash-key family multiservice source-mac set forwarding-options hash-key family multiservice destination-mac set forwarding-options hash-key family multiservice payload ip layer-3 set interfaces ge-0/0/6 gigether-options 802.3ad ae0 set interfaces ge-0/1/6 gigether-options 802.3ad ae0 set interfaces ge-0/2/2 encapsulation ethernet-vpls set interfaces ge-0/2/2 unit 0 family vpls set interfaces ge-0/2/3 gigether-options 802.3ad ae0 set interfaces ge-0/2/6 gigether-options 802.3ad ae0 set interfaces ge-0/3/0 gigether-options 802.3ad ae0 set interfaces ge-0/3/1 gigether-options 802.3ad ae0 set interfaces ge-0/3/6 gigether-options 802.3ad ae0 set interfaces ge-1/0/6 gigether-options 802.3ad ae0 set interfaces ge-1/2/6 unit 0 family inet address 10.13.1.2/30 set interfaces ae0 unit 0 family inet address 10.11.11.1/30 set interfaces ae0 unit 0 family iso set interfaces ae0 unit 0 family mpls set policy-options policy-statement exp-to-fwd term a from community grn-com set policy-options policy-statement exp-to-fwd term a then install-nexthop lsp PE1-to-PE2 set policy-options policy-statement exp-to-fwd term a then accept set policy-options community grn-com members target:65000:1 set protocols rsvp interface all set protocols rsvp interface fxp0.0 disable set protocols mpls label-switched-path PE1-to-PE2 to 10.255.19.77 set protocols mpls label-switched-path PE1-to-PE3 to 10.255.19.79 set protocols mpls interface all set protocols mpls interface fxp0.0 disable set protocols bgp group int type internal set protocols bgp group int local-address 10.255.71.214 set protocols bgp group int family inet any set protocols bgp group int family l2vpn signaling set protocols bgp group int neighbor 10.255.19.77 set protocols bgp group int neighbor 10.255.19.79 set protocols ospf traffic-engineering set protocols ospf area 0.0.0.0 interface all set protocols ospf area 0.0.0.0 interface fxp0.0 disable set routing-instances vpls instance-type vpls set routing-instances vpls interface ge-0/2/2.0 set routing-instances vpls route-distinguisher 65000:1 set routing-instances vpls vrf-target target:65000:1 set routing-instances vpls protocols vpls site-range 3 set routing-instances vpls protocols vpls no-tunnel-services set routing-instances vpls protocols vpls site asia site-identifier 1 set routing-instances vpls protocols vpls site asia interface ge-0/2/2.0 set routing-instances vpls protocols vpls vpls-id 100 set routing-instances vpls protocols vpls bum-hashing
Device PE2
set interfaces ge-0/0/7 gigether-options 802.3ad ae0 set interfaces ge-0/1/7 gigether-options 802.3ad ae0 set interfaces ge-0/2/3 gigether-options 802.3ad ae0 set interfaces ge-0/2/7 gigether-options 802.3ad ae0 set interfaces ge-2/0/0 gigether-options 802.3ad ae1 set interfaces ge-2/0/1 gigether-options 802.3ad ae1 set interfaces ge-2/0/2 gigether-options 802.3ad ae1 set interfaces ge-2/0/4 encapsulation ethernet-vpls set interfaces ge-2/0/4 unit 0 family vpls set interfaces ge-2/0/7 gigether-options 802.3ad ae0 set interfaces ge-2/0/9 unit 0 family inet address 10.10.1.1/30 set interfaces ge-2/0/9 unit 0 family mpls set interfaces ge-2/1/7 gigether-options 802.3ad ae0 set interfaces ge-2/2/7 gigether-options 802.3ad ae0 set interfaces ge-2/3/7 gigether-options 802.3ad ae0 set interfaces ae0 unit 0 family inet address 10.11.11.2/30 set interfaces ae0 unit 0 family iso set interfaces ae0 unit 0 family mpls set interfaces ae1 unit 0 family inet address 10.1.1.1/30 set interfaces ae1 unit 0 family mpls set protocols rsvp interface all set protocols rsvp interface fxp0.0 disable set protocols mpls label-switched-path PE2-to-PE3 from 10.255.19.77 set protocols mpls label-switched-path PE2-to-PE3 to 10.255.19.79 set protocols mpls label-switched-path PE2-to-PE1 to 10.255.71.214 set protocols mpls interface all set protocols mpls interface fxp0.0 disable set protocols bgp group int type internal set protocols bgp group int local-address 10.255.19.77 set protocols bgp group int family inet any set protocols bgp group int family l2vpn signaling set protocols bgp group int neighbor 10.255.71.214 set protocols bgp group int neighbor 10.255.19.79 set protocols ospf traffic-engineering set protocols ospf area 0.0.0.0 interface lo0.0 set protocols ospf area 0.0.0.0 interface ge-2/0/0.0 set protocols ospf area 0.0.0.0 interface ge-2/0/1.0 set protocols ospf area 0.0.0.0 interface ge-2/0/2.0 set protocols ospf area 0.0.0.0 interface ae0.0 set protocols ospf area 0.0.0.0 interface ae1.0 set protocols ospf area 0.0.0.0 interface all set protocols ospf area 0.0.0.0 interface fxp0.0 disable set protocols ldp interface all set protocols ldp interface fxp0.0 disable set routing-instances vpls instance-type vpls set routing-instances vpls interface ge-2/0/4.0 set routing-instances vpls route-distinguisher 65000:1 set routing-instances vpls vrf-target target:65000:1 set routing-instances vpls protocols vpls site-range 3 set routing-instances vpls protocols vpls no-tunnel-services set routing-instances vpls protocols vpls site 2 site-identifier 2 set routing-instances vpls protocols vpls site 2 interface ge-2/0/4.0 set routing-instances vpls protocols vpls vpls-id 100 set routing-instances vpls protocols vpls bum-hashing
Step-by-Step Procedure
To configure Device PE1:
-
Configure Device PE1 interfaces.
[edit interfaces] user@PE1# set ge-0/0/6 gigether-options 802.3ad ae0 user@PE1# set ge-0/1/6 gigether-options 802.3ad ae0 user@PE1# set ge-0/2/2 encapsulation ethernet-vpls user@PE1# set ge-0/2/2 unit 0 family vpls user@PE1# set ge-0/2/3 gigether-options 802.3ad ae0 user@PE1# set ge-0/2/6 gigether-options 802.3ad ae0 user@PE1# set ge-0/3/0 gigether-options 802.3ad ae0 user@PE1# set ge-0/3/1 gigether-options 802.3ad ae0 user@PE1# set ge-0/3/6 gigether-options 802.3ad ae0 user@PE1# set ge-1/0/6 gigether-options 802.3ad ae0 user@PE1# set ge-1/2/6 unit 0 family inet address 10.1.1.2/30 user@PE1# set ae0 unit 0 family inet address 10.11.11.1/30 user@PE1# set ae0 unit 0 family iso user@PE1# set ae0 unit 0 family mpls
-
On Device PE1, configure the packet header data to be used for per-flow load balancing.
[edit forwarding-options hash-key family multiservice] user@PE1# set source-mac user@PE1# set destination-mac user@PE1# set payload ip layer-3
-
Configure the routing policy on Device PE1.
[edit policy-options] user@PE1# set policy-statement exp-to-fwd term a from community grn-com user@PE1# set policy-statement exp-to-fwd term a then install-nexthop lsp PE1-to-PE2 user@PE1# set policy-statement exp-to-fwd term a then accept user@PE1# set policy-options community grn-com members target:65000:1
-
Configure Device PE1 routing protocols and MPLS.
[edit protocols] user@PE1# set rsvp interface all user@PE1# set rsvp interface fxp0.0 disable user@PE1# set mpls label-switched-path PE1-to-PE2 to 10.255.19.77 user@PE1# set mpls label-switched-path PE1-to-PE3 to 10.255.19.79 user@PE1# set mpls interface all user@PE1# set mpls interface fxp0.0 disable user@PE1# set bgp group int type internal user@PE1# set bgp group int local-address 10.255.71.214 user@PE1# set bgp group int family inet any user@PE1# set bgp group int family l2vpn signaling user@PE1# set bgp group int neighbor 10.255.19.77 user@PE1# set bgp group int neighbor 10.255.19.79 user@PE1# set ospf traffic-engineering user@PE1# set ospf area 0.0.0.0 interface all user@PE1# set ospf area 0.0.0.0 interface fxp0.0 disable
-
Configure VPLS on Device PE1.
[edit routing-instances vpls] user@PE1# set instance-type vpls user@PE1# set interface ge-0/2/2.0 user@PE1# set route-distinguisher 65000:1 user@PE1# set vrf-target target:65000:1 user@PE1# set protocols vpls site-range 3 user@PE1# set protocols vpls no-tunnel-services user@PE1# set protocols vpls site asia site-identifier 1 user@PE1# set protocols vpls site asia interface ge-0/2/2.0 user@PE1# set protocols vpls vpls-id 100 user@PE1# set protocols vpls bum-hashing
Step-by-Step Procedure
To configure Device PE2:
-
Configure Device PE2 interfaces.
[edit interfaces] user@PE2# set ge-0/0/7 gigether-options 802.3ad ae0 user@PE2# set ge-0/1/7 gigether-options 802.3ad ae0 user@PE2# set ge-0/2/3 gigether-options 802.3ad ae0 user@PE2# set ge-0/2/7 gigether-options 802.3ad ae0 user@PE2# set ge-2/0/0 gigether-options 802.3ad ae1 user@PE2# set ge-2/0/1 gigether-options 802.3ad ae1 user@PE2# set ge-2/0/2 gigether-options 802.3ad ae1 user@PE2# set ge-2/0/4 encapsulation ethernet-vpls user@PE2# set ge-2/0/4 unit 0 family vpls user@PE2# set ge-2/0/7 gigether-options 802.3ad ae0 user@PE2# set ge-2/0/9 unit 0 family inet address 10.10.1.1/30 user@PE2# set ge-2/0/9 unit 0 family mpls user@PE2# set ge-2/1/7 gigether-options 802.3ad ae0 user@PE2# set ge-2/2/7 gigether-options 802.3ad ae0 user@PE2# set ge-2/3/7 gigether-options 802.3ad ae0 user@PE2# set ae0 unit 0 family inet address 10.11.11.2/30 user@PE2# set ae0 unit 0 family iso user@PE2# set ae0 unit 0 family mpls user@PE2# set ae1 unit 0 family inet address 10.1.1.1/30 user@PE2# set ae1 unit 0 family mpls
-
Configure Device PE2 routing protocols and MPLS.
[edit protocols] user@PE2# set rsvp interface all user@PE2# set rsvp interface fxp0.0 disable user@PE2# set mpls label-switched-path PE2-to-PE3 from 10.255.19.77 user@PE2# set mpls label-switched-path PE2-to-PE3 to 10.255.19.79 user@PE2# set mpls label-switched-path PE2-to-PE1 to 10.255.71.214 user@PE2# set mpls interface all user@PE2# set mpls interface fxp0.0 disable user@PE2# set bgp group int type internal user@PE2# set bgp group int local-address 10.255.19.77 user@PE2# set bgp group int family inet any user@PE2# set bgp group int family l2vpn signaling user@PE2# set bgp group int neighbor 10.255.71.214 user@PE2# set bgp group int neighbor 10.255.19.79 user@PE2# set ospf traffic-engineering user@PE2# set ospf area 0.0.0.0 interface lo0.0 user@PE2# set ospf area 0.0.0.0 interface ge-2/0/0.0 user@PE2# set ospf area 0.0.0.0 interface ge-2/0/1.0 user@PE2# set ospf area 0.0.0.0 interface ge-2/0/2.0 user@PE2# set ospf area 0.0.0.0 interface ae0.0 user@PE2# set ospf area 0.0.0.0 interface ae1.0 user@PE2# set ospf area 0.0.0.0 interface all user@PE2# set ospf area 0.0.0.0 interface fxp0.0 disable user@PE2# set ldp interface all user@PE2# set ldp interface fxp0.0 disable
-
Configure VPLS on Device PE2.
[edit routing-instances vpls] user@PE2# set instance-type vpls user@PE2# set interface ge-2/0/4.0 user@PE2# set route-distinguisher 65000:1 user@PE2# set vrf-target target:65000:1 user@PE2# set protocols vpls site-range 3 user@PE2# set protocols vpls no-tunnel-services user@PE2# set protocols vpls site 2 site-identifier 2 user@PE2# set protocols vpls site 2 interface ge-2/0/4.0 user@PE2# set protocols vpls vpls-id 100 user@PE2# set protocols vpls bum-hashing
Results
From configuration mode, confirm your configuration by issuing the show
forwarding-options
, show interfaces
, show
protocols
, show policy-options
, and show
routing-options
commands. If the output does not display the
intended configuration, repeat the instructions in this example to correct the
configuration.
Device PE1
user@PE1# show forwarding-options hash-key { family multiservice { source-mac; destination-mac; payload { ip { layer-3; } } } }
user@PE1# show interfaces ge-0/0/6 { gigether-options { 802.3ad ae0; } } ge-0/1/6 { gigether-options { 802.3ad ae0; } } ge-0/2/2 { encapsulation ethernet-vpls; unit 0 { family vpls; } } ge-0/2/3 { gigether-options { 802.3ad ae0; } } ge-0/2/6 { gigether-options { 802.3ad ae0; } } ge-0/3/0 { gigether-options { 802.3ad ae0; } } ge-0/3/1 { gigether-options { 802.3ad ae0; } } ge-0/3/6 { gigether-options { 802.3ad ae0; } } ge-1/0/6 { gigether-options { 802.3ad ae0; } } ge-1/2/6 { unit 0 { family inet { address 10.1.1.2/30; } } } ae0 { unit 0 { family inet { address 10.11.11.1/30; } family iso; family mpls; } }
user@PE1# show protocols mpls { interface all; interface fxp0.0 { disable; } label-switched-path PE1-to-PE2 { to 10.255.19.77; } label-switched-path PE1-to-PE3 { to 10.255.19.79; } } rsvp { interface all; interface fxp0.0 { disable; } } bgp { group int { type internal; local-address 10.255.71.214; family inet { any; } family l2vpn { signaling; } neighbor 10.255.19.77; neighbor 10.255.19.79; } } ospf { traffic-engineering; area 0.0.0.0 { interface all; interface fxp0.0 { disable; } } }
user@PE1# show policy-options policy-statement exp-to-fwd { term a { from community grn-com; then { install-nexthop lsp PE1-to-PE2; accept; } } } community grn-com members target:65000:1;
user@PE1# show routing-instances vpls { instance-type vpls; interface ge-0/2/2.0; route-distinguisher 65000:1; vrf-target target:65000:1; protocols { vpls { site-range 3; no-tunnel-services; site asia { site-identifier 1; interface ge-0/2/2.0; } vpls-id 100; bum-hashing; } } }
Device PE2
user@PE2# show interfaces ge-0/0/7 { gigether-options { 802.3ad ae0; } } ge-0/1/7 { gigether-options { 802.3ad ae0; } } ge-0/2/3 { gigether-options { 802.3ad ae0; } } ge-0/2/7 { gigether-options { 802.3ad ae0; } } ge-2/0/0 { gigether-options { 802.3ad ae1; } } ge-2/0/1 { gigether-options { 802.3ad ae1; } } ge-2/0/2 { gigether-options { 802.3ad ae1; } } ge-2/0/4 { encapsulation ethernet-vpls; unit 0 { family vpls; } } ge-2/0/7 { gigether-options { 802.3ad ae0; } } ge-2/0/9 { unit 0 { family inet { address 10.10.1.1/30; } family mpls; } } ge-2/1/7 { gigether-options { 802.3ad ae0; } } ge-2/2/7 { gigether-options { 802.3ad ae0; } } ge-2/3/7 { gigether-options { 802.3ad ae0; } } ae0 { unit 0 { family inet { address 10.11.11.2/30; } family iso; family mpls; } } ae1 { unit 0 { family inet { address 10.1.1.1/30; } family mpls; } }
user@PE2# show protocols rsvp { interface all; interface fxp0.0 { disable; } } mpls { label-switched-path PE2-to-PE3 { from 10.255.19.77; to 10.255.19.79; } label-switched-path PE2-to-PE1 { to 10.255.71.214; } interface all; interface fxp0.0 { disable; } } bgp { group int { type internal; local-address 10.255.19.77; family inet { any; } family l2vpn { signaling; } neighbor 10.255.71.214; neighbor 10.255.19.79; } } ospf { traffic-engineering; area 0.0.0.0 { interface lo0.0; interface ge-2/0/0.0; interface ge-2/0/1.0; interface ge-2/0/2.0; interface ae0.0; interface ae1.0; interface all; interface fxp0.0 { disable; } } } ldp { interface all; interface fxp0.0 { disable; } }
user@PE2# show routing-instances vpls { instance-type vpls; interface ge-2/0/4.0; route-distinguisher 65000:1; vrf-target target:65000:1; protocols { vpls { site-range 3; no-tunnel-services; site 2 { site-identifier 2; interface ge-2/0/4.0; } vpls-id 100; bum-hashing; } } }
Verification
You can monitor the operation of the routing instance by running the show
interfaces ae1.0 extensive
and monitor interface
traffic
commands.
For troubleshooting, you can configure tracing operations for all of the protocols.