GTM

GTM overview

GTM with BGP Multicast VPN (BGP-MVPN), as specified in RFC 7716, allows a Service Provider (SP) to use the same multicast architecture that was originally developed for VPNs to distribute multicast routing information that is not specific to VPNs. Instead of storing the routing information in VRFs, multicast routing information is maintained in a global table for the router.

The architecture can be logically divided into a core network and non-core (attachment) networks. The multicast routing protocol used in the core network may not be the same as the protocol used in the attachment networks. As there is a protocol boundary between the core and attachment networks, the term Protocol Boundary Router (PBR) refers to the core routers that are at the boundary. A PBR is not necessarily an edge router in the PE sense; however, a PBR in the SP network marks the border of any tunnels that are used to transport multicast traffic across the core network. Routers that are attached to the PBRs but that are not part of the core network are referred to as Attachment Routers (ARs). See GTM network topology example.

Figure 1. GTM network topology example

Multicast data traffic from an AR is tunneled through the core network from an ingress PBR to one or more egress PBRs, using multicast routing information stored in the PBR’s global table. The global table learns the PBR’s multicast routing information from the ARs attached to the PBR and distributes the information among the PBRs using BGP. PBRs use the same BGP-MVPN procedures used by PE routers to route multicast VPN traffic, with some adaptations to the procedures to use the global table instead of a VRF.

By using the BGP procedures designed for MVPN to support GTM, a single control plane is available to govern the use of both VPN and non-VPN multicast. The features and characteristics of MVPN carry over automatically to GTM, including, but not limited to:

  • scaling

  • aggregation

  • transport over RSVP tunnels in the SP network

  • support for non-segmented intra-autonomous systems (ASs) tunnels

  • support for PIM-SSM outside of the core

  • support for both IPv4 and IPv6 multicast flows over an IPv4 SP infrastructure

  • support for unsolicited flooded data (including support for BSR as an RP-to-group mapping protocol

Using BGP-MVPN procedures in GTM

Route distinguishers and route targets

The BGP routes used in the MVPN procedures have a Subsequent Address Family Identifier (SAFI) value of 5, or MCAST-VPN. The Network Layer Reachability Information (NLRI) format for MCAST-VPN routes consists of a Route Type (RT) field and depending on the RT, a Route Distinguisher (RD) Extended Community (EC) field.

Note: The ECs are automatically configured for GTM and are not visible in the configuration.

To distinguish MCAST-VPN routes originated for VPNs from MCAST-VPN routes in support of GTM, the RD field, if defined within that route’s NLRI, must be set to zero (that is, 64 bits of zero). An RD of all zeros associates that route with GTM, as no VRF can have an RD of zero.

MVPN procedures use two types of RTs, one of which is carried only in the routes of C-multicast shared tree joins, C-multicast source tree joins, and leaf auto-discovery routes (A-D routes). This RT type identifies the PE router that has been selected by the route’s originator as the Upstream PE or as the Upstream Multicast Hop (UMH) for a particular multicast flow or set of multicast flows. This RT must be an IPv4- or IPv6-address-specific EC, where the Global Administrator field identifies the Upstream PE or the UMH. If the Global Administrator field identifies the Upstream PE, the Local Administrator field identifies a particular VRF in that PE.

To support GTM, this type of RT is used in the same situations as in the MVPN specifications, with the modification that the Local Administrator field of this RT type must always be set to zero. This implicitly identifies the global table instead of identifying a VRF. This type of RT is referred to as an upstream-node-identifying RT.

UMH-eligible routes

For MVPN, routes of SAFI 128 or 129 are UMH-eligible routes. For GTM, routes of SAFI 1, SAFI 4, or SAFI 2 are UMH-eligible routes. Imported routes of SAFI 2 in the global table are UMH-eligible routes; otherwise, routes of SAFI 1 or SAFI 4 are considered UMH-eligible routes. For UMH determination, SAFI 1 and SAFI 4 routes containing the same IP prefix in their respective NLRI fields are considered by the BGP best-path selection process to be comparable.

UMH-eligible routes that have a SAFI of 1, 2, or 4 carry both the VRF Route Import EC and the Source AS EC. These ECs are automatically configured for GTM.

BGP route types supported

BGP route types describes the BGP route types.

Table 1. BGP route types
BGP route type Name Description Supported for GTM

1

Intra-AS I-PMSI AD route

Originated by all PBR routers. Used for advertising and learning intra-AS MVPN membership information.

Yes, always originated by SR OS

2

Inter-AS I-PMSI A-D route

Originated by ASBR routers. Used for advertising and learning inter-AS MVPN membership information.

No (no Inter-AS support)

3

S-PMSI A-D route

Originated by sender PBRs. Used for initiating a selective P-tunnel for a particular (C-S, C-G).

Yes

4

Leaf A-D route

Originated by receiver PBRs in response to receiving a Type 3 route. Used by sender PBR to discover the leaves of a selective P-tunnel.

Yes

5

Source Active A-D route

Originated by the PBR that discovers an active VPN multicast source. Used by PBRs to learn the identity of active VPN multicast sources.

Yes

6

Shared Tree Join route

Originated by receiver PBRs. Originated when a PE receives a shared tree C-join (C-*, C-G) through its PE-CE interface.

Yes

7

Source Tree Join route

Originated by receiver PBRs. Originated when a PBR receives a source tree C-join (C-S, C-G) or originated by the PBR that already has a Type 6 route and receives a Type 5 route.

Yes, for non-segmented trees

Configuring GTM

Configuration recommendations

When configuring GTM, the following recommendations should be considered:

  • In a dual-homing configuration, ECMP to the upstream multicast hop (UMH) routers must be configured for the BGP routes to be used. If the UMH routers are unreachable via ECMP, it may cause duplicate traffic in the core. This behavior is consistent with RFC 7716, section 2.3.4., which states that the single forwarder selection (SFS) procedure cannot be applied to GTM.

  • For IPv6 GTM, the IPv4 address must be configured as the IPv6 system address, as in the following example.

        *A:Dut-F>config>router#
                interface "system"
                    address 10.20.1.4/32
                    ipv6
                        address ff0e::db8:104/128
                    exit
                    no shutdown
                exit
    
Note: GTM auto-discovery (config>router>pim>gtm>auto-discovery) cannot be configured when MoFRR (multicast-fast-failover or multicast6-fast-failover) is enabled.

Configuring GTM with CLI

Example configuration shows an example GTM configuration.

Figure 2. Example configuration

where:

  • routers A and F are CE routers

  • routers B, C, D, and E are MSR routers in the core network

  • the multicast source is at x4

  • the multicast receivers are at x1, x2, and x3

Perform the following steps to configure GTM:

  1. Configure PIM parameters for GTM.

    The following output displays the PIM configuration.

    *B:Dut-D>config>router>pim# info
    ----------------------------------------------
                 interface "intf_to_B"
                     shutdown
                 exit
                 interface "intf_to_E"
                     shutdown
                 exit
                 apply-to all
                 rp
                     static
                         address 10.100.1.1
                             group-prefix 224.0.0.0/4
                         exit
                     exit
                     bsr-candidate
                         shutdown
                     exit
                     rp-candidate
                         shutdown
                     exit
                 exit
                 gtm
                     auto-discovery default
                 exit
                 no mc-ecmp-balance
                 no shutdown
    ----------------------------------------------
    *B:Dut-D>config>router>pim# 
    
  2. Configure the GTM parameters.

    The following output displays the GTM configuration.

    *B:Dut-D>config>router>gtm# info
    ----------------------------------------------
                 mvpn
                 provider-tunnel
                     inclusive
                         rsvp
                             lsp-template "IpmsiTmpl"
                             no shutdown
                         exit
                     exit
                     selective
                         rsvp
                             lsp-template "SpmsiTmpl"
                             no shutdown
                         exit
                         maximum-p2mp-spmsi 4000
                         data-threshold 224.0.0.0/4 1
                     exit
                 exit
    ----------------------------------------------
    *B:Dut-D>config>router>gtm#
    
  3. Configure a route policy for BGP.

    The following output displays the route policy configuration.

    *B:Dut-D>config>router>policy-options# info
    ----------------------------------------------
                 prefix-list "sourceList"
                     prefix 10.10.0.0/16 longer
                     prefix 10.100.0.0/16 longer
                     prefix 10.114.0.0/16 longer
                     prefix 2001:db8:10:10:0:0/96 longer
                     prefix 2001:db8:100:0:0/96 longer
                     prefix 2001:db8:114:0:0/96 longer
                 exit
                 policy-statement "acceptAll"
                     default-action accept
                     exit
                 exit
                 policy-statement "acceptAllBgp"
                     entry 10
                         from
                             protocol rip
                         exit
                         action accept
                         exit
                     exit
                     entry 11
                         from
                             protocol ripng
                         exit
                         action accept
                         exit
                     exit
                     default-action drop
                     exit
                 exit
                 policy-statement "acceptAllPref8"
                     default-action accept
                         preference 8
                     exit
                 exit
    ----------------------------------------------
    *B:Dut-D>config>router>policy-options#
    
  4. Configure BGP parameters for GTM.

    The following output displays the BGP configuration on router D.

    *B:Dut-D#configure router bgp
    *B:Dut-D>config>router>bgp# info
    ----------------------------------------------
                 connect-retry 1
                 multipath 16
                 export "acceptAllBgp"
                 router-id 10.20.1.4
                 rapid-withdrawal
                 rapid-update mvpn-ipv4 mdt-safi mvpn-ipv6
                 mvpn-vrf-import-subtype-new
                 best-path-selection
                     ignore-nh-metric
                 exit
                 group "none"
                     family ipv4 ipv6 mvpn-ipv4 mvpn-ipv6 label-ipv4 label-ipv6
                     next-hop-self
                     local-address 10.20.1.4
                     neighbor 10.20.1.2
                         peer-as 200
                     exit
                     neighbor 10.20.1.3
                         med-out 100
                         peer-as 200
                     exit
                     neighbor 10.20.1.5
                         med-out 100
                         peer-as 200
                     exit
                 exit
                 no shutdown
    ----------------------------------------------
    

    The following output displays the MVPN context on router D.

    *B:Dut-D# show router mvpn
    ===============================================================================
    MVPN Base configuration data
    ===============================================================================
    signaling          : Bgp                  auto-discovery     : Default
    UMH Selection      : Highest-Ip           SA withdrawn       : Disabled
    intersite-shared   : Enabled              Persist SA         : Disabled
    vrf-import         : N/A
    vrf-export         : N/A
    vrf-target         : unicast
    C-Mcast Import RT  : target:10.20.1.4:0
    ipmsi              : rsvp IpmsiTmpl
    i-pmsi P2MP AdmSt  : Up
    i-pmsi Tunnel Name : IpmsiTmpl-gtm-73881
    enable-bfd-root    : false                enable-bfd-leaf    : false
    Mdt-type           : sender-receiver
    BSR signalling     : none
    Wildcard s-pmsi    : Disabled
    Multistream-SPMSI  : Disabled
    spmsi              : rsvp SpmsiTmpl
    s-pmsi P2MP AdmSt  : Up
    max-p2mp-spmsi     : 4000
    data-delay-interval: 3 seconds
    enable-asm-mdt     : N/A
    data-threshold     : 224.0.0.0/4 --> 1 kbps
    ===============================================================================
    

    The following output displays the PIM source group database information about router D.

    *B:Dut-D#show router 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.100.0.0                 (S,G)               spt vprn_itf_D_2b* 1
        10.114.1.2                 10.100.1.1
    239.100.0.1                 (S,G)               spt vprn_itf_D_2b* 1
        10.114.1.2                 10.100.1.1
    239.100.0.2                 (S,G)               spt vprn_itf_D_2b* 1
        10.114.1.2                 10.100.1.1
    239.100.0.3                 (S,G)               spt vprn_itf_D_2b* 1
        10.114.1.2                 10.100.1.1
    -------------------------------------------------------------------------------
    Groups : 4
    ===============================================================================
    * indicates that the corresponding row element may have been truncated.
    *B:Dut-D#show router pim group detail
    ===============================================================================
    PIM Source Group ipv4
    ===============================================================================
    Group Address      : 239.100.0.0
    Source Address     : 10.114.1.2
    RP Address         : 10.100.1.1
    Advt Router        :
    Flags              : spt                Type               : (S,G)
    Mode               : sparse
    MRIB Next Hop      : 10.100.1.1
    MRIB Src Flags     : remote
    Keepalive Timer Exp: 0d 00:02:53
    Up Time            : 0d 00:09:50        Resolved By        : rtable-u
    Up JP State        : Joined             Up JP Expiry       : 0d 00:00:23
    Up JP Rpt          : Not Joined StarG   Up JP Rpt Override : 0d 00:00:00
    Register State     : No Info
    Reg From Anycast RP: No
    Rpf Neighbor       : 10.100.1.1
    Incoming Intf      : vprn_itf_D_2base
    Outgoing Intf List : mpls-if-73881 (mpls-if-73885)
    Curr Fwding Rate   : 1.3 kbps
    Forwarded Packets  : 132                Discarded Packets  : 0
    Forwarded Octets   : 6072               RPF Mismatches     : 0
    Spt threshold      : 0 kbps             ECMP opt threshold : 7
    Admin bandwidth    : 1 kbps
    ===============================================================================
    PIM Source Group ipv4
    ===============================================================================
    Group Address      : 239.100.0.1
    Source Address     : 10.114.1.2
    RP Address         : 10.100.1.1
    Advt Router        :
    Flags              : spt                Type               : (S,G)
    Mode               : sparse
    MRIB Next Hop      : 10.100.1.1
    MRIB Src Flags     : remote
    Keepalive Timer Exp: 0d 00:02:53
    Up Time            : 0d 00:09:50        Resolved By        : rtable-u
    Up JP State        : Joined             Up JP Expiry       : 0d 00:00:23
    Up JP Rpt          : Not Joined StarG   Up JP Rpt Override : 0d 00:00:00
    Register State     : No Info
    Reg From Anycast RP: No
    Rpf Neighbor       : 10.100.1.1
    Incoming Intf      : vprn_itf_D_2base
    Outgoing Intf List : mpls-if-73881 (mpls-if-73886)
    Curr Fwding Rate   : 1.3 kbps
    Forwarded Packets  : 141                Discarded Packets  : 0
    Forwarded Octets   : 6486               RPF Mismatches     : 0
    Spt threshold      : 0 kbps             ECMP opt threshold : 7
    Admin bandwidth    : 1 kbps
    ===============================================================================
    PIM Source Group ipv4
    ===============================================================================
    Group Address      : 239.100.0.2
    Source Address     : 10.114.1.2
    RP Address         : 10.100.1.1
    Advt Router        :
    Flags              : spt                Type               : (S,G)
    Mode               : sparse
    MRIB Next Hop      : 10.100.1.1
    MRIB Src Flags     : remote
    Keepalive Timer Exp: 0d 00:02:52
    Up Time            : 0d 00:09:51        Resolved By        : rtable-u
    Up JP State        : Joined             Up JP Expiry       : 0d 00:00:22
    Up JP Rpt          : Not Joined StarG   Up JP Rpt Override : 0d 00:00:00
    Register State     : No Info
    Reg From Anycast RP: No
    Rpf Neighbor       : 10.100.1.1
    Incoming Intf      : vprn_itf_D_2base
    Outgoing Intf List : mpls-if-73881 (mpls-if-73887)
    Curr Fwding Rate   : 1.3 kbps
    Forwarded Packets  : 140                Discarded Packets  : 0
    Forwarded Octets   : 6440               RPF Mismatches     : 0
    Spt threshold      : 0 kbps             ECMP opt threshold : 7
    Admin bandwidth    : 1 kbps
    ===============================================================================
    PIM Source Group ipv4
    ===============================================================================
    Group Address      : 239.100.0.3
    Source Address     : 10.114.1.2
    RP Address         : 10.100.1.1
    Advt Router        :
    Flags              : spt                Type               : (S,G)
    Mode               : sparse
    MRIB Next Hop      : 10.100.1.1
    MRIB Src Flags     : remote
    Keepalive Timer Exp: 0d 00:02:52
    Up Time            : 0d 00:09:51        Resolved By        : rtable-u
    Up JP State        : Joined             Up JP Expiry       : 0d 00:00:22
    Up JP Rpt          : Not Joined StarG   Up JP Rpt Override : 0d 00:00:00
    Register State     : No Info
    Reg From Anycast RP: No
    Rpf Neighbor       : 10.100.1.1
    Incoming Intf      : vprn_itf_D_2base
    Outgoing Intf List : mpls-if-73881 (mpls-if-73888)
    Curr Fwding Rate   : 1.3 kbps
    Forwarded Packets  : 140                Discarded Packets  : 0
    Forwarded Octets   : 6440               RPF Mismatches     : 0
    Spt threshold      : 0 kbps             ECMP opt threshold : 7
    Admin bandwidth    : 1 kbps
    -------------------------------------------------------------------------------
    Groups : 4
    ===============================================================================
    

    The following output displays the PMSI information about router D.

    *B:Dut-D# show router pim s-pmsi
    ===============================================================================
    PIM RSVP Spmsi tunnels
    ===============================================================================
    P2mp  Tunnel ID   Ext Tunnel Adrs       SPMSI Index   Num State   Multistre
    ID                                                    VPN SGs         am-ID
    -------------------------------------------------------------------------------
    1     61444       10.20.1.4             73885         1 Up      0
    1     61445       10.20.1.4             73886         1 Up      0
    1     61446       10.20.1.4             73887         1 Up      0
    1     61447       10.20.1.4             73888         1 Up      0
    ===============================================================================
    PIM RSVP Spmsi Interfaces : 4
    ===============================================================================
    *B:Dut-D# show router pim s-pmsi detail
    ===============================================================================
    PIM RSVP Spmsi tunnels
    ===============================================================================
    P2MP ID            : 1                  Tunnel ID          : 61444
    Ext Tunnnel Addrs  : 10.20.1.4          Spmsi IfIndex      : 73885
    Number of VPN SGs  : 1                  Up Time            : 0d 00:00:09
    VPN Group Address  : 239.100.0.0
    VPN Source Address : 10.114.1.2
    Up Time            : 0d 00:00:09        Multistream-Id     : N/A
    State              : TX Joined          Mdt Threshold      : 1
    Join Timer         : N/A                Holddown Timer     : 0d 00:00:50
    ===============================================================================
    PIM RSVP Spmsi tunnels
    ===============================================================================
    P2MP ID            : 1                  Tunnel ID          : 61445
    Ext Tunnnel Addrs  : 10.20.1.4          Spmsi IfIndex      : 73886
    Number of VPN SGs  : 1                  Up Time            : 0d 00:00:09
    VPN Group Address  : 239.100.0.1
    VPN Source Address : 100.114.1.2
    Up Time            : 0d 00:00:09        Multistream-Id     : N/A
    State              : TX Joined          Mdt Threshold      : 1
    Join Timer         : N/A                Holddown Timer     : 0d 00:00:50
    ===============================================================================
    PIM RSVP Spmsi tunnels
    ===============================================================================
    P2MP ID            : 1                  Tunnel ID          : 61446
    Ext Tunnnel Addrs  : 10.20.1.4          Spmsi IfIndex      : 73887
    Number of VPN SGs  : 1                  Up Time            : 0d 00:00:09
    VPN Group Address  : 239.100.0.2
    VPN Source Address : 10.114.1.2
    Up Time            : 0d 00:00:09        Multistream-Id     : N/A
    State              : TX Joined          Mdt Threshold      : 1
    Join Timer         : N/A                Holddown Timer     : 0d 00:00:50
    ===============================================================================
    PIM RSVP Spmsi tunnels
    ===============================================================================
    P2MP ID            : 1                  Tunnel ID          : 61447
    Ext Tunnnel Addrs  : 10.20.1.4          Spmsi IfIndex      : 73888
    Number of VPN SGs  : 1                  Up Time            : 0d 00:00:10
    VPN Group Address  : 239.100.0.3
    VPN Source Address : 10.114.1.2
    Up Time            : 0d 00:00:10        Multistream-Id     : N/A
    State              : TX Joined          Mdt Threshold      : 1
    Join Timer         : N/A                Holddown Timer     : 0d 00:00:49
    ===============================================================================
    PIM RSVP Spmsi Interfaces : 4
    ===============================================================================
    
    *B:Dut-D#  show router pim tunnel-interface
    ===============================================================================
    PIM Interfaces ipv4
    ===============================================================================
    Interface                        Originator Address   Adm  Opr Transport 
    Type
    -------------------------------------------------------------------------------
    mpls-if-73881                    10.20.1.4            Up   Up Tx-IPMSI
    mpls-if-73882                    10.20.1.3            Up   Up Rx-IPMSI
    mpls-if-73883                    10.20.1.2            Up   Up Rx-IPMSI
    mpls-if-73884                    10.20.1.5            Up   Up Rx-IPMSI
    mpls-if-73885                    10.20.1.4            Up   Up Tx-SPMSI
    mpls-if-73886                    10.20.1.4            Up   Up Tx-SPMSI
    mpls-if-73887                    10.20.1.4            Up   Up Tx-SPMSI
    mpls-if-73888                    10.20.1.4            Up   Up Tx-SPMSI
    -------------------------------------------------------------------------------
    Interfaces : 8
    ===============================================================================