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.
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.
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.
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
Configuring GTM with CLI
Example configuration shows an example GTM 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:
-
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#
-
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#
-
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#
-
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 ===============================================================================