This article describes the issue of the PIM multicast not working with VRRP.
When the default route on the LHR switch is set with a next-hop pointing to 10.10.10.1 , which is a VRRP VIP, the multicast stream between the source and the receiver breaks.
Topology :
set vlans Source l3-interface vlan.20set vlans vlan10 l3-interface vlan.10set interfaces vlan unit 10 family inet address 10.10.10.9/24 vrrp-group 1 virtual-address 10.10.10.1set interfaces vlan unit 10 family inet address 10.10.10.9/24 vrrp-group 1 priority 250set interfaces vlan unit 10 family inet address 10.10.10.9/24 vrrp-group 1 accept-dataset interfaces vlan unit 20 family inet address 200.200.200.1/24set protocols pim rp local address 10.10.10.9set protocols pim interface vlan.10set protocols pim interface vlan.20
set vlans CLIENT vlan-id 100 set vlans CLIENT l3-interface vlan.100 set protocols pim rp static address 10.10.10.9 set protocols pim interface ge-0/0/15.0 set protocols pim interface vlan.100 set routing-options static route 0.0.0.0/0 next-hop 10.10.10.1
root@LHR# run show pim join extensive 234.0.0.1Instance: PIM.master Family: INETR = Rendezvous Point Tree, S = Sparse, W = WildcardGroup: 234.0.0.1Source: *RP: 10.10.10.9Flags: sparse,rptree,wildcardUpstream interface: ge-0/0/15.0Upstream neighbor: DirectUpstream state: Join to RPUptime: 00:41:20Downstream neighbors:Interface: vlan.100100.100.100.1 State: Join Flags: SRW Timeout: InfinityUptime: 00:41:20 Time since last Join: 00:41:20Group: 234.0.0.1Source: 200.200.200.10Flags: sparseUpstream interface: unknown (no nexthop)> Since the next hop is set to the virtual IP, the upstream for multicast is not reachable; even though it is pingable via the unicast table Upstream neighbor: unknown Upstream state: NoneKeepalive timeout: 331Uptime: 00:41:20Downstream neighbors:Interface: vlan.100100.100.100.1 State: Join Flags: S Timeout: InfinityUptime: 00:41:20 Time since last Join: 00:41:20root@LHR# run show route 200.200.200.10 extensiveinet.0: 16 destinations, 16 routes (15 active, 0 holddown, 1 hidden)0.0.0.0/0 (1 entry, 1 announced)TSI:KRT in-kernel 0.0.0.0/0 -> {10.10.10.1}*Static Preference: 5Next hop type: Router, Next hop index: 1331Address: 0x2b6418cNext-hop reference count: 3Next hop: 10.10.10.1 via ge-0/0/15.0, selectedState: <Active Int Ext> Age: 1:04:23Task: RTAnnouncement bits (1): 0-KRTAS path: Iroot@LHR# run show route 10.10.10.1 extensiveinet.0: 16 destinations, 16 routes (15 active, 0 holddown, 1 hidden)10.10.10.0/24 (1 entry, 0 announced)*Direct Preference: 0Next hop type: InterfaceAddress: 0x2b640f4Next-hop reference count: 1Next hop: via ge-0/0/15.0, selectedState: <Active Int> Age: 2:34:48Task: IFAS path: I
root@RP# run show pim join extensive Instance: PIM.master Family: INET R = Rendezvous Point Tree, S = Sparse, W = Wildcard Group: 234.0.0.1 Source: * RP: 10.10.10.9 Flags: sparse,rptree,wildcard Upstream interface: Local Upstream neighbor: Local Upstream state: Local RP Uptime: 01:48:02 Downstream neighbors: Interface: vlan.10 > PIM join received from the LHR 10.10.10.10 State: Join Flags: SRW Timeout: 160 Uptime: 01:48:02 Time since last Join: 00:00:50 Group: 234.0.0.1 Source: 200.200.200.10 Flags: sparse,spt Upstream interface: vlan.20 Upstream neighbor: Direct Upstream state: None, Local Source, Local RP Keepalive timeout: 301 Uptime: 01:52:39 > Downstream information missing on the RP
root@LHR# run show pim join extensive Instance: PIM.master Family: INET R = Rendezvous Point Tree, S = Sparse, W = Wildcard Group: 234.0.0.1 Source: * RP: 10.10.10.9 Flags: sparse,rptree,wildcard Upstream interface: ge-0/0/15.0 Upstream neighbor: Direct Upstream state: Join to RP Uptime: 00:00:08 Downstream neighbors: Interface: vlan.100 100.100.100.1 State: Join Flags: SRW Timeout: Infinity Uptime: 00:00:08 Time since last Join: 00:00:08 Group: 234.0.0.1 Source: 200.200.200.10 Flags: sparse,spt Upstream interface: ge-0/0/15.0 > Upstream information available. Upstream neighbor: 10.10.10.9 Upstream state: None, Join to Source Keepalive timeout: 352 Uptime: 00:00:08 Downstream neighbors: Interface: vlan.100 100.100.100.1 State: Join Flags: S Timeout: Infinity Uptime: 00:00:08 Time since last Join: 00:00:08
root@RP# run show pim join extensive Instance: PIM.master Family: INET R = Rendezvous Point Tree, S = Sparse, W = Wildcard Group: 234.0.0.1 Source: * RP: 10.10.10.9 Flags: sparse,rptree,wildcard Upstream interface: Local Upstream neighbor: Local Upstream state: Local RP Uptime: 02:02:15 Downstream neighbors: Interface: vlan.10 10.10.10.10 State: Join Flags: SRW Timeout: 206 Uptime: 02:02:15 Time since last Join: 00:00:03 Group: 234.0.0.1 Source: 200.200.200.10 Flags: sparse,spt Upstream interface: vlan.20 Upstream neighbor: Direct Upstream state: None, Local Source, Local RP Keepalive timeout: 348 Uptime: 02:06:52 Downstream neighbors: Interface: vlan.10 > Downstream information showing up on the RP pointing towards the LHR. 10.10.10.10 State: Join Flags: S Timeout: 206 Uptime: 00:11:06 Time since last Join: 00:00:03
2022-10-17: Minor, non-technical updates.2021-03-19: Updated the article terminology to align with Juniper's Inclusion & Diversity initiatives.