Support Support Downloads Knowledge Base Case Manager My Juniper Community

Knowledge Base

Search our Knowledge Base sites to find answers to your questions.

Ask All Knowledge Base Sites All Knowledge Base Sites JunosE Defect (KA)Knowledge BaseSecurity AdvisoriesTechnical BulletinsTechnotes Sign in to display secure content and recently viewed articles

Multicast upstream interface showing wrong interface after a routing change

0

0

Article ID: KB36143 KB Last Updated: 03 Sep 2020Version: 1.0
Summary:
Multicast upstream interface showing wrong interface after a routing change. The issue is seen when the group-ranges have /32 prefix instead of a subnet. for example: set routing-instances JTAC-INSTANCE protocols pim rp static address 10.0.103.9 group-ranges 239.100.10.4/32. Upstream traffic will not be switched to the new IIF on a path changeover and that will cause traffic to be impacted.
Symptoms:
Here is an example of the issue:

Before triggering the issue, the uplink interface is via ae2.1004. There is also a backup path which is via irb.1099. 
root@spine1> show multicast route instance JTAC-INSTANCE group 239.100.10.4 source-prefix 10.100.100.6 extensive    
Instance: JTAC-INSTANCE Family: INET

Group: 239.100.10.4
    Source: 10.100.100.6/32
    Upstream interface: ae2.1004    
    Downstream interface list: 
        xe-0/0/31:1.4000
    Number of outgoing interfaces: 1
    Session description: Organisational Local Scope
    Statistics: 574 kBps, 585 pps, 43353 packets
    Next-hop ID: 2097151
    Upstream protocol: PIM
    Route state: Active
    Forwarding state: Forwarding
    Cache lifetime/timeout: 360 seconds
    Wrong incoming interface notifications: 21
    Uptime: 00:00:10

Trigger the routing change by disabling the uplink interface on the peer device
{master:0}
root@spine1> show multicast route instance JTAC-INSTANCE group 239.100.10.4 source-prefix 10.100.100.6 extensive    
Instance: JTAC-INSTANCE Family: INET

Group: 239.100.10.4
    Source: 10.100.100.6/32
    Upstream interface: ae2.1004    <<<<<<<<<<<<< incorrect upstream interface    
    Downstream interface list: 
        xe-0/0/31:1.4000
    Number of outgoing interfaces: 1
    Session description: Organisational Local Scope
    Statistics: 574 kBps, 585 pps, 43353 packets
    Next-hop ID: 2097151
    Upstream protocol: PIM
    Route state: Active
    Forwarding state: Forwarding
    Cache lifetime/timeout: 360 seconds
    Wrong incoming interface notifications: 21
    Uptime: 00:05:52

{master:0}
root@spine1> show route 10.100.100.6                                                                          

inet.0: 32 destinations, 34 routes (32 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

0.0.0.0/0          *[Static/5] 2w1d 02:39:27
                    > to 10.85.173.1 via em0.0
                    [OSPF/150] 1w6d 19:55:56, metric 0, tag 0
                    > to 172.31.0.229 via irb.996

JTAC-INSTANCE.inet.0: 36 destinations, 47 routes (36 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

10.100.100.0/24    *[OSPF/150] 5d 07:08:48, metric 0, tag 0
                    > to 10.5.2.165 via irb.1099

‚ÄčThe correct output should be as below is below

{master:0}
root@spine1> show pim join instance JTAC-INSTANCE extensive 239.100.10.4 source 10.100.100.6    
Instance: PIM.JTAC-INSTANCE Family: INET
R = Rendezvous Point Tree, S = Sparse, W = Wildcard

Group: 239.100.10.4
    Source: 10.100.100.6
    Flags: sparse,spt
    Upstream interface: irb.1099          <<<<<<<<<<<<<Correct upstream interface        
    Upstream neighbor: 10.5.2.165
    Upstream state: Join to Source, No Prune to RP
    Keepalive timeout: 345
    Uptime: 00:05:48 
    Downstream neighbors:
        Interface: Pseudo-GMP             
            xe-0/0/31:1.4000
    Number of downstream interfaces: 1
    Number of downstream neighbors: 0

Cause:

This is because the /32 prefix is interpreted differently in the routing pipeline and it discards the data traffic received on the new IIF at the PFE stage instead of trapping to the CPU. So, IIF_MISMATCH mechanism can not be detected here with this config, resulting is traffic loss until the PIM join is timed out. 


{master:0}
root@spine1> show multicast statistics instance JTAC-INSTANCE interface irb.1099
Instance: JTAC-INSTANCE Family: INET
Interface: irb.1099
    Routing protocol:          PIM   Mismatch error:               0
    Mismatch:                    0   Mismatch no route:            0
    Kernel resolve:              0   Routing notify:               0
    Resolve no route:            0   Resolve error:                0
    Resolve filtered:            0   Notify filtered:              0
    In kbytes:                   0   In packets:                   0
    Out kbytes:                  0   Out packets:                  0

Solution:
Instead of /32, the customer configuration can be slightly tweaked to  "set routing-instances JTAC-INSTANCE protocols pim rp static address 10.0.103.9 group-ranges 239.100.10.0/24" /24 subnet or any other non /32 prefix which can cover the required group range(s).  Here is an example:
1) Remove the 239.100.10.4/32 and add 239.100.10.0/24 from spine1 pim rp configuration 

{master:0}
root@spine1> configure 
Entering configuration mode

{master:0}[edit]
root@spine1# delete routing-instances JTAC-INSTANCE protocols pim rp static address 10.0.103.9 group-ranges 239.100.10.4/32
{master:0}[edit]
root@spine1# set routing-instances JTAC-INSTANCE protocols pim rp static address 10.0.103.9 group-ranges 239.100.10.0/24  


2) Trigger the routing change by disabling the uplink interface on the peer device

3) Check the multicast route and pim join status for 239.100.10.4 

{master:0}
root@spine1> show pim join instance JTAC-INSTANCE extensive 239.100.10.4 source 10.100.100.6 
Instance: PIM.JTAC-INSTANCE Family: INET
R = Rendezvous Point Tree, S = Sparse, W = Wildcard

Group: 239.100.10.4
    Source: 10.100.100.6
    Flags: sparse,spt
    Upstream interface: irb.1099   <<<<<<<<<<<<<Correct upstream interface            
    Upstream neighbor: 10.5.2.165
    Upstream state: Join to Source, No Prune to RP
    Keepalive timeout: 322
    Uptime: 00:36:45 
    Downstream neighbors:
        Interface: Pseudo-GMP             
            xe-0/0/31:1.4000
    Number of downstream interfaces: 1
    Number of downstream neighbors: 0

{master:0}
root@spine1> show multicast route instance JTAC-INSTANCE group 239.100.10.4 source-prefix 10.100.100.6 extensive 
Instance: JTAC-INSTANCE Family: INET

Group: 239.100.10.4
    Source: 10.100.100.6/32
    Upstream interface: irb.1099  <<<<<<<<<<<<<Correct upstream interface    
    Downstream interface list: 
        xe-0/0/31:1.4000
    Number of outgoing interfaces: 1
    Session description: Organisational Local Scope
    Statistics: 982 kBps, 1000 pps, 54729 packets
    Next-hop ID: 2097151
    Upstream protocol: PIM
    Route state: Active
    Forwarding state: Forwarding
    Cache lifetime/timeout: 360 seconds
    Wrong incoming interface notifications: 1
    Uptime: 00:36:50

{master:0}
root@spine1> show route 10.100.100.6 

inet.0: 32 destinations, 34 routes (32 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

0.0.0.0/0          *[Static/5] 2w1d 02:29:52
                    > to 10.85.173.1 via em0.0
                    [OSPF/150] 1w6d 19:46:21, metric 0, tag 0
                    > to 172.31.0.229 via irb.996

content.inet.0: 36 destinations, 47 routes (36 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

10.100.100.0/24    *[OSPF/150] 5d 06:59:13, metric 0, tag 0
                    > to 10.5.2.165 via irb.1099

In the output, we see the  IIF_MISMATCH incremented by 1 (which is cases by the routing change) PIM relies on PFE to send an IIF_MISMATCH on the new RPF and on this NEW mismatch Multicast route will be switched to the new RPF.  

{master:0}
eng@spine1> show multicast statistics instance JTAC-INSTANCE interface irb.1099
Instance: JTAC-INSTANCE Family: INET
Interface: irb.1099
    Routing protocol:          PIM   Mismatch error:               0
    Mismatch:                    1   Mismatch no route:            0
    Kernel resolve:              0   Routing notify:               0
    Resolve no route:            0   Resolve error:                0
    Resolve filtered:            0   Notify filtered:              0
    In kbytes:                   0   In packets:                   0
    Out kbytes:                  0   Out packets:                  0
Comment on this article > Affected Products Browse the Knowledge Base for more articles related to these product categories. Select a category to begin.

Getting Up and Running with Junos

Getting Up and Running with Junos Security Alerts and Vulnerabilities Product Alerts and Software Release Notices Problem Report (PR) Search Tool EOL Notices and Bulletins JTAC User Guide Customer Care User Guide Pathfinder SRX High Availability Configurator SRX VPN Configurator Training Courses and Videos End User Licence Agreement Global Search