This article explains the behavior of PIM Dense mode and possible duplication of Multicast packets over an assert lost interface.
lab@R2# run show pim join extensive Instance: PIM.master Family: INET R = Rendezvous Point Tree, S = Sparse, W = Wildcard Group: 229.3.20.100 Source: 192.168.1.2 Flags: dense Upstream interface: ge-0/3/0.0 Upstream neighbor: 10.1.1.2 Uptime: 00:13:45 Downstream interfaces: ge-0/2/0.0 (assert winner) Instance: PIM.master Family: INET6 R = Rendezvous Point Tree, S = Sparse, W = Wildcard [edit] lab@R2# run show route table inet.1 extensive inet.1: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) 229.3.20.100.192.168.1.2/64 (1 entry, 1 announced) TSI: KRT in-kernel 229.3.20.100.192.168.1.2/64 -> {[1048574]} *PIM Preference: 105 Next hop type: Multicast (IPv4), Next hop index: 1048574 Address: 0x903911c Next-hop reference count: 2 State: <Active Int Ext> Age: 16:04 Task: PIM.master Announcement bits (1): 0-KRT AS path: I [edit] lab@R2
[edit] lab@R3# run show pim join extensive Instance: PIM.master Family: INET R = Rendezvous Point Tree, S = Sparse, W = Wildcard Group: 229.3.20.100 Source: 192.168.1.2 Flags: dense Upstream interface: ge-0/3/0.0 Upstream neighbor: 10.1.2.2 Prune Sent Upstream: ge-0/3/0.0 timeout 42 Uptime: 00:04:17 Downstream interfaces: ge-0/3/2.0 (assert lost) Instance: PIM.master Family: INET6 R = Rendezvous Point Tree, S = Sparse, W = Wildcard [edit] lab@R3# run show route table inet.1 extensive inet.1: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) 229.3.20.100.192.168.1.2/64 (1 entry, 1 announced) TSI: KRT in-kernel 229.3.20.100.192.168.1.2/64 -> MDISCARD *PIM Preference: 105 Next hop type: Multicast (IPv4) Address: 0x8d19444 Next-hop reference count: 3 State: <Active Int Ext> Age: 4:25 Task: PIM.master Announcement bits (1): 0-KRT AS path: I [edit] lab@R3# run show route table inet.1 extensive inet.1: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) 229.3.20.100.192.168.1.2/64 (1 entry, 1 announced) TSI: KRT in-kernel 229.3.20.100.192.168.1.2/64 -> MDISCARD *PIM Preference: 105 Next hop type: Multicast (IPv4) Address: 0x8d19444 Next-hop reference count: 3 State: <Active Int Ext> Age: 49 Task: PIM.master Announcement bits (1): 0-KRT AS path: I [edit] lab@R3 run show pim join extensive Instance: PIM.master Family: INET R = Rendezvous Point Tree, S = Sparse, W = Wildcard Group: 229.3.20.100 Source: 192.168.1.2 Flags: dense Upstream interface: ge-0/3/0.0 Upstream neighbor: 10.1.2.2 Prune Sent Upstream: ge-0/3/0.0 timeout 247 Uptime: 00:00:53 Downstream interfaces: ge-0/3/2.0 (assert lost) Instance: PIM.master Family: INET6 R = Rendezvous Point Tree, S = Sparse, W = Wildcard
This is an expected behavior while running PIM dense mode in Junos, and currently there is no workaround to it. However, if it can ensured that if there is an active downstream interface on R2, then we may not find this duplication. Effectively in the above topology if there is an active receiver on R2 that is not connected to the LAN, regular Multicast traffic will flow to the receiver. The PIM entry and the associated Multicast route will be kept intact, ensuring that no duplication happens.