- play_arrow Overview
- play_arrow Managing Group Membership
- play_arrow Configuring IGMP and MLD
- play_arrow Configuring IGMP Snooping
- IGMP Snooping Overview
- Overview of Multicast Forwarding with IGMP Snooping or MLD Snooping in an EVPN-VXLAN Environment
- Configuring IGMP Snooping on Switches
- Example: Configuring IGMP Snooping on Switches
- Example: Configuring IGMP Snooping on EX Series Switches
- Verifying IGMP Snooping on EX Series Switches
- Changing the IGMP Snooping Group Timeout Value on Switches
- Monitoring IGMP Snooping
- Example: Configuring IGMP Snooping
- Example: Configuring IGMP Snooping on SRX Series Devices
- Configuring Point-to-Multipoint LSP with IGMP Snooping
- play_arrow Configuring MLD Snooping
- Understanding MLD Snooping
- Configuring MLD Snooping on an EX Series Switch VLAN (CLI Procedure)
- Configuring MLD Snooping on a Switch VLAN with ELS Support (CLI Procedure)
- Example: Configuring MLD Snooping on EX Series Switches
- Example: Configuring MLD Snooping on SRX Series Devices
- Configuring MLD Snooping Tracing Operations on EX Series Switches (CLI Procedure)
- Configuring MLD Snooping Tracing Operations on EX Series Switch VLANs (CLI Procedure)
- Example: Configuring MLD Snooping on EX Series Switches
- Example: Configuring MLD Snooping on Switches with ELS Support
- Verifying MLD Snooping on EX Series Switches (CLI Procedure)
- Verifying MLD Snooping on Switches
- play_arrow Configuring Multicast VLAN Registration
-
- play_arrow Configuring Protocol Independent Multicast
- play_arrow Understanding PIM
- play_arrow Configuring PIM Basics
- Configuring Different PIM Modes
- Configuring Multiple Instances of PIM
- Changing the PIM Version
- Optimizing the Number of Multicast Flows on QFabric Systems
- Modifying the PIM Hello Interval
- Preserving Multicast Performance by Disabling Response to the ping Utility
- Configuring PIM Trace Options
- Configuring BFD for PIM
- Configuring BFD Authentication for PIM
- play_arrow Routing Content to Densely Clustered Receivers with PIM Dense Mode
- play_arrow Routing Content to Larger, Sparser Groups with PIM Sparse Mode
- Understanding PIM Sparse Mode
- Examples: Configuring PIM Sparse Mode
- Configuring Static RP
- Example: Configuring Anycast RP
- Configuring PIM Bootstrap Router
- Understanding PIM Auto-RP
- Configuring All PIM Anycast Non-RP Routers
- Configuring a PIM Anycast RP Router with MSDP
- Configuring Embedded RP
- Configuring PIM Filtering
- Examples: Configuring PIM RPT and SPT Cutover
- Disabling PIM
- play_arrow Configuring Designated Routers
- play_arrow Receiving Content Directly from the Source with SSM
- Understanding PIM Source-Specific Mode
- Example: Configuring Source-Specific Multicast
- Example: Configuring PIM SSM on a Network
- Example: Configuring an SSM-Only Domain
- Example: Configuring SSM Mapping
- Example: Configuring Source-Specific Multicast Groups with Any-Source Override
- Example: Configuring SSM Maps for Different Groups to Different Sources
- play_arrow Minimizing Routing State Information with Bidirectional PIM
- play_arrow Rapidly Detecting Communication Failures with PIM and the BFD Protocol
- play_arrow Configuring PIM Options
- play_arrow Verifying PIM Configurations
-
- play_arrow Configuring Multicast Routing Protocols
- play_arrow Connecting Routing Domains Using MSDP
- play_arrow Handling Session Announcements with SAP and SDP
- play_arrow Facilitating Multicast Delivery Across Unicast-Only Networks with AMT
- play_arrow Routing Content to Densely Clustered Receivers with DVMRP
-
- play_arrow General Multicast Options
- play_arrow Bit Index Explicit Replication (BIER)
- play_arrow Prevent Routing Loops with Reverse Path Forwarding
- play_arrow Use Multicast-Only Fast Reroute (MoFRR) to Minimize Packet Loss During Link Failures
- play_arrow Enable Multicast Between Layer 2 and Layer 3 Devices Using Snooping
- play_arrow Configure Multicast Routing Options
- play_arrow Controller-Based BGP Multicast Signaling
-
- play_arrow Troubleshooting
- play_arrow Knowledge Base
-
- play_arrow Configuration Statements and Operational Commands
Example: Configuring PIM Make-Before-Break Join Load Balancing
Understanding the PIM Automatic Make-Before-Break Join Load-Balancing Feature
The PIM automatic make-before-break (MBB) join load-balancing feature introduces redistribution of PIM joins on equal-cost multipath (ECMP) links, with minimal disruption of traffic, when an interface is added to an ECMP path.
The existing PIM join load-balancing feature enables distribution
of joins across ECMP links. In case of a link failure, the joins are
redistributed among the remaining ECMP links, and traffic is lost.
The addition of an interface causes no change to this distribution
of joins unless the clear pim join-distribution
command
is used to load-balance the existing joins to the new interface.
If the PIM automatic MBB join load-balancing feature is configured,
this process takes place automatically.
The feature can be enabled by using the automatic
statement at the [edit protocols pim join-load-balance]
hierarchy level. When a new neighbor is available, the time taken
to create a path to the neighbor (standby path) can be configured
by using the standby-path-creation-delay seconds
statement at the [edit protocols pim]
hierarchy
level. In the absence of this statement, the standby path is created
immediately, and the joins are redistributed as soon as the new neighbor
is added to the network. For a join to be moved to the standby path
in the absence of traffic, the idle-standby-path-switchover-delay seconds
statement is configured at the [edit
protocols pim]
hierarchy level. In the absence of this statement,
the join is not moved until traffic is received on the standby path.
protocols { pim { join-load-balance { automatic; } standby-path-creation-delay seconds; idle-standby-path-switchover-delay seconds; } }
Example: Configuring PIM Make-Before-Break Join Load Balancing
This example shows how to configure the PIM make-before-break (MBB) join load-balancing feature.
Requirements
This example uses the following hardware and software components:
Three routers that can be a combination of M Series Multiservice Edge Routers (M120 and M320 only), MX Series 5G Universal Routing Platforms, or T Series Core Routers (TX Matrix and TX Matrix Plus only).
Junos OS Release 12.2 or later.
Before you configure the MBB feature, be sure you have:
Configured the device interfaces.
Configured an interior gateway protocol (IGP) for both IPv4 and IPv6 routes on the devices (for example, OSPF and OSPFv3).
Configured multiple ECMP interfaces (logical tunnels) using VLANs on any two routers (for example, Routers R1 and R2).
Overview
Junos OS provides a PIM automatic MBB join load-balancing feature to ensure that PIM joins are evenly redistributed to all upstream PIM neighbors on an equal-cost multipath (ECMP) path. When an interface is added to an ECMP path, MBB provides a switchover to an alternate path with minimal traffic disruption.
Topology
In this example, three routers are connected in a linear manner between source and receiver. An IGP protocol and PIM sparse mode are configured on all three routers. The source is connected to Router R0, and five interfaces are configured between Routers R1 and R2. The receiver is connected to Router R2, and PIM automatic MBB join load balancing is configured on Router R2.
Figure 1 shows the topology used in this example.

Configuration
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.
Router R0 (Source)
set protocols pim interface all mode sparse set protocols pim interface all version 2 set protocols pim rp static address 10.255.12.34 set protocols pim rp static address abcd::10:255:12:34
Router R1 (RP)
set protocols pim interface all mode sparse set protocols pim interface all version 2 set protocols pim rp local family inet address 10.255.12.34 set protocols pim rp local family inet6 address abcd::10:255:12:34
Router R2 (Receiver)
set protocols pim interface all mode sparse set protocols pim interface all version 2 set protocols pim rp static address 10.255.12.34 set protocols pim rp static address abcd::10:255:12:34 set protocols mld interface ge-0/0/3 version 1 set protocols mld interface ge-0/0/3 static group ff05::e100:1 group-count 100 set protocols pim join load-balance automatic set protocols pim standby-path-creation-delay 5 set protocols pim idle-standby-path-switchover-delay 10
Configuring PIM MBB Join Load Balancing
Step-by-Step Procedure
The following example requires that you navigate various levels in the configuration hierarchy. For information about navigating the CLI, see Using the CLI Editor in Configuration Mode in the Junos OS CLI User Guide.
To configure PIM MBB join load balancing across the setup:
Configure PIM sparse mode on all three routers.
content_copy zoom_out_map[edit protocols pim interface all] user@host# set mode sparse user@host# set version 2
Configure Router R1 as the RP.
content_copy zoom_out_map[edit protocols pim rp local] user@R1# set family inet address 10.255.12.34 user@R1# set family inet6 address abcd::10:255:12:34
Configure the RP static address on non-RP routers (R0 and R2).
content_copy zoom_out_map[edit protocols pim rp ] user@host# set static address 10.255.12.34 user@host# set static address abcd::10:255:12:34
Configure the Multicast Listener Discovery (MLD) group for ECMP interfaces on Router R2.
content_copy zoom_out_map[edit protocols mld interface ge-0/0/3] user@R2# set version 1 user@R2# set static group ff05::e100:1 group-count 100
Configure the PIM MBB join load-balancing feature on the receiver router (Router R2).
content_copy zoom_out_map[edit protocols pim] user@R2# set join load-balance automatic user@R2# set standby-path-creation-delay 5 user@R2# set idle-standby-path-switchover-delay 10
Results
From configuration mode, confirm your configuration
by entering the show protocols
command. If the output does
not display the intended configuration, repeat the instructions in
this example to correct the configuration.
user@R0# show protocols ospf { area 0.0.0.0 { interface lo0.0; interface ge-0/0/3.1; interface ge-0/0/3.2; interface ge-0/0/3.3; interface ge-0/0/3.4; interface ge-0/0/3.5; } } ospf3 { area 0.0.0.0 { interface lo0.0; interface ge-0/0/3.1; interface ge-0/0/3.2; interface ge-0/0/3.3; interface ge-0/0/3.4; interface ge-0/0/3.5; } } pim { rp { static { address 10.255.12.34; address abcd::10:255:12:34; } } interface all { mode sparse; version 2; } interface fxp0.0 { disable; } interface ge-0/0/3.1; interface ge-0/0/3.2; interface ge-0/0/3.3; interface ge-0/0/3.4; interface ge-0/0/3.5; }
user@R1# show protocols ospf { area 0.0.0.0 { interface lo0.0; interface ge-0/0/3.1; interface ge-0/0/3.2; interface ge-0/0/3.3; interface ge-0/0/3.4; interface ge-0/0/3.5; } } ospf3 { area 0.0.0.0 { interface lo0.0; interface ge-0/0/3.1; interface ge-0/0/3.2; interface ge-0/0/3.3; interface ge-0/0/3.4; interface ge-0/0/3.5; } } pim { rp { local { family inet { address 10.255.12.34; } family inet6 { address abcd::10:255:12:34; } } } interface all { mode sparse; version 2; } interface fxp0.0 { disable; } interface ge-0/0/3.1; interface ge-0/0/3.2; interface ge-0/0/3.3; interface ge-0/0/3.4; interface ge-0/0/3.5; }
user@R2# show protocols mld { interface ge-0/0/3.1 { version 1; static { group ff05::e100:1 { group-count 100; } } } ospf { area 0.0.0.0 { interface lo0.0; interface ge-1/0/7.1; interface ge-1/0/7.2; interface ge-1/0/7.3; interface ge-1/0/7.4; interface ge-1/0/7.5; interface ge-0/0/3.1; } } ospf3 { area 0.0.0.0 { interface lo0.0; interface ge-1/0/7.1; interface ge-1/0/7.2; interface ge-1/0/7.3; interface ge-1/0/7.4; interface ge-1/0/7.5; interface ge-0/0/3.1; } } pim { rp { static { address 10.255.12.34; address abcd::10:255:12:34; } } interface all { mode sparse; version 2; } interface fxp0.0 { disable; } interface ge-1/0/7.1; interface ge-1/0/7.2; interface ge-1/0/7.3; interface ge-1/0/7.4; interface ge-1/0/7.5; interface ge-0/0/3.1; join-load-balance { automatic; } standby-path-creation-delay 5; idle-standby-path-switchover-delay 10; }
Verification
- Verifying Interface Configuration
- Verifying PIM
- Verifying the PIM Automatic MBB Join Load-Balancing Feature
Verifying Interface Configuration
Purpose
Verify that the configured interfaces are functional.
Action
Send 100 (S,G) joins from the receiver to Router R2 . From the operational mode of Router R2, run the show pim interfaces command.
user@R2> show pim interfaces Stat = Status, V = Version, NbrCnt = Neighbor Count, S = Sparse, D = Dense, B = Bidirectional, DR = Designated Router, P2P = Point-to-point link, Active = Bidirectional is active, NotCap = Not Bidirectional Capable Name Stat Mode IP V State NbrCnt JoinCnt(sg/*g) DR address ge-0/0/3.1 Up S 4 2 DR,NotCap 0 0/0 70.0.0.1 ge-1/0/7.1 Up S 4 2 DR,NotCap 1 20/0 14.0.0.2 ge-1/0/7.2 Up S 4 2 DR,NotCap 1 20/0 14.0.0.6 ge-1/0/7.3 Up S 4 2 DR,NotCap 1 20/0 14.0.0.10 ge-1/0/7.4 Up S 4 2 DR,NotCap 1 20/0 14.0.0.14 ge-1/0/7.5 Up S 4 2 DR,NotCap 1 20/0 14.0.0.18
The output lists all the interfaces configured for use with
the PIM protocol. The Stat
field indicates the current
status of the interface. The DR address
field lists the
configured IP addresses. All the interfaces are operational. If the
output does not indicate that the interfaces are operational, reconfigure
the interfaces before proceeding.
Meaning
All the configured interfaces are functional in the network.
Verifying PIM
Purpose
Verify that PIM is operational in the configured network.
Action
From operational mode, enter the show pim statistics command.
user@R2> show pim statistics PIM Message type Received Sent Rx errors V2 Hello 4253 5269 0 V2 Register 0 0 0 V2 Register Stop 0 0 0 V2 Join Prune 0 1750 0 V2 Bootstrap 0 0 0 V2 Assert 0 0 0 V2 Graft 0 0 0 V2 Graft Ack 0 0 0 V2 Candidate RP 0 0 0 V2 State Refresh 0 0 0 V2 DF Election 0 0 0 V1 Query 0 0 0 V1 Register 0 0 0 V1 Register Stop 0 0 0 V1 Join Prune 0 0 0 V1 RP Reachability 0 0 0 V1 Assert 0 0 0 V1 Graft 0 0 0 V1 Graft Ack 0 0 0 AutoRP Announce 0 0 0 AutoRP Mapping 0 0 0 AutoRP Unknown type 0 Anycast Register 0 0 0 Anycast Register Stop 0 0 0 Global Statistics Hello dropped on neighbor policy 0 Unknown type 0 V1 Unknown type 0 Unknown Version 0 Neighbor unknown 0 Bad Length 0 Bad Checksum 0 Bad Receive If 0 Rx Bad Data 0 Rx Intf disabled 0 Rx V1 Require V2 0 Rx V2 Require V1 0 Rx Register not RP 0 Rx Register no route 0 Rx Register no decap if 0 Null Register Timeout 0 RP Filtered Source 0 Rx Unknown Reg Stop 0 Rx Join/Prune no state 0 Rx Join/Prune on upstream if 0 Rx Join/Prune for invalid group 0 Rx Join/Prune messages dropped 0 Rx sparse join for dense group 0 Rx Graft/Graft Ack no state 0 Rx Graft on upstream if 0 Rx CRP not BSR 0 Rx BSR when BSR 0 Anycast Register Stop 0 0 0
The V2 Hello
field lists the number of PIM hello
messages sent and received. The V2 Join Prune
field lists
the number of join messages sent before the join-prune-timeout
value is reached. If both values are nonzero, PIM is functional.
Meaning
PIM is operational in the network.
Verifying the PIM Automatic MBB Join Load-Balancing Feature
Purpose
Verify that the PIM automatic MBB join load-balancing feature works as configured.
Action
To see the effect of the MBB feature on Router R2:
Run the show pim interfaces operational mode command before disabling an interface.
content_copy zoom_out_mapuser@R2> show pim interfaces Stat = Status, V = Version, NbrCnt = Neighbor Count, S = Sparse, D = Dense, B = Bidirectional, DR = Designated Router, P2P = Point-to-point link, Active = Bidirectional is active, NotCap = Not Bidirectional Capable Name Stat Mode IP V State NbrCnt JoinCnt(sg/*g) DR address ge-0/0/3.1 Up S 4 2 DR,NotCap 0 0/0 70.0.0.1 ge-1/0/7.1 Up S 4 2 DR,NotCap 1 20/0 14.0.0.2 ge-1/0/7.2 Up S 4 2 DR,NotCap 1 20/0 14.0.0.6 ge-1/0/7.3 Up S 4 2 DR,NotCap 1 20/0 14.0.0.10 ge-1/0/7.4 Up S 4 2 DR,NotCap 1 20/0 14.0.0.14 ge-1/0/7.5 Up S 4 2 DR,NotCap 1 20/0 14.0.0.18
The
JoinCnt(sg/*g)
field shows that the 100 joins are equally distributed among the five interfaces.Disable the
ge-1/0/7.5
interface.content_copy zoom_out_map[edit] user@R2# set interfaces ge-1/0/7.5 disable user@R2# commit
Run the show pim interfaces command to check if load balancing of joins is taking place.
content_copy zoom_out_mapuser@R2> show pim interfaces Stat = Status, V = Version, NbrCnt = Neighbor Count, S = Sparse, D = Dense, B = Bidirectional, DR = Designated Router, P2P = Point-to-point link, Active = Bidirectional is active, NotCap = Not Bidirectional Capable Name Stat Mode IP V State NbrCnt JoinCnt(sg/*g) DR address ge-0/0/3.1 Up S 4 2 DR,NotCap 0 0/0 70.0.0.1 ge-1/0/7.1 Up S 4 2 DR,NotCap 1 25/0 14.0.0.2 ge-1/0/7.2 Up S 4 2 DR,NotCap 1 25/0 14.0.0.6 ge-1/0/7.3 Up S 4 2 DR,NotCap 1 25/0 14.0.0.10 ge-1/0/7.4 Up S 4 2 DR,NotCap 1 25/0 14.0.0.14
The
JoinCnt(sg/*g)
field shows that the 100 joins are equally redistributed among the four active interfaces.Add the removed interface on Router R2.
content_copy zoom_out_map[edit] user@R2# delete interfaces ge-1/0/7.5 disable user@R2# commit
Run the show pim interfaces command to check if load balancing of joins is taking place after enabling the inactive interface.
content_copy zoom_out_mapuser@R2> show pim interfaces Stat = Status, V = Version, NbrCnt = Neighbor Count, S = Sparse, D = Dense, B = Bidirectional, DR = Designated Router, P2P = Point-to-point link, Active = Bidirectional is active, NotCap = Not Bidirectional Capable Name Stat Mode IP V State NbrCnt JoinCnt(sg/*g) DR address ge-0/0/3.1 Up S 4 2 DR,NotCap 0 0/0 70.0.0.1 ge-1/0/7.1 Up S 4 2 DR,NotCap 1 20/0 14.0.0.2 ge-1/0/7.2 Up S 4 2 DR,NotCap 1 20/0 14.0.0.6 ge-1/0/7.3 Up S 4 2 DR,NotCap 1 20/0 14.0.0.10 ge-1/0/7.4 Up S 4 2 DR,NotCap 1 20/0 14.0.0.14 ge-1/0/7.5 Up S 4 2 DR,NotCap 1 20/0 14.0.0.18
The
JoinCnt(sg/*g)
field shows that the 100 joins are equally distributed among the five interfaces.Note:This output should resemble the output in Step 1.
Meaning
The PIM automatic MBB join load-balancing feature works as configured.