1. Introduction
The Multicast VPN (MVPN) feature provides the ability to support multicast over a Layer 3 VPN. Multicast allows the efficient distribution of information between a single multicast source and multiple receivers. IP multicast is used to stream video, voice, and data to an MPLS VPN network core. The RBFS MVPN implementation is based on RFC 6513 “Multicast in MPLS/BGP IP VPNs” and RFC 6514 “BGP Encodings and Procedures for Multicast in MPLS/BGP IP VPNs”.
RBFS can operate in a spine/leaf fabric as shown in the diagram. The leaf device delivers access services to subscribers or assets, and the spine device provides connectivity to the core network. In such a scenario, IPv4 multicast traffic is carried in a multicast VPN instance. This also allows to deliver IPv4 multicast traffic across an IPv6-only fabric. In terms of MVPN, both leaf and spine devices act as Provider Edge (PE) routers.
Multicast subscribers will typically join multicast streams via IGMP. Leaf switches will translate and signal the join messages to the spines using BGP MVPN routes. Spine switches will further forward the join messages towards the source to the upstream core router.
1.1. Multicast Address Families
In MVPN, there are two type of instances and address families involved:
-
Within the multicast VPN instance, joins are represented as multicast routes. These are AFI 1 (IPv4), SAFI 2 (Multicast). The IPv4 multicast address family needs to be enabled in the VPN service instance as well as for BGP in the VPN instance.
-
In the Multicast VPN itself, messages like joins or active sources are advertised using BGP MVPN routes. These are AFI 1 (IPv4), SAFI 5 (MVPN). The BGP peerings that carry the MVPN routes typically run in the default instance. Therefore the MVPN address family needs to be enabled in the default instance, both for the BGP instance itself as well as for the BGP peerings.
In summary, the following address families need to be enabled by configuration:
-
The IPv4 multicast address family in the VPN service instance.
-
The IPv4 multicast address family for BGP in the VPN service instance.
-
The Multicast VPN address family in the BGP default instance.
-
The Multicast VPN address family in the BGP peerings in the default instance.
1.2. Supported Platforms
Not all features are necessarily supported on each hardware platform. Refer to the Platform Guide for the features and the sub-features that are or are not supported by each platform.
2. Configuring Multicast VPN
2.1. Configuration Hierarchy
The diagram illustrates the Multicast VPN configuration hierarchy.
2.2. Configuration Syntax and Commands
The following sections describe the MVPN configuration syntax and commands.
2.2.1. Multicast Address Family Configuration
Enable the IPv4 multicast address family in the VPN service instance.
Syntax:
set instance <instance> address-family <afi> <safi> <attribute> <value>
Attribute | Description |
---|---|
<instance> |
The name of the VPN service instance |
<afi> |
Address family identifier (AFI). For IPv4 multicast, the required value is: |
<safi> |
Subsequent address family identifier (SAFI). For IPv4 multicast, the required value is: |
Example: Instance Address Family Configuration
{ "ietf-restconf:data": { "rtbrick-config:instance": [ { "name": "services", "address-family": [ { "afi": "ipv4", "safi": "multicast", "route-target": { "import": "target:198.51.100.10:13", "export": "target:198.51.100.10:13" } } ] } ] } }
2.2.2. BGP Multicast Address Family Configuration
Enable the IPv4 multicast address family for BGP in the VPN service instance.
Syntax:
set instance <instance> protocol bgp address-family <afi> <safi> <attribute> <value>
Attribute | Description |
---|---|
<instance> |
The name of the VPN service instance |
<afi> |
Address family identifier (AFI). For IPv4 multicast, the required value is: |
<safi> |
Subsequent address family identifier (SAFI). For IPv4 multicast, the required value is: |
redistribute <source> |
Optionally redistribute PIM routes into BGP to translate and advertise subscriber join message as MVPN routes. The required source value is |
Example: Instance BGP Address Family Configuration
{ "ietf-restconf:data": { "rtbrick-config:instance": { "name": "services", "protocol": { "bgp": { "address-family": [ { "afi": "ipv4", "safi": "multicast", "redistribute": [ { "source": "pim" } ] } ] } } } }
2.2.3. BGP MVPN Address Family Configuration
Enable the MVPN address family in the global BGP instance.
Syntax:
set instance <instance> protocol bgp address-family <afi> <safi> <attribute> <value>
Attribute | Description |
---|---|
<instance> |
Name of the global BGP instance. Typically this will be the |
<afi> |
Address family identifier (AFI). For MVPN, the required value is: |
<safi> |
Supported SAFIs are unicast. For MVPN, the required value is: |
Example: BGP MVPN Address Family Configuration
{ "ietf-restconf:data": { "rtbrick-config:instance": [ { "name": "default", "protocol": { "bgp": { "address-family": [ { "afi": "ipv4", "safi": "vpn-multicast" } ] } } } ] } }
2.2.4. BGP Peer Group MVPN Address Family Configuration
Enable the MVPN address family for the global BGP peerings carrying the MVPN routes.
Syntax:
set instance <instance> protocol bgp peer-group <attribute> <value>
Attribute | Description |
---|---|
<instance> |
Name of the global BGP instance. Typically this will be the |
<pg-name> |
Peer group name |
address-family <afi> <safi> |
BGP peer group address family specific. For MVPN, the required AFI/SAFI values are: |
Example: BGP Peer Group MVPN Address Family Configuration
{ "ietf-restconf:data": { "rtbrick-config:peer-group": [ { "pg-name": "spine", "address-family": [ { "afi": "ipv4", "safi": "vpn-multicast", "extended-nexthop": "true", "update-nexthop": { "ipv6-address": "2001:db8:0:103::" } } ] } ] }
2.3. Multicast VPN Configuration Example
{ "ietf-restconf:data": { "rtbrick-config:instance": [ { "name": "default", "protocol": { "bgp": { "address-family": [ { "afi": "ipv4", "safi": "vpn-multicast" } ], "peer-group": [ { "pg-name": "spine", "address-family": [ { "afi": "ipv4", "safi": "vpn-multicast", "extended-nexthop": "true", "update-nexthop": { "ipv6-address": "2001:db8:0:103::" } } ] } ] } } }, { "name": "services", "address-family": [ { "afi": "ipv4", "safi": "multicast", "route-target": { "import": "target:198.51.100.10:13", "export": "target:198.51.100.10:13" } } ], "protocol": { "bgp": { "address-family": [ { "afi": "ipv4", "safi": "multicast", "redistribute": [ { "source": "pim" } ] } ] } } } ] } }
3. Operational Commands
3.1. Multicast Route Show Commands
Syntax:
show mroute ipv4 instance <vpn-instance-name> <attribute> <value>
Option | Description |
---|---|
- |
Without any option, the commands displays summary of all the multicast routes. |
<vpn-instance-name> |
Name of the VPN instance |
detail |
Displays detailed view of all the multicast routes. |
group <group-address> |
Multicast group address |
source <source-address> |
Multicast source address |
Example: Display Multicast Route Summary Information
supervisor@rtbrick: op> show mroute ipv4 instance services group 198.51.100.100/24 detail Instance: services, AFI: ipv4, SAFI: multicast 198.51.100.250/24, 198.51.100.100/24 Source: pim, Preference: 250 Next Hop type: Multicast Fanout, Next Hop action: None Resolved in: services-ipv4-multicast Egress interface: null0
3.2. MVPN Route Show Commands
Syntax:
show bgp fib ipv4 vpn-multicast instance default <attribute> <value>
Option | Description |
---|---|
- |
Without any option, the commands displays summary of all the multicast routes. |
detail |
Displays detailed view of all the VPN multicast routes. |
<prefix> |
Destination prefix address |
Example: Display MVPN Route Summary Information
supervisor@rtbrick: op> show bgp fib ipv4 vpn-multicast instance default Instance: default, AFI: ipv4, SAFI: vpn-multicast Group Source Preference Out Label Route Type Next Hop - - 20 20003,bos:1 Intra-AS_I-PMSI_AD - - - 20 20003,bos:1 Intra-AS_I-PMSI_AD - 198.51.100.111/24 198.51.100.2/24 20 20003,bos:1 Source_Tree_Join -
©Copyright 2023 RtBrick, Inc. All rights reserved. The information contained herein is subject to change without notice. The trademarks, logos and service marks ("Marks") displayed in this documentation are the property of RtBrick in the United States and other countries. Use of the Marks are subject to RtBrick’s Term of Use Policy, available at https://www.rtbrick.com/privacy. Use of marks belonging to other parties is for informational purposes only.