NG-MVPN Source Redundancy

This chapter provides information about MVPN source redundancy.

Topics in this chapter include:

Applicability

The chapter was initially written for SR OS Release 12.0.R1, using multicast LDP as the provider tunnel signaling mechanism for IPv4 multicasting. The customer multicast signaling protocol within the VPN must be BGP. The CLI in the current edition corresponds with SR OS Release 23.10.R2.

Overview

Multicast source redundancy allows operators to provide multiple geo-redundant sources for the same multicast group in a multicast virtual private network (MVPN). For instance, in an IPTV environment where a TV channel maps to a multicast group, the same TV channel can be provided from sources in a geographically diverse manner where a national broadcaster can have multiple sources from two or more regional distribution centers.

Knowledge of Multi-Protocol BGP (MP-BGP) and RFC 4364, BGP/MPLS IP Virtual Private Networks (VPNs), is assumed throughout this chapter, as well as Protocol Independent Multicast (PIM), RFC 6513, Multicast in MPLS/BGP IP VPNs, and RFC 6514, BGP Encodings and Procedures for Multicast in MPLS/BGP IP VPNs.

Hosts connected to receiver PEs can receive TV channels from a specific source, with a regional backup source available in case of a failure.

Figure 1. Source Redundancy Example.

Source Redundancy Example. shows the concept of source redundancy. PE-1 and PE-3 have directly connected multicast sources. For clarity, consider a single multicast group with two separate sources connected at different sites. The content of each group is identical at a given time (allowing for transmission delay), as is expected for an IPTV channel. PE-1 and PE-3 are referred to as sender PEs because they are closer to the source; PE-2 and PE-4 are referred to as receiver PEs because they are closer to hosts H-2 and H-4.

A multicast group, group 1 (G-1) has two sources: Source 1 (S-1) in the east region and Source 3 (S-3) in the west region which are connected to PE-1 and PE-3 respectively. Receivers connected to PE-2 in the east region join group (S-1,G-1) and receivers connected to PE-4 in the west region join group (S-3,G-1). The presence of each source is declared within the multicast VPN by the sender PE. When a multicast group becomes active, a BGP Source Active auto-discovery (SA) route is advertised to all PEs within the multicast VPN. This must occur even if no receiver indicates that it wants to become a member of this group. In other words, the SA must be persistently present in the receiver PEs when the source is available.

Should either source fail or become unavailable, then the sender PE notifies the receiver PEs by sending an NLRI unreachable BGP SA Route that declares the absence of the source. All hosts that are members of this group then switch to receive traffic from the remaining active source. Only customer multicast joins received as IGMP (*,G) queries or PIM (*,G) joins at the receiver PE are valid, because the source address is not specified.

Source redundancy is achieved by:

  • Configuring a list of redundant sources within each receiver PE.

  • Configuring the sender PEs to originate a BGP Source Active Auto Discovery for each detected active multicast source, regardless of whether a receiver is joined to the multicast group or not. As a result, a Source Active route is originated on a per (S,G) basis.

    For multiple SAs to be persistently present in the receiver PEs, one of the following two conditions must be configured within the sender PEs:

    • Either disable inter-site shared trees on the sender PEs, such that there is no c-tree with root at the RP. Any active source announces its presence using a BGP SA to all receiver PEs so no shared joins are sent by receiver PEs to RP, or

    • Leave inter-site shared trees as enabled, but configured so that the SA AD route for each multicast group is persistently present in the receiver PEs, even in the absence of requesting hosts for each group. Shared and Source Joins are sent by the receiver PEs.

    Both of the preceding options are supported. The default behavior has inter-site shared trees enabled without persistency. In this example, inter-site shared trees at the sender PEs are enabled with Source Active routes set to be persistent.

  • Ensuring that the preferred source is IP reachable within the VPRN from the receiver PE. This must be a remote source advertised from a remote PE within the VPRN.

  • Receiver PEs accept the Source Active routes into the appropriate Multicast VRF.

  • Ensuring the preferred active source should have a higher BGP Local Preference. This is achieved using a route policy. Any other sources from the redundant list should exist as suppressed standby sources, but the (S,G) state should exist if the source is active – when a valid BGP MVPN Source Active route for that source has been received.

All of these conditions are achieved by configuration.

To allow each receiver PE to choose a preferred source, each SA route advertised by the sender PE is tagged with a community value. Each receiver PE can then use the community value contained within each SA route update received to set the Local Preference BGP attribute to a value such that the receiver PE can choose the most preferred active source.

The objectives are:

  • To configure multicast in a VPRN on PE-1 to PE-4 with inter-site-shared trees enabled on the receiver PEs and Source Active routes persistently present, for reasons previously described.

  • To connect redundant sources to the sender PE-1 and PE-3, with each multicast source having the same group address. For ease of configuration, a single redundant source is used.

  • To advertise each source to the receiver PEs (PE-2 and PE-4), using appropriate route policies for adding community strings to the BGP Source Active Auto-Discovery routes.

  • To configure appropriate route policies that allow each BGP SA route to have the correct Local Preference set, based on the community strings present.

  • To allow receivers to connect to the appropriate source, using (*,G) joins.

The following configuration tasks should be completed as a pre-requisite:

  • Full mesh IS-IS or OSPF between each of the PE routers and the route reflector.

  • Link-layer LDP between all PEs. RSVP could also be used.

  • Multicast LDP is used as the provider tunnel signaling protocol. This is enabled by default when link layer LDP is enabled. RSVP and PIM SSM are also supported as provider tunnel signaling mechanisms and could be used.

Configuration

The example topology is shown in Schematic Topology, containing the four PEs plus the route reflector on P-5.

Figure 2. Schematic Topology

Global BGP Configuration

The first step is to configure an iBGP session between each of the PEs and the route reflector (RR) seen in Schematic Topology. The address families negotiated between the iBGP peers are vpn-ipv4 (unicast routing) and mvpn-ipv4 (multicast routing). The BGP configuration for all PE nodes is identical:

# on PE-1
configure {
    router "Base" {
        bgp {
            ebgp-default-reject-policy {
                import false
                export false
            }
            rapid-update {
                mvpn-ipv4 true
            }
            group "INTERNAL" {
                type internal
                family {
                    vpn-ipv4 true
                    mvpn-ipv4 true
                }
            }
            neighbor "192.0.2.5" {
                group "INTERNAL"
            }
        }
    }
}

The configuration for the Route Reflector on P-5 is as follows:

# on P-5
configure {
    router "Base" {
        bgp {
            ebgp-default-reject-policy {
                import false
                export false
            }
            rapid-update {
                mvpn-ipv4 true
            }
            group "RRclients" {
                type internal
                family {
                    vpn-ipv4 true
                    mvpn-ipv4 true
                }
                cluster {
                    cluster-id 1.1.1.1
                }
            }
            neighbor "192.0.2.1" {
                group "RRclients"
            }
            neighbor "192.0.2.2" {
                group "RRclients"
            }
            neighbor "192.0.2.3" {
                group "RRclients"
            }
            neighbor "192.0.2.4" {
                group "RRclients"
            }
        }
    }
}

On PE-1, verify that the BGP session with RR on P-5 is established with address families ‟vpn-ipv4” and ‟mvpn-ipv4” capabilities negotiated:

[/]
A:admin@PE-1# show router bgp summary
===============================================================================
 BGP Router ID:192.0.2.1        AS:64496       Local AS:64496      
===============================================================================
BGP Admin State         : Up          BGP Oper State              : Up
Total Peer Groups       : 1           Total Peers                 : 1         
Total VPN Peer Groups   : 0           Total VPN Peers             : 0         
Current Internal Groups : 1           Max Internal Groups         : 1         
Total BGP Paths         : 15          Total Path Memory           : 5520      
 
---snip--- 
===============================================================================
BGP Summary
===============================================================================
Legend : D - Dynamic Neighbor
===============================================================================
Neighbor
Description
                   AS PktRcvd InQ  Up/Down   State|Rcv/Act/Sent (Addr Family)
                      PktSent OutQ
-------------------------------------------------------------------------------
192.0.2.5
                64496       3    0 00h00m24s 0/0/0 (VpnIPv4)
                            3    0           0/0/0 (MvpnIPv4)
-------------------------------------------------------------------------------

The same command can be used on the other PEs to verify their BGP sessions to the RR.

Configuring VPRN on PEs

The following outputs show the VPRN configurations for each PE. The specific MVPN configuration is shown later.

PE-1

The VPRN configuration for PE-1 is as follows:

# on PE-1
configure {
    service {
        vprn "1" {
            admin-state enable
            customer "1"
            pim {
                apply-to all
                rp {
                    ipv4 {
                        static {
                            address 10.10.10.1 {
                                group-prefix 239.0.0.0/8 { }
                            }
                        }
                    }
                }
            }
            bgp-ipvpn {
                mpls {
                    admin-state enable
                    route-distinguisher "64496:1"
                    vrf-target {
                        community "target:64496:1"
                    }
                    auto-bind-tunnel {
                        resolution filter
                        resolution-filter {
                            ldp true
                        }
                    }
                }
            }
            interface "RP" {
                loopback true
                ipv4 {
                    primary {
                        address 10.10.10.1
                        prefix-length 32
                    }
                }
            }
            interface "int-PE-1-S-1" {
                ipv4 {
                    primary {
                        address 172.16.1.1
                        prefix-length 24
                    }
                }
                sap 1/1/c3/1 { }
            }
        }
    }
}

There is a single interface toward S-1 from which the multicast group is generated.

If the customer signaling uses PIM ASM, then the customer Rendezvous Point (RP) must be positioned on the sender PE because registration of the source with the RP causes the SA to be sent to the remote source PEs.

A loopback interface called ‟RP” acts as the RP for all group prefixes in the 239.0.0.0/8 range. This is the RP for the East groups.

PE-2

PE-2 has a receiver attached, and a single interface is configured to accommodate this. The RP configured is that of the East region and has a configuration as follows:

# on PE-2
configure {
    service {
        vprn "1" {
            admin-state enable
            customer "1"
            igmp {
                interface "int-PE-2-H-2" { }
            }
            pim {
                apply-to all
                rp {
                    ipv4 {
                        static {
                            address 10.10.10.1 {
                                group-prefix 239.0.0.0/8 { }
                            }
                        }
                    }
                }
            }
            bgp-ipvpn {
                mpls {
                    admin-state enable
                    route-distinguisher "64496:1"
                    vrf-target {
                        community "target:64496:1"
                    }
                    auto-bind-tunnel {
                        resolution filter
                        resolution-filter {
                            ldp true
                        }
                    }
                }
            }
            interface "int-PE-2-H-2" {
                ipv4 {
                    primary {
                        address 172.16.2.1
                        prefix-length 24
                    }
                }
                sap 1/1/c3/1 { }
            }
        }
    }
}

PE-3

PE-3 serves as the RP for the West region and uses a different IP address for the Rendezvous Point interface.

# on PE-3
configure {
    service {
        vprn "1" {
            admin-state enable
            customer "1"
            pim {
                apply-to all
                rp {
                    ipv4 {
                        static {
                            address 10.10.10.3 {
                                group-prefix 239.0.0.0/8 { }
                            }
                        }
                    }
                }
            }
            bgp-ipvpn {
                mpls {
                    admin-state enable
                    route-distinguisher "64496:1"
                    vrf-target {
                        community "target:64496:1"
                    }
                    auto-bind-tunnel {
                        resolution filter
                        resolution-filter {
                            ldp true
                        }
                    }
                }
            }
            interface "RP" {
                loopback true
                ipv4 {
                    primary {
                        address 10.10.10.3
                        prefix-length 32
                    }
                }
            }
            interface "int-PE-3-S-3" {
                ipv4 {
                    primary {
                        address 172.16.3.1
                        prefix-length 24
                    }
                }
                sap 1/1/c3/1 { }
            }
        }
    }
}

PE-4

PE-4 also has a receiver, and uses the West sender PE (PE-3) as the Rendezvous Point.

# on PE-4
configure {
    service {
        vprn "1" {
            admin-state enable
            customer "1"
            igmp {
                interface "int-PE-4-H-4" { }
            }
            pim {
                apply-to all
                rp {
                    ipv4 {
                        static {
                            address 10.10.10.3 {
                                group-prefix 239.0.0.0/8 { }
                            }
                        }
                    }
                }
            }
            bgp-ipvpn {
                mpls {
                    admin-state enable
                    route-distinguisher "64496:1"
                    vrf-target {
                        community "target:64496:1"
                    }
                    auto-bind-tunnel {
                        resolution filter
                        resolution-filter {
                            ldp true
                        }
                    }
                }
            }
            interface "int-PE-4-H-4" {
                ipv4 {
                    primary {
                        address 172.16.4.1
                        prefix-length 24
                    }
                }
                sap 1/1/c3/1 { }
            }
        }
    }
}

MVPN Configuration for Source PEs

At the PEs closest to the sources (PE-1 and PE-3), Source Active auto-discovery BGP routes are generated when the source is active.

This applies for PIM-ASM (*,G) joins only, or IGMP (*,G) membership queries received by the provider domain. These are received by all PEs.

Inter-site trees must be disabled for this to occur. Alternatively, inter-site trees can be enabled such that when a source is discovered, a Source Active is advertised to each other PE in the MVPN. This occurs regardless of whether any receivers want to become members of the multicast groups.

As previously stated, the presence of the SA in the receiver PEs means that no shared joins routes are generated toward the C-RPs.

The MVPN configuration enables BGP as both auto-discovery mechanism and the customer multicast signaling protocol across the VPRN. The provider tunnel between PEs within the MVPN is signaled using Multicast LDP.

The MVPN configuration for each PE should be as follows:

# on PE-1
configure {
    service {
        vprn "1" {
            mvpn {
                c-mcast-signaling bgp
                auto-discovery {
                    type bgp
                }
                provider-tunnel {
                    inclusive {
                        mldp {
                            admin-state enable
                        }
                    }
                }
            }
        }
    }
}

The VPRN MVPN configuration for PE-2, PE-3, and PE-4 is identical.

Sender PE Route Policies

The choice of active and standby sources by the receiver PEs is determined by the ‟best route” policy. PE-1 and PE-3 advertise BGP Source Active Auto Discovery routes when a source is active. This is received by all PEs within the MVPN. As two different sources advertise the same group, it is necessary to differentiate between them.

Assuming that receiver PE-2 prefers the source from PE-1, and PE-4 prefers the source active on PE-3, then the export policy for MVPN routes on PE-1 requires the following steps:

  1. Set a community value on PE-1 for the (S,G) multicast group – call this ‟blue” with value 64496:11.

  2. Set the route target community for the VPRN – 64496:1.

  3. Create a policy statement that becomes the export policy for MVPN routes within PE-1.

  4. Create a policy statement entry (entry 10) that adds the community value ‟blue” along with the route target for Source Active AD BGP routes. Source Active AD routes are MVPN type 5 routes.

  5. Create a policy statement entry default-action that adds the route target for all other MVPN AD BGP routes (such as Intra-AD (type 1)) that are exported to the MVPN PEs.

    # on PE-1
    configure {
        policy-options {
            community "MVPN1_RT" {
                member "target:64496:1" { }
            }
            community "blue" {
                member "64496:11" { }
            }
            policy-statement "MVPN1_export" {
                entry 10 {
                    description "match MVPN routes - type 5 Source AD - add RT and 'blue' community"
                    from {
                        family [mvpn-ipv4]
                        mvpn-type source-active-auto-discovery
                    }
                    action {
                        action-type accept
                        community {
                            add ["blue" "MVPN1_RT"]
                        }
                    }
                }
                default-action {
                    action-type accept
                    community {
                        add ["MVPN1_RT"]
                    }
                }
            }
        }
    }
  6. Apply as an export policy within the MVPN context.

The import policy requires that all imported MVPN BGP routes have the correct route target extended community value, specifically ‟target:64496:1”.

  1. Create a policy statement that becomes the import policy for PE-1.

  2. Create a policy statement entry (entry 10) that matches the community of the route target extended community for all MVPN BGP routes. These include the Intra-AD and Source-Join routes.

    # on PE-1
    configure {
        policy-options {
            policy-statement "MVPN1_import" {
                entry 10 {
                    from {
                        community {
                            name "MVPN1_RT"
                        }
                    }
                    action {
                        action-type accept
                    }
                }
            }
        }
    }

Enable the inter-site-shared type 5 advertisement persistency so that source ADs are advertised when multicast sources are active. Alternatively, inter-site shared trees can be disabled using the intersite-shared admin-state disable command. In this example, only inter-site shared MVPN type 5 persistency is shown.

The additional configuration in the MVPN context is as follows, where the PIM instance must be shut down when the intersite-shared configuration is modified.

# on PE-1
configure {
    service {
        vprn "1" {
            mvpn {
                intersite-shared {
                    persistent-type5-advertisement true
                }
                vrf-import {
                    policy ["MVPN1_import"]
                }
                vrf-export {
                    policy ["MVPN1_export"]
                }
                mdt-type sender-only    # added to prevent a sender PE from also behaving as a receiver PE
            }
        }
    }
}

For PE-3 (the other sender PE), similar import and export policies are required. In this case, the community is called ‟red” and is added to the Source Active AD route generated when the source is active.

The requirements for the export policy for PE-3 are as follows:

# on PE-3
configure {
    policy-options {
        community "MVPN1_RT" {
            member "target:64496:1" { }
        }
        community "red" {
            member "64496:33" { }
        }
        policy-statement "MVPN1_export" {
            entry 10 {
                description "match MVPN routes - type 5 Source AD - add RT and 'red' community"
                from {
                    family [mvpn-ipv4]
                    mvpn-type source-active-auto-discovery
                }
                action {
                    action-type accept
                    community {
                        add ["red" "MVPN1_RT"]
                    }
                }
            }
            default-action {
                action-type accept
                community {
                    add ["MVPN1_RT"]
                }
            }
        }
    }
}

The import policy is exactly the same as for PE-1.

Apply the import and export policies to the MVPN context of the sender PE (PE-3) and enable inter-site-shared type 5 advertisement persistency with the same command as on PE-1.

Receiver PE Configuration

PE-2 and PE-4 are the receiver PEs. These receive the Source Active AD routes and initiate Joins toward the preferred source.

When a Source-Active AD route is received, the community value is examined and the Local Preference value of the route is set using a Route Policy. The preferred source is determined by the SA AD route with the highest Local Preference value.

In the case of PE-2, the preferred source is that advertised by PE-1, the ‟blue” source as previously referenced. PE-2 sets the Local Preference to 200. The SA AD tagged with the ‟red” community has the Local Preference set to 50.

For PE-4, the reverse applies: SA AD routes tagged with the ‟red” community have the Local Preference set to 200, and ‟blue” SA AD routes have the Local Preference set to 50.

Again, assuming that the PE-2 receiver prefers the source from PE-1 and PE-4 prefers the source active on PE-3, the import policy for MVPN routes on PE-2 requires the following steps:

  1. Set a community value on PE-2 for the (S,G), call this ‟blue” with value 64496:11.

  2. Set the route target community for the VPRN to 64496:1.

  3. Create a prefix list that matches the multicast group address, in this case 239.255.0.0/24.

  4. Create a policy statement that becomes the import policy for MVPN routes within PE-1.

  5. Create a policy statement entry (entry 10) that matches the following attributes:

    • Source Active AD BGP routes type. Source Active AD routes are classed as MVPN type 5 routes, and

    • Community value ‟blue” AND Route Target extended community, and

    • Group address prefix 239.255.0.0/24

    If the BGP route matches all three conditions, then set the Local Preference to 200.

  6. Create a policy statement default-action that accepts all other MVPN BGP routes, including SA routes tagged with the ‟red” community value.

    The import policy statement looks like:

    # on PE-2
    configure {
        policy-options {
            community "MVPN1_RT" {
                member "target:64496:1" { }
            }
            community "blue" {
                member "64496:11" { }
            }
            community "red" {
                member "64496:33" { }
            }
            prefix-list "group_239.255.x.y" {
                prefix 239.255.0.0/16 type longer {
                }
            }
            policy-statement "MVPN1_import" {
                entry 10 {
                    description "allow MVPN source-ad - set LP to 200 for 'blue'"
                    from {
                        group-address "group_239.255.x.y"
                        mvpn-type source-active-auto-discovery
                        community {
                            expression "[blue] AND [MVPN1_RT]"
                        }
                    }
                    action {
                        action-type accept
                        local-preference 200
                    }
                }
                entry 20 {
                    description "allow MVPN source-ad - set LP to 50 for 'red'"
                    from {
                        group-address "group_239.255.x.y"
                        mvpn-type source-active-auto-discovery
                        community {
                            expression "[red] AND [MVPN1_RT]"
                        }
                    }
                    action {
                        action-type accept
                        local-preference 50
                    }
                }
                default-action {
                    action-type accept
                }
            }
        }
    }

    The export policy for PE-2 MVPN routes requires each MVPN route to be tagged with the route target extended community for VPRN 1. The following policy statement is created:

    # on PE-2
    configure {
        policy-options {
            policy-statement "MVPN1_export" {
                entry 10 {
                    from {
                        family [mvpn-ipv4]
                    }
                    action {
                        action-type accept
                        community {
                            add ["MVPN1_RT"]
                        }
                    }
                }
            }
        }
    }
  7. Create a list of redundant sources. This is a list of prefixes that match the source addresses of redundant multicast groups. This is an important parameter because the receiver PEs only create active and standby (S,G) states for groups with source address prefixes that are contained in this list.

  8. Before any hosts attempt to join the multicast groups, the decision must be made to enable or disable inter-site shared trees at the receiver PEs. In this example, only the Inter-site shared trees disabled option is considered. To make this configuration change, it is necessary to shut the PIM protocol down before and re-enable when completed.

The additional MVPN configuration for PE-2 is shown in the following output, where the redundant source prefix list is included, and inter-site shared trees are disabled.

# on PE-2
configure {
    service {
        vprn "1" {
            mvpn {
                intersite-shared {
                    admin-state disable
                }
                redundant-source-list {
                    source-prefix 172.16.1.0/24 { }
                    source-prefix 172.16.3.0/24 { }
                }
                vrf-import {
                    policy ["MVPN1_import"]
                }
                vrf-export {
                    policy ["MVPN1_export"]
                }
                mdt-type receiver-only    # added to prevent a receiver PE from also behaving as a sender PE
            }
        }
    }
}

PE-4 requires a similar set of import and export policies. In this case, the ‟red” sources have the highest Local Preference value, based on the community string added by the export policy of PE-3.

# on PE-4
configure {
    policy-options {
        community "MVPN1_RT" {
            member "target:64496:1" { }
        }
        community "blue" {
            member "64496:11" { }
        }
        community "red" {
            member "64496:33" { }
        }
        prefix-list "group_239.255.x.y" {
            prefix 239.255.0.0/16 type longer {
            }
        }
        policy-statement "MVPN1_import" {
            entry 10 {
                description "allow MVPN source-ad - set LP to 200 for 'red'"
                from {
                    group-address "group_239.255.x.y"
                    mvpn-type source-active-auto-discovery
                    community {
                        expression "[red] AND [MVPN1_RT]"
                    }
                }
                action {
                    action-type accept
                    local-preference 200
                }
            }
            entry 20 {
                description "allow MVPN source-ad - set LP to 50 for 'blue'"
                from {
                    group-address "group_239.255.x.y"
                    mvpn-type source-active-auto-discovery
                    community {
                        expression "[blue] AND [MVPN1_RT]"
                    }
                }
                action {
                    action-type accept
                    local-preference 50
                }
            }
            default-action {
                action-type accept
            }
        }
    }
}

The export policy for MVPN routes adds the route target extended community. It is exactly the same export policy as for PE-2.

The additional MVPN configuration for VPRN 1 on PE-4 is identically the same as for PE-2.

Each PE within the MVPN originates an Intra-AD BGP route. This notifies the other PEs within the VPRN. This is used to create a set of Inclusive Provider Multicast Service Interfaces (I-PMSI) between each PE. In this case, I-PMSIs are signaled using mLDP.

Using PE-1 as an example, the set of Intra-AD routes can be seen using the following command:

[/]
A:admin@PE-1# show router bgp routes mvpn-ipv4
===============================================================================
 BGP Router ID:192.0.2.1        AS:64496       Local AS:64496      
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP MVPN-IPv4 Routes
===============================================================================
Flag  RouteType                   OriginatorIP           LocalPref   MED
      RD                          SourceAS               Path-Id     IGP Cost
      Nexthop                     SourceIP                           Label
      As-Path                     GroupIP                            
-------------------------------------------------------------------------------
i     Intra-Ad                    192.0.2.1              100         0
      64496:1                     -                      None        -
      192.0.2.1                   -                                   
      No As-Path                  -                                   
u*>i  Intra-Ad                    192.0.2.2              100         0
      64496:1                     -                      None        -
      192.0.2.2                   -                                   
      No As-Path                  -                                   
u*>i  Intra-Ad                    192.0.2.3              100         0
      64496:1                     -                      None        -
      192.0.2.3                   -                                   
      No As-Path                  -                                   
u*>i  Intra-Ad                    192.0.2.4              100         0
      64496:1                     -                      None        -
      192.0.2.4                   -                                   
      No As-Path                  -                                   
-------------------------------------------------------------------------------
Routes : 4
===============================================================================

At this moment, there are no connected sources detected and no receivers wanting to join any multicast sources.

Each I-PMSI is seen as a PIM tunnel interface. As there are four routers in the MVPN, there are four I-PMSIs.

[/]
A:admin@PE-1# show router "1" pim tunnel-interface

===============================================================================
PIM Interfaces ipv4
===============================================================================
Interface                        Originator Address   Adm  Opr  Transport Type
-------------------------------------------------------------------------------
mpls-if-73730                    192.0.2.1            Up   Up   Tx-IPMSI
mpls-virt-if-1005857             192.0.2.3            Up   Up   Rx-IPMSI
mpls-virt-if-1005858             192.0.2.2            Up   Up   Rx-IPMSI
mpls-virt-if-1005859             192.0.2.4            Up   Up   Rx-IPMSI
-------------------------------------------------------------------------------
Interfaces : 4
===============================================================================

To be able to reach the source, a route for each source is included in the VRF for VPRN 1.

For PE-2, this looks as follows:

[/]
A:admin@PE-2# show router "1" route-table

===============================================================================
Route Table (Service: 1)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
10.10.10.1/32                                 Remote  BGP VPN   00h04m05s  170
       192.0.2.1 (tunneled)                                         2
10.10.10.3/32                                 Remote  BGP VPN   00h04m05s  170
       192.0.2.3 (tunneled)                                         2
172.16.1.0/24                                 Remote  BGP VPN   00h04m05s  170
       192.0.2.1 (tunneled)                                         2
172.16.2.0/24                                 Local   Local     00h06m57s  0
       int-PE-2-H-2                                                 0
172.16.3.0/24                                 Remote  BGP VPN   00h04m05s  170
       192.0.2.3 (tunneled)                                         2
172.16.4.0/24                                 Remote  BGP VPN   00h02m34s  170
       192.0.2.4 (tunneled)                                         2
-------------------------------------------------------------------------------
No. of Routes: 6
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

The sources at 172.16.1.0/24 and 172.16.3.0/24 are learned as BGP VPN routes.

The following output shows the BGP routes for these prefixes, for example for prefix 172.16.1.0/24 on PE-2:

[/]
A:admin@PE-2# show router bgp routes 172.16.1.0/24 vpn-ipv4 hunt
===============================================================================
 BGP Router ID:192.0.2.2        AS:64496       Local AS:64496      
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP VPN-IPv4 Routes
===============================================================================
-------------------------------------------------------------------------------
RIB In Entries
-------------------------------------------------------------------------------
Network        : 172.16.1.0/24
Nexthop        : 192.0.2.1
Route Dist.    : 64496:1                VPN Label      : 524281
Path Id        : None                   
From           : 192.0.2.5
Res. Nexthop   : n/a
Local Pref.    : 100                    Interface Name : int-PE-2-P-5
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : None
AIGP Metric    : None                   IGP Cost       : 2
Connector      : None
Community      : target:64496:1 l2-vpn/vrf-imp:192.0.2.1:2
                 source-as:64496:0
Cluster        : 1.1.1.1
Originator Id  : 192.0.2.1              Peer Router Id : 192.0.2.5
Fwd Class      : None                   Priority       : None
Origin         : IGP                    
Flags          : Used Valid Best 
Route Source   : Internal
AS-Path        : No As-Path
Route Tag      : 0                      
Neighbor-AS    : n/a
DB Orig Val    : N/A                    Final Orig Val : N/A
Source Class   : 0                      Dest Class     : 0
Add Paths Send : Default                
Last Modified  : 00h04m35s              
VPRN Imported  : 1
 
-------------------------------------------------------------------------------
RIB Out Entries
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Routes : 1
===============================================================================

This prefix is advertised with three communities:

  • A route target extended community

  • An l2-vpn/vrf-import extended community.

  • A source-AS extended community (not used in Intra-AS context).

The l2-vpn/vrf-import extended community is significant as it is a unique value. It represents a specific MVPN on a specific PE and comprises a 32 bit value that identifies the PE plus an index identifying the VRF. The 32 bit value is the system address. The index (2) can be derived from the command:

[/]
A:admin@PE-2# admin show configuration | match 'router-name "1" vrtr-id'
        router-name "1" vrtr-id 2

Therefore, the l2-vpn/vrf-import community for VPRN 1 on PE-1 is 192.0.2.1:2

This community attribute is included within the source-join BGP route that is sent in a BGP update by a receiver PE as it tries to join a multicast group with a source address that matches the 172.16.1.0/24 prefix. This ensures that the source-join route is only accepted as a valid route and imported by the PE that originated the source address prefix. This is described in the following section.

Enable Redundant Sources

The redundant sources are now enabled so that multicast traffic flows into both PE-1 and PE-3, using groups (S-1,G-1) and (S-3,G-1), respectively.

On each of these PEs, a source active AD route is generated. By examining each receiver PE, these can be clearly seen.

For PE-2, the source active AD routes can be seen using the following command.

[/]
A:admin@PE-2# show router bgp routes mvpn-ipv4 type source-ad
===============================================================================
 BGP Router ID:192.0.2.2        AS:64496       Local AS:64496      
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP MVPN-IPv4 Routes
===============================================================================
Flag  RouteType                   OriginatorIP           LocalPref   MED
      RD                          SourceAS               Path-Id     IGP Cost
      Nexthop                     SourceIP                           Label
      As-Path                     GroupIP                            
-------------------------------------------------------------------------------
u*>i  Source-Ad                   -                      200         0
      64496:1                     -                      None        -
      192.0.2.1                   172.16.1.11                         
      No As-Path                  239.255.0.1                         
u*>i  Source-Ad                   -                      50          0
      64496:1                     -                      None        -
      192.0.2.3                   172.16.3.33                         
      No As-Path                  239.255.0.1                         
-------------------------------------------------------------------------------
Routes : 2
===============================================================================

There are two routes present, one from each source for the same group from PE-1 and PE-3.

The PIM groups can now be seen on PE-1 as follows:

[/]
A:admin@PE-1# show router "1" pim group

===============================================================================
Legend:  A = Active   S = Standby
===============================================================================
PIM Groups ipv4
===============================================================================
Group Address               Type                Spt Bit  Inc Intf       No.Oifs
   Source Address              RP                  State    Inc Intf(S) 
-------------------------------------------------------------------------------
239.255.0.1                 (S,G)                        int-PE-1-S-1   0
   172.16.1.11                 10.10.10.1                                  
239.255.0.1                 (S,G)                                       0
   172.16.3.33                 10.10.10.1                                  
-------------------------------------------------------------------------------
Groups : 2
===============================================================================

There are two groups on PE-1. In addition to its locally connected source, PE-1 has also received a source active from PE-3 which has an incoming interface of the I-PMSI toward PE-3. The outgoing interface list is empty as there is no host wanting to become a group member.

Similarly, on the other sender, PE-3.

[/]
A:admin@PE-3# show router "1" pim group

===============================================================================
Legend:  A = Active   S = Standby
===============================================================================
PIM Groups ipv4
===============================================================================
Group Address               Type                Spt Bit  Inc Intf       No.Oifs
   Source Address              RP                  State    Inc Intf(S) 
-------------------------------------------------------------------------------
239.255.0.1                 (S,G)                                       0
   172.16.1.11                 10.10.10.3                                  
239.255.0.1                 (S,G)                        int-PE-3-S-3   0
   172.16.3.33                 10.10.10.3                                  
-------------------------------------------------------------------------------
Groups : 2
===============================================================================

By examining the receiver PE-2, it can be seen that the Source AD route for (S,G) (172.16.1.2, 239.255.0.1) from PE-1 has a higher local preference so it is chosen as the preferred (active) source. Examining these routes in more detail shows that each route is tagged with two communities: the route target extended community and the ‟red” or ‟blue” community, as seen in the following output.

[/]
A:admin@PE-2# show router bgp routes mvpn-ipv4 type source-ad hunt
===============================================================================
 BGP Router ID:192.0.2.2        AS:64496       Local AS:64496      
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP MVPN-IPv4 Routes
===============================================================================
-------------------------------------------------------------------------------
RIB In Entries
-------------------------------------------------------------------------------
Route Type     : Source-Ad              
Route Dist.    : 64496:1
Source IP      : 172.16.1.11
Group IP       : 239.255.0.1
Nexthop        : 192.0.2.1
Path Id        : None                   
From           : 192.0.2.5
Res. Nexthop   : 0.0.0.0
Local Pref.    : 200                    Interface Name : NotAvailable
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : 0
AIGP Metric    : None                   IGP Cost       : n/a
Connector      : None
Community      : 64496:11 no-export target:64496:1
Cluster        : 1.1.1.1
Originator Id  : 192.0.2.1              Peer Router Id : 192.0.2.5
Origin         : IGP                    
Flags          : Used Valid Best 
---snip---
VPRN Imported  : 1
 
-------------------------------------------------------------------------------
 
Route Type     : Source-Ad              
Route Dist.    : 64496:1
Source IP      : 172.16.3.33
Group IP       : 239.255.0.1
Nexthop        : 192.0.2.3
Path Id        : None                   
From           : 192.0.2.5
Res. Nexthop   : 0.0.0.0
Local Pref.    : 50                     Interface Name : NotAvailable
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : 0
AIGP Metric    : None                   IGP Cost       : n/a
Connector      : None
Community      : 64496:33 no-export target:64496:1
Cluster        : 1.1.1.1
Originator Id  : 192.0.2.3              Peer Router Id : 192.0.2.5
Origin         : IGP                    
Flags          : Used Valid Best 
---snip---
VPRN Imported  : 1
 
-------------------------------------------------------------------------------
RIB Out Entries
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Routes : 2
===============================================================================

The local preference is set based on these community values.

A debug of the received BGP Source AD routes is as follows for PE-2:

1 2024/02/06 15:55:45.841 UTC MINOR: DEBUG #2001 Base Peer 1: 192.0.2.5
"Peer 1: 192.0.2.5: UPDATE
Peer 1: 192.0.2.5 - Received BGP UPDATE:
    Withdrawn Length = 0
    Total Path Attr Length = 90
    Flag: 0x90 Type: 14 Len: 29 Multiprotocol Reachable NLRI:
        Address Family MVPN_IPV4
        NextHop len 4 NextHop 192.0.2.1
        Type: Source-AD Len: 18 RD: 64496:1 Src: 172.16.1.11 Grp: 239.255.0.1
    Flag: 0x40 Type: 1 Len: 1 Origin: 0
    Flag: 0x40 Type: 2 Len: 0 AS Path:
    Flag: 0x80 Type: 4 Len: 4 MED: 0
    Flag: 0x40 Type: 5 Len: 4 Local Preference: 100
    Flag: 0xc0 Type: 8 Len: 8 Community:
        64496:11
        no-export
    Flag: 0x80 Type: 9 Len: 4 Originator ID: 192.0.2.1
    Flag: 0x80 Type: 10 Len: 4 Cluster ID:
        1.1.1.1
    Flag: 0xc0 Type: 16 Len: 8 Extended Community:
        target:64496:1
"



2 2024/02/06 15:55:45.841 UTC MINOR: DEBUG #2001 Base Peer 1: 192.0.2.5
"Peer 1: 192.0.2.5: UPDATE
Peer 1: 192.0.2.5 - Received BGP UPDATE:
    Withdrawn Length = 0
    Total Path Attr Length = 90
    Flag: 0x90 Type: 14 Len: 29 Multiprotocol Reachable NLRI:
        Address Family MVPN_IPV4
        NextHop len 4 NextHop 192.0.2.3
        Type: Source-AD Len: 18 RD: 64496:1 Src: 172.16.3.33 Grp: 239.255.0.1
    Flag: 0x40 Type: 1 Len: 1 Origin: 0
    Flag: 0x40 Type: 2 Len: 0 AS Path:
    Flag: 0x80 Type: 4 Len: 4 MED: 0
    Flag: 0x40 Type: 5 Len: 4 Local Preference: 100
    Flag: 0xc0 Type: 8 Len: 8 Community:
        64496:33
        no-export
    Flag: 0x80 Type: 9 Len: 4 Originator ID: 192.0.2.3
    Flag: 0x80 Type: 10 Len: 4 Cluster ID:
        1.1.1.1
    Flag: 0xc0 Type: 16 Len: 8 Extended Community:
        target:64496:1
"

Similarly, the Source Active routes on receiver PE-4 show that the highest local preference value of 200 is set for the SA route received from PE-3 with an originator ID of 192.0.2.3, as follows:

[/]
A:admin@PE-4# show router bgp routes mvpn-ipv4 type source-ad hunt
===============================================================================
 BGP Router ID:192.0.2.4        AS:64496       Local AS:64496      
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP MVPN-IPv4 Routes
===============================================================================
-------------------------------------------------------------------------------
RIB In Entries
-------------------------------------------------------------------------------
Route Type     : Source-Ad              
Route Dist.    : 64496:1
Source IP      : 172.16.1.11
Group IP       : 239.255.0.1
Nexthop        : 192.0.2.1
Path Id        : None                   
From           : 192.0.2.5
Res. Nexthop   : 0.0.0.0
Local Pref.    : 50                     Interface Name : NotAvailable
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : 0
AIGP Metric    : None                   IGP Cost       : n/a
Connector      : None
Community      : 64496:11 no-export target:64496:1
Cluster        : 1.1.1.1
Originator Id  : 192.0.2.1              Peer Router Id : 192.0.2.5
Origin         : IGP                    
Flags          : Used Valid Best 
---snip---
VPRN Imported  : 1
 
-------------------------------------------------------------------------------
 
Route Type     : Source-Ad              
Route Dist.    : 64496:1
Source IP      : 172.16.3.33
Group IP       : 239.255.0.1
Nexthop        : 192.0.2.3
Path Id        : None                   
From           : 192.0.2.5
Res. Nexthop   : 0.0.0.0
Local Pref.    : 200                    Interface Name : NotAvailable
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : 0
AIGP Metric    : None                   IGP Cost       : n/a
Connector      : None
Community      : 64496:33 no-export target:64496:1
Cluster        : 1.1.1.1
Originator Id  : 192.0.2.3              Peer Router Id : 192.0.2.5
Origin         : IGP                    
Flags          : Used Valid Best 
---snip---
VPRN Imported  : 1
 
-------------------------------------------------------------------------------
RIB Out Entries
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Routes : 2
===============================================================================

Host Group Membership

If the hosts then send a (*,G) request to join the group, a source-join route is originated by each receiver PE toward the preferred source from the redundant list.

The following output shows a join originated by PE-2:

[/]
A:admin@PE-2# //
INFO: CLI #2051: Switching to the classic CLI engine
A:PE-2# show debug 
debug
    router "Base"
        bgp
            update
        exit
    exit
exit
A:PE-2# //
INFO: CLI #2052: Switching to the MD-CLI engine
3 2024/02/06 15:58:10.010 UTC MINOR: DEBUG #2001 Base Peer 1: 192.0.2.5
"Peer 1: 192.0.2.5: UPDATE
Peer 1: 192.0.2.5 - Send BGP UPDATE:
    Withdrawn Length = 0
    Total Path Attr Length = 84
    Flag: 0x90 Type: 14 Len: 33 Multiprotocol Reachable NLRI:
        Address Family MVPN_IPV4
        NextHop len 4 NextHop 192.0.2.2
        Type: Source-Join Len:22 RD: 64496:1 SrcAS: 64496 Src: 172.16.1.11 Grp: 239.255.0.1
    Flag: 0x40 Type: 1 Len: 1 Origin: 0
    Flag: 0x40 Type: 2 Len: 0 AS Path:
    Flag: 0x80 Type: 4 Len: 4 MED: 0
    Flag: 0x40 Type: 5 Len: 4 Local Preference: 100
    Flag: 0xc0 Type: 8 Len: 4 Community:
        no-export
    Flag: 0xc0 Type: 16 Len: 16 Extended Community:
        target:64496:1
        target:192.0.2.1:2
"

When an active source AD route is present, there is no shared join sent to the RP. Because the source address is known, only a source-join needs to be sent. The source-join is trying to become a member of group 239.255.0.1 with a source address of 172.16.1.11. As this is sent as a BGP routing update, this must be accepted by the MVPN VRF at the PE that originated the unicast route that represents the c-multicast source. As previously mentioned, there are two extended community values. The second of these is the l2-vpn/vrf-import route target for 192.0.2.1 (PE-1), so only PE-1 accepts this route.

Examining the PIM state table for PE-2 shows the presence of a group with multiple sources.

[/]
A:admin@PE-2# show router "1" pim group

===============================================================================
Legend:  A = Active   S = Standby
===============================================================================
PIM Groups ipv4
===============================================================================
Group Address               Type                Spt Bit  Inc Intf       No.Oifs
   Source Address              RP                  State    Inc Intf(S) 
-------------------------------------------------------------------------------
239.255.0.1                 (*,G)                        mpls-if-73730  1
   *                           10.10.10.1                                  
239.255.0.1                 (S,G)               spt      mpls-if-73730  1
   172.16.1.11                 10.10.10.1          A                       
239.255.0.1                 (S,G)                        mpls-if-73731  1
   172.16.3.33                 10.10.10.1          S                       
-------------------------------------------------------------------------------
Groups : 3
===============================================================================

Each (S,G) has a state of either Active (A) or Standby (S), and the active group is chosen based on the Source Active AD with the highest local preference.

As a direct comparison, PE-4 also has the same two (S,G) states, but has a reversed active and standby source.

[/]
A:admin@PE-4# show router "1" pim group

===============================================================================
Legend:  A = Active   S = Standby
===============================================================================
PIM Groups ipv4
===============================================================================
Group Address               Type                Spt Bit  Inc Intf       No.Oifs
   Source Address              RP                  State    Inc Intf(S) 
-------------------------------------------------------------------------------
239.255.0.1                 (*,G)                        mpls-if-73731  1
   *                           10.10.10.3                                  
239.255.0.1                 (S,G)                        mpls-if-73730  1
   172.16.1.11                 10.10.10.3          S                       
239.255.0.1                 (S,G)               spt      mpls-if-73731  1
   172.16.3.33                 10.10.10.3          A                       
-------------------------------------------------------------------------------
Groups : 3
===============================================================================

The Source Active ADs received on PE-4 have their local preference values based on the community string value.

[/]
A:admin@PE-4# show router bgp routes mvpn-ipv4 type source-ad hunt
===============================================================================
 BGP Router ID:192.0.2.4        AS:64496       Local AS:64496      
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP MVPN-IPv4 Routes
===============================================================================
-------------------------------------------------------------------------------
RIB In Entries
-------------------------------------------------------------------------------
Route Type     : Source-Ad              
Route Dist.    : 64496:1
Source IP      : 172.16.1.11
Group IP       : 239.255.0.1
Nexthop        : 192.0.2.1
Path Id        : None                   
From           : 192.0.2.5
Res. Nexthop   : 0.0.0.0
Local Pref.    : 50                     Interface Name : NotAvailable
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : 0
AIGP Metric    : None                   IGP Cost       : n/a
Connector      : None
Community      : 64496:11 no-export target:64496:1
Cluster        : 1.1.1.1
Originator Id  : 192.0.2.1              Peer Router Id : 192.0.2.5
Origin         : IGP                    
Flags          : Used Valid Best 
---snip---              
VPRN Imported  : 1
 
-------------------------------------------------------------------------------
 
Route Type     : Source-Ad              
Route Dist.    : 64496:1
Source IP      : 172.16.3.33
Group IP       : 239.255.0.1
Nexthop        : 192.0.2.3
Path Id        : None                   
From           : 192.0.2.5
Res. Nexthop   : 0.0.0.0
Local Pref.    : 200                    Interface Name : NotAvailable
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : 0
AIGP Metric    : None                   IGP Cost       : n/a
Connector      : None
Community      : 64496:33 no-export target:64496:1
Cluster        : 1.1.1.1
Originator Id  : 192.0.2.3              Peer Router Id : 192.0.2.5
Origin         : IGP                    
Flags          : Used Valid Best 
Route Source   : Internal
---snip---
VPRN Imported  : 1
 
-------------------------------------------------------------------------------
RIB Out Entries
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Routes : 2
===============================================================================

Sender PE MVPN Status

The MVPN status of the PE-1 sender PE is as follows:

[/]
A:admin@PE-1# show router "1" mvpn

===============================================================================
MVPN 1 configuration data
===============================================================================
signaling          : Bgp                  auto-discovery     : Default
UMH Selection      : Highest-Ip           SA withdrawn       : Disabled
intersite-shared   : Enabled              Persist SA         : Enabled
vrf-import         : MVPN1_import
vrf-export         : MVPN1_export
vrf-target         : N/A                  
C-Mcast Import RT  : target:192.0.2.1:2
 
ipmsi              : ldp
i-pmsi P2MP AdmSt  : Up                   
i-pmsi Tunnel Name : mpls-if-73730        
Mdt-type           : sender-only          
ipmsi UMH RM       : Disabled
 
BSR signalling     : none                 
Wildcard s-pmsi    : Disabled             
Multistream-SPMSI  : Disabled             
s-pmsi             : none                 
data-delay-interval: 3 seconds            
enable-asm-mdt     : N/A                  
spmsi UMH RM       : Disabled
 
===============================================================================

The C-Mcast Import RT is set to <system-address>:<VPRN index>.

The VPRN index is derived from the following command:

[/]
A:admin@PE-1# admin show configuration | match 'router-name "1" vrtr-id'
        router-name "1" vrtr-id 2

Any Source Join received must include this attribute along with the route target extended community. As previously stated, this is advertised within the VPN-IPv4 routes as a BGP attribute.

A source join received from PE-2 to join (S,G) (172.16.1.2, 239.255.0.1) is as follows:

[/]
A:admin@PE-1# show router bgp routes mvpn-ipv4 type source-join hunt
===============================================================================
 BGP Router ID:192.0.2.1        AS:64496       Local AS:64496      
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP MVPN-IPv4 Routes
===============================================================================
-------------------------------------------------------------------------------
RIB In Entries
-------------------------------------------------------------------------------
Route Type     : Source-Join            
Route Dist.    : 64496:1
Source AS      : 64496
Source IP      : 172.16.1.11
Group IP       : 239.255.0.1
Nexthop        : 192.0.2.2
Path Id        : None                   
From           : 192.0.2.5
Res. Nexthop   : 0.0.0.0
Local Pref.    : 100                    Interface Name : NotAvailable
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : 0
AIGP Metric    : None                   IGP Cost       : n/a
Connector      : None
Community      : no-export target:64496:1 target:192.0.2.1:2
Cluster        : 1.1.1.1
Originator Id  : 192.0.2.2              Peer Router Id : 192.0.2.5
Origin         : IGP                    
Flags          : Used Valid Best 
Route Source   : Internal
AS-Path        : No As-Path
Route Tag      : 0                      
Neighbor-AS    : n/a
DB Orig Val    : N/A                    Final Orig Val : N/A
Source Class   : 0                      Dest Class     : 0
Add Paths Send : Default                
Last Modified  : 00h02m46s              
VPRN Imported  : 1
 
-------------------------------------------------------------------------------
RIB Out Entries
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Routes : 1
===============================================================================

The PIM status for this group on sender PE-1 is as follows:

[/]
A:admin@PE-1# show router "1" pim group 239.255.0.1 source 172.16.1.11 detail

===============================================================================
PIM Source Group ipv4
===============================================================================
Group Address      : 239.255.0.1
Source Address     : 172.16.1.11
RP Address         : 10.10.10.1
Advt Router        : 192.0.2.1
Flags              : spt                Type               : (S,G)
Mode               : sparse             
MRIB Next Hop      : 172.16.1.11
MRIB Src Flags     : direct             
Keepalive Timer Exp: 0d 00:00:16        
Up Time            : 0d 00:06:19        Resolved By        : rtable-u
 
Up JP State        : Joined             Up JP Expiry       : 0d 00:00:00
Up JP Rpt          : Not Joined StarG   Up JP Rpt Override : 0d 00:00:00
 
Register State     : Pruned             Register Stop Exp  : 0d 00:00:35
Reg From Anycast RP: No                 
 
Rpf Neighbor       : 172.16.1.11
Incoming Intf      : int-PE-1-S-1
Outgoing Intf List : mpls-if-73730
 
Curr Fwding Rate   : 110.560 kbps       
Forwarded Packets  : 3798               Discarded Packets  : 0
Forwarded Octets   : 5248836            RPF Mismatches     : 0
Spt threshold      : 0 kbps             ECMP opt threshold : 7
Admin bandwidth    : 1 kbps             
-------------------------------------------------------------------------------
Groups : 1
===============================================================================

The outgoing interface list is the I-PMSI, and traffic is seen to be flowing because the current forwarding rate is non-zero.

Similarly for sender PE-3, the MVPN status is:

[/]
A:admin@PE-3# show router "1" mvpn

===============================================================================
MVPN 1 configuration data
===============================================================================
signaling          : Bgp                  auto-discovery     : Default
UMH Selection      : Highest-Ip           SA withdrawn       : Disabled
intersite-shared   : Enabled              Persist SA         : Enabled
vrf-import         : MVPN1_import
vrf-export         : MVPN1_export
vrf-target         : N/A                  
C-Mcast Import RT  : target:192.0.2.3:2
 
ipmsi              : ldp
i-pmsi P2MP AdmSt  : Up                   
i-pmsi Tunnel Name : mpls-if-73730        
Mdt-type           : sender-only          
ipmsi UMH RM       : Disabled
 
BSR signalling     : none                 
Wildcard s-pmsi    : Disabled             
Multistream-SPMSI  : Disabled             
s-pmsi             : none                 
data-delay-interval: 3 seconds            
enable-asm-mdt     : N/A                  
spmsi UMH RM       : Disabled
 
===============================================================================

The Source-Join route on PE-3 for this multicast group is:

[/]
A:admin@PE-3# show router bgp routes mvpn-ipv4 type source-join hunt
===============================================================================
 BGP Router ID:192.0.2.3        AS:64496       Local AS:64496      
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP MVPN-IPv4 Routes
===============================================================================
-------------------------------------------------------------------------------
RIB In Entries
-------------------------------------------------------------------------------
Route Type     : Source-Join            
Route Dist.    : 64496:1
Source AS      : 64496
Source IP      : 172.16.3.33
Group IP       : 239.255.0.1
Nexthop        : 192.0.2.4
Path Id        : None                   
From           : 192.0.2.5
Res. Nexthop   : 0.0.0.0
Local Pref.    : 100                    Interface Name : NotAvailable
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : 0
AIGP Metric    : None                   IGP Cost       : n/a
Connector      : None
Community      : no-export target:64496:1 target:192.0.2.3:2
Cluster        : 1.1.1.1
Originator Id  : 192.0.2.4              Peer Router Id : 192.0.2.5
Origin         : IGP                    
Flags          : Used Valid Best 
Route Source   : Internal
AS-Path        : No As-Path
Route Tag      : 0                      
Neighbor-AS    : n/a
DB Orig Val    : N/A                    Final Orig Val : N/A
Source Class   : 0                      Dest Class     : 0
Add Paths Send : Default                
Last Modified  : 00h02m25s              
VPRN Imported  : 1
 
-------------------------------------------------------------------------------
RIB Out Entries
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Routes : 1
===============================================================================

The PIM state for this group is as follows:

[/]
A:admin@PE-3# show router "1" pim group 239.255.0.1 source 172.16.3.33 detail

===============================================================================
PIM Source Group ipv4
===============================================================================
Group Address      : 239.255.0.1
Source Address     : 172.16.3.33
RP Address         : 10.10.10.3
Advt Router        : 192.0.2.3
Flags              : spt                Type               : (S,G)
Mode               : sparse             
MRIB Next Hop      : 172.16.3.33
MRIB Src Flags     : direct             
Keepalive Timer Exp: 0d 00:00:26        
Up Time            : 0d 00:06:29        Resolved By        : rtable-u
 
Up JP State        : Joined             Up JP Expiry       : 0d 00:00:00
Up JP Rpt          : Not Joined StarG   Up JP Rpt Override : 0d 00:00:00
 
Register State     : Pruned             Register Stop Exp  : 0d 00:00:11
Reg From Anycast RP: No                 
 
Rpf Neighbor       : 172.16.3.33
Incoming Intf      : int-PE-3-S-3
Outgoing Intf List : mpls-if-73730
 
Curr Fwding Rate   : 110.560 kbps       
Forwarded Packets  : 3890               Discarded Packets  : 0
Forwarded Octets   : 5375980            RPF Mismatches     : 0
Spt threshold      : 0 kbps             ECMP opt threshold : 7
Admin bandwidth    : 1 kbps             
-------------------------------------------------------------------------------
Groups : 1
===============================================================================

The preferred source remains active unless:

  • The multicast source ceases to exist, the source PE withdraws the Source Active AD route

  • Or a Source Active AD is received with a higher local preference.

Conclusion

MVPN Source Redundancy provides an optimal solution for multicast routing in a VPRN. This protocol provides simple configuration, operation and guaranteed fast protection time. It could be used in a regionalized IPTV solution where multiple sources for the same TV channel are used.