The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
This document describes how to configure each Multicast VPN (mVPN) profile within the Cisco IOS®XR.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.
Note: The configurations that are described in this document apply to the Provider Edge (PE) routers.
Cisco recommends that you verify whether there is support for an mVPN profile on the specific platform that runs Cisco IOS-XR.
The information in this document is based on all versions of Cisco IOS-XR.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
An mVPN profile is configured for the global context or per Virtual Routing/Forwarding (VRF). This is specified under the Multicast-Routing section within the Cisco IOS-XR.
Here is the mVPN configuration for the global context:
multicast-routing
address-family ipv4
mdt mldp in-band-signaling ipv4
Here is the mVPN configuration for the VRF context:
multicast-routing
vrf one
address-family ipv4
mdt mldp in-band-signaling ipv4
mdt partitioned mldp ipv4 p2mp (bidir)
mdt partitioned mldp ipv4 mp2mp (bidir)
mdt partitioned ingress-replication
mdt mldp in-band-signaling ipv4
mdt default mldp ipv4 <root>
mdt default mldp p2mp (partitioned)(bidir)
mdt default ingress-replication
mdt default <ipv4-group>
mdt default (ipv4) <ipv4-group> partitioned
mdt data <ipv4-group/length>
mdt data <max nr of data groups> (threshold)
mdt static p2mp-te tunnel-te <0-65535>
mdt static tunnel-mte <0-65535>
Note: VRF one is used throughout the document. The Rosen MLDP has been renamed to Default MDT.
Some deployment models or profiles cannot coexist. When you attempt to configure them, an error message pops up when you commit the configuration. Here is an example:
RP/0/3/CPU0:Router(config-mcast-one-ipv4)#show conf fail
!! SEMANTIC ERRORS: This configuration was rejected by
!! the system due to semantic errors. The individual
!! errors with each failed configuration command can be
!! found below.
multicast-routing
vrf one
address-family ipv4
mdt default mldp p2mp
!!% Invalid MLDP MDT type: MDT Default MLDP P2MP cannot co-exist with MDT Default
MLDP (Rosen MLDP)or Partitioned MDT MLDP
!
!
!
end
The mdt default mldp ipv4 10.1.100.1 is already configured, which specifies the profile MDT Default MLDP.
Always specify the Multicast Distribution Tree (MDT) source interface, for the global context or the VRF:
multicast-routing
address-family ipv4
interface Loopback0
enable
!
mdt source Loopback0
mdt mldp in-band-signaling ipv4
rate-per-route
interface all enable
accounting per-prefix
!
vrf one
address-family ipv4
mdt source Loopback0
mdt default mldp ipv4 10.1.100.7
rate-per-route
interface all enable
accounting per-prefix
!
!
!
Always enable the loopback interface under the multicast-routing section in the global context:
multicast-routing
address-family ipv4
interface Loopback0
enable
The VPN-ID that is configured under the VRF is only needed for the profiles that use the Multipoint Label Distribution Protocol (MLDP) as the core tree protocol, MP2MP, and Default MDT.
vrf one
vpn id 1000:2000
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
It is possible for multiple MDTs or core trees to be configured and signaled. In order to specify the core tree that the multicast traffic should take, a Reverse Path Forwarding (RPF) policy should be configured. This is done with a route-policy. The egress Provider Edge (PE) then initiates the core tree based on the RPF policy. Use the rpf topology route-policy route-policy-name command in order to complete this action. This is the route-policy that is applied under the section for the router Protocol Independent Multicast (PIM).
In the route-policy, you can optionally set the core tree after you specify an IF-statement:
RP/0/3/CPU0:Router(config-rpl)#set core-tree ?
ingress-replication-default Ingress Replication Default MDT core
ingress-replication-partitioned Ingress Replication Partitioned MDT core
mldp-default MLDP Default MDT core
mldp-inband MLDP Inband core
mldp-partitioned-mp2mp MLDP Partitioned MP2MP MDT core
mldp-partitioned-p2mp MLDP Partitioned P2MP MDT core
p2mp-te-default P2MP TE Default MDT core
p2mp-te-partitioned P2MP TE Partitioned MDT core
parameter Identifier specified in the format: '$'
followed by alphanumeric characters
pim-default PIM Default MDT core
The configuration for the Multiprotocol Label Switching (MPLS) Traffic Engineering (TE) must be in place for the Point-to-Multipoint (P2MP) TE profiles. This means that the link-state routing protocol Open Shortest Path First (OSPF) or Intermediate System-to-Intermediate System (IS-IS) must be enabled for MPLS TE, and the MPLS TE must be enabled with the core interfaces specified and an MPLS TE router-ID. Some P2MP TE profiles have auto-tunnels. This must be explicitly enabled. The Resource Reservation Protocol (RSVP)-TE must be enabled as well.
Data MDTs are an optional configuration. The number of data MDTS can be specified for any type of core tree protocol or for a specific type of core tree protocol.
Here is an example that specifies the data MDTs for any type of core tree protocol:
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt data 100
rate-per-route
interface all enable
accounting per-prefix
!
!
!
Here is an example that specifies the data MDTs for one specific type of core tree protocol:
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt data 232.1.100.0/24
mdt data mldp 100
rate-per-route
interface all enable
accounting per-prefix
!
!
!
mdt data ingress-replication 100
Customer Multicast Signaling or C-Mcast Signaling (also referred to as overlay signaling) is performed by either PIM or Border Gateway Protocol (BGP). The default is PIM. In order to configure BGP to perform the C-Multicast Signaling, you must configure this PIM command in the VRF context:
router pim
...
vrf one
address-family ipv4
...
mdt c-multicast-routing bgp
The Address Family (AF) IPv4 mVPN must be enabled when BGP-Auto Discovery (BGP-AD) and/or BGP C-Multicast Signalling is needed. The AF IPv4 mVPN must then be enabled in three places:
Here is an example:
router bgp 1
address-family ipv4 unicast
redistribute connected
!
address-family vpnv4 unicast
!
address-family ipv6 unicast
!
address-family ipv4 mdt
!
address-family ipv4 rt-filter
!
address-family ipv4 mvpn <<< AF ipv4 mVPN is globally enabled
!
neighbor 10.1.100.7
remote-as 1
update-source Loopback0
address-family ipv4 unicast
!
address-family vpnv4 unicast
!
address-family ipv6 labeled-unicast
route-reflector-client
!
address-family ipv4 mdt
!
address-family ipv4 rt-filter
!
address-family ipv4 mvpn <<< AF ipv4 mVPN is enabled for iBGP peer (PE or RR)
!
!
vrf one
rd 1:1
address-family ipv4 unicast
redistribute connected
!
address-family ipv4 mvpn <<< AF ipv4 mVPN is enabled for the VRF
!
neighbor 10.2.1.8
remote-as 65001
address-family ipv4 unicast
route-policy pass in
route-policy pass out
!
!
!
!
In some specific cases, the mvpn keyword is required in the router BGP section:
router bgp 1
mvpn
address-family ipv4 unicast
redistribute connected
!
address-family vpnv4 unicast
..
These are the cases when mVPN must be configured:
This section describes the required configurations on the PE routers for each profile. Ensure that you read the previous sections of this document before you attempt these configurations, which describe some required configurations that are not repeated for each profile. Here are some examples:
Use this configuration for profile 0:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
address-family ipv4
interface Loopback0
enable
!
interface GigabitEthernet0/0/0/3 <<< PIM is enabled for global context interface
!
vrf one
address-family ipv4
rpf topology route-policy rpf-for-one
!
interface GigabitEthernet0/1/0/0
enable
!
!
!
!
route-policy rpf-for-one
set core-tree pim-default
end-policy
!
multicast-routing
address-family ipv4
interface Loopback0
enable
!
interface GigabitEthernet0/0/0/3 <<< Multicast is enabled for global context intf
enable
!
mdt source Loopback0
!
vrf one
address-family ipv4
mdt source Loopback0
mdt data 232.100.100.0/24
mdt default ipv4 232.100.1.1
rate-per-route
interface all enable
!
accounting per-prefix
!
!
!
Note: The AF IPv4 MDT must be configured.
Use this configuration for profile 1:
vrf one
vpn id 1:1
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-for-one
!
interface GigabitEthernet0/1/0/0
enable
!
!
!
!
route-policy rpf-for-one
set core-tree mldp-default
end-policy
!
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt default mldp ipv4 10.1.100.1
mdt data 100
rate-per-route
interface all enable
!
accounting per-prefix
!
!
!
mpls ldp
mldp
logging notifications
address-family ipv4
!
!
!
Note: The data MDTs are optional. With the mdt default mldp ipv4 10.1.100.1 command, you can specify one Provider or PE router that is enabled for MLDP to become the root router of the MP2MP MLDP tree.
Use this configuration for profile 2:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-for-one
!
interface GigabitEthernet0/1/0/0
enable
!
!
!
!
route-policy rpf-for-one
set core-tree mldp-partitioned-mp2mp
end-policy
!
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt partitioned mldp ipv4 mp2mp
rate-per-route
interface all enable
!
accounting per-prefix
!
!
!
mpls ldp
mldp
logging notifications
address-family ipv4
!
!
!
Note: The data MDTs are optional. If data MDTs are configured, then BGP-AD must be configured as well. If not, this results in an error pop up when you attempt to commit this configuration. With data MDTs configured, this becomes profile 4, since BGP-AD must also be configured.
Use this configuration for profile 3:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
address-family ipv4
interface Loopback0
enable
!
interface GigabitEthernet0/0/0/3 <<< PIM is enabled for global context interface
!
vrf one
address-family ipv4
rpf topology route-policy rpf-for-one
!
interface GigabitEthernet0/1/0/0
enable
!
!
!
!
route-policy rpf-for-one
set core-tree pim-default
end-policy
!
multicast-routing
address-family ipv4
interface Loopback0
enable
!
interface GigabitEthernet0/0/0/3 <<< Multicast is enabled for global context intface
enable
!
mdt source Loopback0
!
vrf one
address-family ipv4
mdt source Loopback0
mdt data 232.100.100.0/24
mdt default ipv4 232.100.1.1
rate-per-route
interface all enable
bgp auto-discovery pim
!
accounting per-prefix
!
!
!
Use this configuration for profile 4:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-for-one
!
interface GigabitEthernet0/1/0/0
enable
!
!
!
!
route-policy rpf-for-one
set core-tree mldp-partitioned-mp2mp
end-policy
!
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt partitioned mldp ipv4 mp2mp
mdt data 100
rate-per-route
interface all enable
bgp auto-discovery mldp
!
accounting per-prefix
!
!
!
mpls ldp
mldp
logging notifications
address-family ipv4
!
!
!
Note: The data MDTs are optional. If data MDTs are configured, then BGP-AD must be configured as well. If not, this results in an error pop up when you attempt to commit this configuration. If you do not configure BGP-AD, this is profile 2.
Use this configuration for profile 5:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-for-one
!
interface GigabitEthernet0/1/0/0
enable
!
!
!
!
route-policy rpf-for-one
set core-tree mldp-partitioned-p2mp
end-policy
!
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt partitioned mldp ipv4 p2mp
mdt data 100
rate-per-route
interface all enable
bgp auto-discovery mldp
!
accounting per-prefix
!
!
!
mpls ldp
mldp
logging notifications
address-family ipv4
!
!
!
Notes: The data MDTs are optional. The BGP-AD must be configured, even if data MDTs are not configured.
Use this configuration for profile 6:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-vrf-one
interface GigabitEthernet0/0/0/1.100
enable
route-policy rpf-vrf-one
set core-tree mldp-inband
end-policy
multicast-routing
!
vrf one
address-family ipv4
mdt source Loopback0
mdt mldp in-band-signaling ipv4
interface all enable
mpls ldp
mldp
Use this configuration for profile 7:
router pim
address-family ipv4
rpf topology route-policy rpf-vrf-one
interface GigabitEthernet0/0/0/1.100
enable
route-policy rpf-vrf-one
set core-tree mldp-inband
end-policy
multicast-routing
address-family ipv4
interface Loopback0
enable
!
mdt source Loopback0
mdt mldp in-band-signaling ipv4
interface all enable
!
mpls ldp
mldp
This section describes the configurations for the TE head-end router and the TE tail-end router.
TE Head-End Router
Use this configuration for the TE head-end router:
router igmp
interface tunnel-mte1
static-group 232.1.1.1 10.2.2.9
router pim
address-family ipv4
interface GigabitEthernet0/1/0/0
enable
!
multicast-routing
address-family ipv4
interface Loopback0
enable
!
interface tunnel-mte0
enable
!
interface GigabitEthernet0/0/0/0
enable
!
mdt source Loopback0
rate-per-route
interface all enable
accounting per-prefix
!
interface tunnel-mte1
ipv4 unnumbered Loopback0
destination 10.1.100.1
path-option 1 explicit name to-PE1
!
destination 10.1.100.3
path-option 1 dynamic
!
destination 10.1.100.5
path-option 1 dynamic
!
!
explicit-path name to-PE1
index 10 next-address strict ipv4 unicast 10.1.12.3
index 20 next-address strict ipv4 unicast 10.1.11.1
!
Note: When you advertise a source prefix in the BGP address family IPv4 across the core, configure next-hop-self under the AF IPv4 for the BGP process. Do not configure the core-tree-protocol rsvp-te in the Multicast-Routing section on the head-end TE router.
TE Tail-End Router
Use this configuration for the TE tail-end router:
router pim
address-family ipv4
interface GigabitEthernet0/0/0/9
enable
!
multicast-routing
address-family ipv4
interface Loopback0
enable
!
mdt source Loopback0
core-tree-protocol rsvp-te
static-rpf 10.2.2.9 32 mpls 10.1.100.2
rate-per-route
interface all enable
accounting per-prefix
!
Note: The static rpf is required for the source towards the TE head-end router in the global context.
TE Tail-End Router - New CLI
The set lsm-root command replaces the static-rpf command on the TE tail-end router:
router pim
address-family ipv4
rpf topology route-policy rpf-for-one
interface GigabitEthernet0/0/0/9
enable
!
route-policy rpf-for-one
set lsm-root 10.1.100.2
end-policy
!
multicast-routing
address-family ipv4
interface Loopback0
enable
!
mdt source Loopback0
core-tree-protocol rsvp-te
rate-per-route
interface all enable
accounting per-prefix
!
Use this configuration for profile 9:
vrf one
vpn id 1:1
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-for-one
!
interface GigabitEthernet0/1/0/0
enable
!
!
!
!
route-policy rpf-for-one
set core-tree mldp-default
end-policy
!
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt default mldp ipv4 10.1.100.1
mdt data 100
rate-per-route
interface all enable
bgp auto-discovery mldp
!
accounting per-prefix
!
!
!
mpls ldp
mldp
logging notifications
address-family ipv4
!
!
!
Note: The data MDTs are optional. With the mdt default mldp ipv4 10.1.100.1 command, you can specify one Provider or PE router that is enabled for MLDP to become the root router of the MP2MP MLDP tree.
This section describes the configurations for the TE head-end router and the TE tail-end router.
TE Head-End Router
Use this configuration for the head-end router:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router igmp
vrf one
interface tunnel-mte1
static-group 232.1.1.1 10.2.2.9
router pim
vrf one
address-family ipv4
interface tunnel-mte1
enable
interface GigabitEthernet0/1/0/0
enable
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt static p2mp-te tunnel-mte1
rate-per-route
interface all enable
bgp auto-discovery p2mp-te
!
accounting per-prefix
!
!
!
interface tunnel-mte1
ipv4 unnumbered Loopback0
destination 10.1.100.1
path-option 1 explicit name to-PE1
!
destination 10.1.100.3
path-option 1 dynamic
!
destination 10.1.100.5
path-option 1 dynamic
!
!
explicit-path name to-PE1
index 10 next-address strict ipv4 unicast 10.1.12.3
index 20 next-address strict ipv4 unicast 10.1.11.1
TE Tail-End Router
Use this configuration for the tail-end router:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
interface GigabitEthernet0/0/0/9
enable
!
!
!
!
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
core-tree-protocol rsvp-te group-list acl_groups
rate-per-route
interface all enable
bgp auto-discovery p2mp-te
!
accounting per-prefix
!
!
!
ipv4 access-list acl_groups
10 permit ipv4 host 10.1.1.1 232.0.0.0/24
20 permit ipv4 host 10.99.1.22 host 232.1.1.1
Note: The access-list on the "core-tree-protocol rsvp-te" command is needed only if the TE Tail-End router is also a TE Head-End router. Specify which multicast groups need to go over the TE tunnel.
Note: The rpf topology route-policy rpf-for-one command is not required on the TE tail-end router. The core-tree-protocol rsvp-te is not required on TE head-end router.
Use this configuration for profile 11:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
address-family ipv4
interface Loopback0
enable
!
interface GigabitEthernet0/0/0/3 <<< PIM is enabled for global context interface
!
vrf one
address-family ipv4
rpf topology route-policy rpf-for-one
mdt c-multicast-routing bgp
!
interface GigabitEthernet0/1/0/0
enable
!
!
!
!
route-policy rpf-for-one
set core-tree pim-default
end-policy
!
multicast-routing
address-family ipv4
interface Loopback0
enable
!
interface GigabitEthernet0/0/0/3 <<< Multicast is enabled for global context intf
enable
!
mdt source Loopback0
!
vrf one
address-family ipv4
mdt source Loopback0
mdt data 232.100.100.0/24
mdt default ipv4 232.100.1.1
rate-per-route
interface all enable
bgp auto-discovery pim
!
accounting per-prefix
!
!
!
Use this configuration for profile 12:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-for-one
mdt c-multicast-routing bgp
!
interface GigabitEthernet0/1/0/0
enable
!
!
!
!
route-policy rpf-for-one
set core-tree mldp-default
end-policy
!
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt default mldp p2mp
mdt data 100
rate-per-route
interface all enable
bgp auto-discovery mldp
!
accounting per-prefix
!
!
!
mpls ldp
mldp
logging notifications
address-family ipv4
!
!
!
Note: The data MDTs are optional.
Use this configuration for profile 13:
vrf one
vpn id 1:1
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-for-one
mdt c-multicast-routing bgp
!
interface GigabitEthernet0/1/0/0
enable
!
!
!
!
route-policy rpf-for-one
set core-tree mldp-default
end-policy
!
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt default mldp ipv4 10.1.100.1
mdt data 100
rate-per-route
interface all enable
bgp auto-discovery mldp
!
accounting per-prefix
!
!
!
mpls ldp
mldp
logging notifications
address-family ipv4
!
!
!
Note: The data MDTs are optional. With the mdt default mldp ipv4 10.1.100.1 command, you can specify one Provider or PE router that is enabled for MLDP to become the root router of the MP2MP MLDP tree.
Use this configuration for profile 14:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-for-one
mdt c-multicast-routing bgp
!
interface GigabitEthernet0/1/0/0
enable
!
!
!
!
route-policy rpf-for-one
set core-tree mldp-partitioned-p2mp
end-policy
!
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt partitioned mldp ipv4 p2mp
mdt data 100
rate-per-route
interface all enable
bgp auto-discovery mldp
!
accounting per-prefix
!
!
!
mpls ldp
mldp
logging notifications
address-family ipv4
!
!
!
Note: The data MDTs are optional.
Use this configuration for profile 15:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-for-one
mdt c-multicast-routing bgp
!
interface GigabitEthernet0/1/0/0
enable
!
!
!
!
route-policy rpf-for-one
set core-tree mldp-partitioned-mp2mp
end-policy
!
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt partitioned mldp ipv4 mp2mp
mdt data 100
rate-per-route
interface all enable
bgp auto-discovery mldp
!
accounting per-prefix
!
!
!
mpls ldp
mldp
logging notifications
address-family ipv4
!
!
!
Note: The data MDTs are optional.
The default MDT consists of a full mesh of static P2MP TE tunnels. A static P2MP TE tunnel is a tunnel that has a destination list from which each destination can be configured with a path-option that is dynamic or explicit.
Here is the configuration that is used:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-vrf-one
mdt c-multicast-routing bgp
interface GigabitEthernet0/0/0/1.100
enable
route-policy rpf-vrf-one
set core-tree p2mp-te-default
end-policy
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt default p2mp-te static tunnel-mte1
rate-per-route
interface all enable
bgp auto-discovery p2mp-te
!
accounting per-prefix
interface tunnel-mte1
ipv4 unnumbered Loopback0
destination 10.1.100.1
path-option 1 explicit name to-10.1.100.1
!
destination 10.1.100.3
path-option 1 dynamic
!
destination 10.1.100.5
path-option 1 dynamic
!
!
explicit-path name to-PE1
index 10 next-address strict ipv4 unicast 10.1.12.3
index 20 next-address strict ipv4 unicast 10.1.11.1
!
Note: The data MDTs are not possible. You cannot have the core-tree-protocol rsvp-te command configured under the Multicast-Routing VRF one section in the configuration.
Use this configuration for profile 17:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-for-one
!
interface GigabitEthernet0/1/0/0
enable
!
!
!
!
route-policy rpf-for-one
set core-tree mldp-default
end-policy
!
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt default mldp p2mp
mdt data 100
rate-per-route
interface all enable
bgp auto-discovery mldp
!
accounting per-prefix
!
!
!
mpls ldp
mldp
logging notifications
address-family ipv4
!
!
!
Note: The data MDTs are optional.
The default MDT consists of a full mesh of static P2MP TE tunnels. A static P2MP TE tunnel is a tunnel that has a destination list from which each destination can be configured with a path-option that is dynamic or explicit.
Here is the configuration that is used:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-vrf-one
interface GigabitEthernet0/0/0/1.100
enable
route-policy rpf-vrf-one
set core-tree p2mp-te-default
end-policy
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt default p2mp-te static tunnel-mte1
rate-per-route
interface all enable
bgp auto-discovery p2mp-te
!
accounting per-prefix
interface tunnel-mte1
ipv4 unnumbered Loopback0
destination 10.1.100.1
path-option 1 explicit name to-10.1.100.1
!
destination 10.1.100.3
path-option 1 dynamic
!
destination 10.1.100.5
path-option 1 dynamic
!
!
explicit-path name to-PE1
index 10 next-address strict ipv4 unicast 10.1.12.3
index 20 next-address strict ipv4 unicast 10.1.11.1
!
Note: The data MDTs are not possible. You cannot have the core-tree-protocol rsvp-te command configured under the Multicast-Routing VRF one section in the configuration.
Use this configuration for profile 19:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-vrf-one
interface GigabitEthernet0/0/0/1.100
enable
route-policy rpf-vrf-one
set core-tree ingress-replication-default
end-policy
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt default ingress-replication
rate-per-route
interface all enable
mdt data ingress-replication 100
bgp auto-discovery ingress-replication
!
accounting per-prefix
Note: The P2MP Auto-TE tunnels are used for this profile.
Use this configuration for profile 20:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-vrf-one
interface GigabitEthernet0/0/0/1.100
enable
route-policy rpf-vrf-one
set core-tree p2mp-te-default
end-policy
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt default p2mp-te
rate-per-route
interface all enable
mdt data p2mp-te 100
bgp auto-discovery p2mp-te
!
accounting per-prefix
ipv4 unnumbered mpls traffic-eng Loopback0
mpls traffic-eng
interface GigabitEthernet0/0/0/0
!
interface GigabitEthernet0/0/0/2
!
auto-tunnel p2mp
tunnel-id min 1000 max 2000
Note: The data MDTs are optional. The ipv4 unnumbered mpls traffic-eng Loopback0 command is a global command. You cannot have the core-tree-protocol rsvp-te command configured under the multicast-routing VRF one section in the configuration.
Use this configuration for profile 21:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-vrf-one
mdt c-multicast-routing bgp
!
interface GigabitEthernet0/0/0/1.100
enable
route-policy rpf-vrf-one
set core-tree ingress-replication-default
end-policy
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt default ingress-replication
rate-per-route
interface all enable
mdt data ingress-replication 100
bgp auto-discovery ingress-replication
!
accounting per-prefix
Note: The P2MP Auto-TE tunnels are used for this profile.
Use this configuration for profile 22:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-vrf-one
mdt c-multicast-routing bgp
interface GigabitEthernet0/0/0/1.100
enable
route-policy rpf-vrf-one
set core-tree p2mp-te-default
end-policy
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt default p2mp-te
rate-per-route
interface all enable
mdt data p2mp-te 100
bgp auto-discovery p2mp-te
!
accounting per-prefix
ipv4 unnumbered mpls traffic-eng Loopback0
mpls traffic-eng
interface GigabitEthernet0/0/0/0
!
interface GigabitEthernet0/0/0/2
!
auto-tunnel p2mp
tunnel-id min 1000 max 2000
Note: The data MDTs are optional. The ipv4 unnumbered mpls traffic-eng Loopback0 command is a global command. You cannot have the core-tree-protocol rsvp-te command configured under the Multicast-Routing VRF one section in the configuration.
Use this configuration for profile 23:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-vrf-one
!
interface GigabitEthernet0/0/0/1.100
enable
route-policy rpf-vrf-one
set core-tree ingress-replication-partitioned
end-policy
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt partitioned ingress-replication
rate-per-route
interface all enable
mdt data ingress-replication 100
bgp auto-discovery ingress-replication
!
accounting per-prefix
Note: The P2MP Auto-TE tunnels are used for this profile.
Use this configuration for profile 24:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-vrf-one
interface GigabitEthernet0/0/0/1.100
enable
route-policy rpf-vrf-one
set core-tree p2mp-te-partitioned
end-policy
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt partitioned p2mp-te
rate-per-route
interface all enable
mdt data p2mp-te 100
bgp auto-discovery p2mp-te
!
accounting per-prefix
ipv4 unnumbered mpls traffic-eng Loopback0
mpls traffic-eng
interface GigabitEthernet0/0/0/0
!
interface GigabitEthernet0/0/0/2
!
auto-tunnel p2mp
tunnel-id min 1000 max 2000
Note: The data MDTs are optional. The ipv4 unnumbered mpls traffic-eng Loopback0 command is a global command. You cannot have the core-tree-protocol rsvp-te command configured under the multicast-routing VRF one section in the configuration.
Use this configuration for profile 25:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-vrf-one
mdt c-multicast-routing bgp
!
interface GigabitEthernet0/0/0/1.100
enable
route-policy rpf-vrf-one
set core-tree ingress-replication-partitioned
end-policy
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt partitioned ingress-replication
rate-per-route
interface all enable
mdt data ingress-replication 100
bgp auto-discovery ingress-replication
!
accounting per-prefix
Note: The P2MP Auto-TE tunnels are used for this profile.
Use this configuration for profile 26:
vrf one
address-family ipv4 unicast
import route-target
1:1
!
export route-target
1:1
!
!
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-vrf-one
mdt c-multicast-routing bgp
interface GigabitEthernet0/0/0/1.100
enable
route-policy rpf-vrf-one
set core-tree p2mp-te-partitioned
end-policy
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt partitioned p2mp-te
rate-per-route
interface all enable
mdt data p2mp-te 100
bgp auto-discovery p2mp-te
!
accounting per-prefix
ipv4 unnumbered mpls traffic-eng Loopback0
mpls traffic-eng
interface GigabitEthernet0/0/0/0
!
interface GigabitEthernet0/0/0/2
!
auto-tunnel p2mp
tunnel-id min 1000 max 2000
Note: The data MDTs are optional. The ipv4 unnumbered mpls traffic-eng Loopback0 command is a global command. You cannot have the core-tree-protocol rsvp-te command configured under the multicast-routing VRF one section in the configuration.
This profile does not use BGP as a signaling protocol.
Note: Tree-SID requires a Segment Routing Path Computation Element (SR-PCE). Every router involved in Tree-SID must have a PCEP session to the SR-PCE.
Use this configuration for profile 27:
Use this configuration on the SR-PCE:
pce
address ipv4 10.0.0.6
segment-routing
traffic-eng
p2mp
endpoint-set R2-R4-R5
ipv4 10.0.0.2
ipv4 10.0.0.4
ipv4 10.0.0.5
!
label-range min 23000 max 23999
policy Tree-SID-Policy-1
source ipv4 10.0.0.1
color 1001 endpoint-set R2-R4-R5
treesid mpls 23001
candidate-paths
preference 100
dynamic
metric
type te
!
Use this configuration on the leaf nodes:
ipv4 access-list ssm
10 permit ipv4 232.0.0.0/8 any
!
route-policy sr-p2mp-core-tree
set core-tree sr-p2mp
end-policy
multicast-routing
address-family ipv4
interface Loopback0
enable
!
!
vrf one
address-family ipv4
mdt source Loopback0
interface all enable
static sr-policy Tree-SID-Policy-1
mdt static segment-routing
!
!
router igmp
vrf one
interface HundredGigE0/0/0/0
static-group 232.1.1.1 10.1.7.7
!
interface HundredGigE0/1/0/0
static-group 232.1.1.1 10.1.7.7
!
router pim
address-family ipv4
interface Loopback0
enable
!
!
vrf one
address-family ipv4
rpf topology route-policy sr-p2mp-core-tree
ssm range ssm
!
The static sr-policy with the same name as configured on the SR-PCE.
Use this configuration on the root node:
ipv4 access-list ssm
10 permit ipv4 232.0.0.0/8 any
!
route-policy sr-p2mp-core-tree
set core-tree sr-p2mp
end-policy
router pim
interface Loopback0
enable
!
vrf one
address-family ipv4
rpf topology route-policy sr-p2mp-core-tree
!
ssm range ssm
sr-p2mp-policy Tree-SID-Policy-1
static-group 232.1.1.1 10.1.7.7
multicast-routing
address-family ipv4
interface Loopback0
enable
!
vrf one
address-family ipv4
mdt source Loopback0
interface all enable
mdt static segment-routing
!
Note: Tree-SID requires a Segment Routing Path Computation Element (SR-PCE). Every router involved in Tree-SID must have a PCEP session to the SR-PCE.
This profile does use BGP as a signaling protocol.
Use this configuration on every PE router:
route-policy sr-p2mp-core-tree
set core-tree sr-p2mp
end-policy
!
multicast-routing
address-family ipv4
interface Loopback0
enable
!
!
vrf one
address-family ipv4
mdt source Loopback0
interface all enable
bgp auto-discovery segment-routing
!
mdt default segment-routing mpls mdt data segment-routing mpls 100
!
!
!
router pim
address-family ipv4
interface Loopback0
enable
!
!
vrf one
address-family ipv4
rpf topology route-policy sr-p2mp-core-tree
mdt c-multicast-routing bgp
!
ssm range ssm
!
!
!
Data MDTs are optional.
Note: Tree-SID requires a Segment Routing Path Computation Element (SR-PCE). Every router involved in Tree-SID must have a PCEP session to the SR-PCE.
This profile does use BGP as a signaling protocol.
Use this configuration on every PE router:
route-policy sr-p2mp-core-tree
set core-tree sr-p2mp
end-policy
!
multicast-routing
address-family ipv4
interface Loopback0
enable
!
!
vrf one
address-family ipv4
mdt source Loopback0
interface all enable
bgp auto-discovery segment-routing
!
mdt partitioned segment-routing mpls mdt data segment-routing mpls 100
!
!
!
router pim
address-family ipv4
interface Loopback0
enable
!
ssm range ssm
!
!
vrf one
address-family ipv4
rpf topology route-policy sr-p2mp-core-tree
mdt c-multicast-routing bgp
!
ssm range ssm
!
!
!
Data MDTs are optional.
This section describes how to configure an inter-Autonomous System (inter-AS) mVPN.
Note: The information that is described in the next sections is provided under the assumption that the proper configuration is completed on the routers for inter-autonomous MPLS VPN unicast.
The regular mVPN configuration is needed. You can have any profile in the autonomous systems, and they do not have to match in the different autonomous systems.
The Options B and C are discussed further per core tree protocol. When you configure external Border Gateway Protocol (eBGP) on the Autonomous System Border Routers (ASBRs), do not forget to configure a route-policy in and out for either AF IPv4 MDT or AF IPv4 MVPN.
Check whether this configuration is required on an ASBR for Inter-AS Option B or C with PIM or MLDP as core tree protocol:
router bgp 1
!
address-family ipv4|ipv6 mvpn
inter-as install
!
For inter-AS mVPN, an IOS-XR router running older IOS-XR does not have a method to originate the PIM vector. In that case, the IOS-XR router cannot be a PE router. This means that Inter-AS Options B and C, Seamless MPLS, and BGP-free Core are not possible. An IOS-XR router does understand the PIM vector, so the router can be a P (Provider) router or an ASBR. In later IOS-XR releases, the IOS-XR PE router can originate the PIM vector, without Route Distinguisher (RD). In that case, it can be the PE router for BGP-free core, Inter-AS Option C and Seamless MPLS.
The PIM (RPF) vector is a PIM proxy that allows core routers without RPF information forward PIM Join and Prune messages for external sources.
To originate the PIM RPF-Vector in IOS-XR:
router pim
address-family ipv4
rpf-vector
!
!
!
Note: The rpf-vector inject command is not related to the inter-AS mVPN, but it is a command that is required for the TI-Multicast only Fast Re-Route (TI-MoFRR).
Here is the configuration that is required on an IOS-XR P router in order to interpret the PIM vector:
router pim
address-family ipv4
rpf-vector
When AF IPv4 mVPN is used instead of AF IPv4 MDT, the BGP-AD with PIM is needed for inter-AS. Thus, this configuration is required:
multicast-routing
vrf one
address-family ipv4
bgp auto-discovery pim
inter-as
The AF IPv4 MDT has inherent inter-AS support, as the connector attribute is a transient attribute. No keyword is required in order to make AF IPv4 MDT inter-AS-capable.
The AF IPv4 and AF IPv4 mVPN can be configured at the same time.
When the bgp auto-discovery pim command is configured, the PE router sends out the BGP-AD type 1 route, with the no-export community. When the bgp auto-discovery pim and inter-as commands are configured, the PE router sends out the BGP AD type 1 route, without the no-export community.
Whether the bgp auto-discovery pim command is configured or not, type 6 and 7 routes can be originated in the AF IPv4 mVPN if this configuration is applied:
router pim
vrf one
address-family ipv4
rpf topology route-policy rpf-for-one
mdt c-multicast-routing bgp
!
interface GigabitEthernet0/0/0/9
enable
!
!
!
!
It is possible to have the BGP-AD completed by the AF IPv4 MDT and the C-multicast signaling by the BGP AF IPv4 mVPN. In order for this to occur, you must have the mdt c-multicast-routing bgp command configured under router PIM, but not the bgp auto-discovery pim command under Multicast-Routing section.
Note: You can have both types of BGP-ADs configured: AF IPv4 MDT and AF IPv4 mVPN.
Inter-AS mVPN Option B without redistribution of the PE loopbacks into the Interior Gateway Protocol (IGP) of the other AS is not possible if the PE router runs Cisco IOS-XR, because the PE router cannot originate the PIM vector with the Route Distinguisher (RD).
The scenario where the PE loopbacks are redistributed into the IGP of the other AS is supported.
If AF IPv4 mVPN is used, then this additional configuration on the PE router is required:
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt ...
rate-per-route
interface all enable
bgp auto-discovery pim
inter-as
Note: When AF IPv4 MDT is used, the bgp auto-discovery pim command is not required.
Inter-AS mVPN Option C without redistribution of the PE loopbacks into the IGP of the other AS is possible if the PE router runs IOS-XR, because the PE router can originate the PIM vector without the Route Distinguisher (RD).
The scenario where the PE loopbacks are redistributed into the IGP of the other AS is also supported.
If AF IPv4 mVPN is used, then this additional configuration on the PE router is required:
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt ...
rate-per-route
interface all enable
bgp auto-discovery pim
inter-as
Note: When AF IPv4 MDT is used, the bgp auto-discovery pim command is not required.
This section describes how to configure the MLDP.
Redistribution of PE Loopbacks into IGP of other AS
If the PE loopbacks are redistributed into the IGP of the other AS, it is similar to intra-AS mVPN with MLDP. Recursive Forwarding Equivalence Class (FEC) is not needed. Still, the BGP-AD updates must make it to the other AS. For this reason, this configuration is required on the PE router:
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt mldp in-band-signaling ipv4
rate-per-route
interface all enable
bgp auto-discovery mldp
inter-as
!
accounting per-prefix
!
!
!
AF IPv4 mVPN must be configured on the PE routers and RRs or ASBRs:
router bgp 1
address-family ipv4 unicast
redistribute connected
!
address-family vpnv4 unicast
!
!
address-family ipv4 rt-filter
!
address-family ipv4 mvpn
!
neighbor 10.1.100.7 <<< iBGP neighbor
remote-as 1
update-source Loopback0
address-family vpnv4 unicast
!
!
address-family ipv4 mvpn
!
!
!
vrf one
!
address-family ipv4 mvpn
!
!
No Redistribution of PE Loopbacks into IGP of other AS
In this case, MLDP Recursive FEC is required.
Option B
This additional configuration on the PE router is required:
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt mldp in-band-signaling ipv4
rate-per-route
interface all enable
bgp auto-discovery mldp
inter-as
!
accounting per-prefix
!
!
!
mpls ldp
mldp
logging notifications
address-family ipv4
recursive-fec
!
Note: Recursive FEC is not required on the ASBRs.
router bgp 1
address-family ipv4 unicast
redistribute connected
!
address-family vpnv4 unicast
!
!
address-family ipv4 rt-filter
!
address-family ipv4 mvpn
!
neighbor 10.1.100.7 <<< iBGP neighbor
remote-as 1
update-source Loopback0
address-family vpnv4 unicast
!
!
address-family ipv4 mvpn
!
!
!
vrf one
!
address-family ipv4 mvpn
!
!
The MLDP must be enabled on the link between the ASBRs. This additional configuration on the ASBR is required:
mpls ldp
router-id 10.1.100.7
mldp
logging notifications
!
interface GigabitEthernet0/7/0/0 <<< ASBR-ASBR link
!
Because there is now an eBGP session with AF ipv4 mvpn enabled, a route-policy in and out is required for the eBGP session:
router bgp 1
!
address-family vpnv4 unicast
retain route-target all
!
address-family ipv4 mvpn
!
address-family ipv6 mvpn
!
neighbor 10.1.5.3 <<< eBGP neighbor (ASBR)
remote-as 2
address-family vpnv4 unicast
route-policy pass in
route-policy pass out
!
address-family ipv4 mvpn
route-policy pass in
route-policy pass out
!
Option C
This additional configuration on the PE router is required:
multicast-routing
vrf one
address-family ipv4
mdt source Loopback0
mdt ...
rate-per-route
interface all enable
bgp auto-discovery mldp
inter-as
!
accounting per-prefix
!
!
!
mpls ldp
mldp
logging notifications
address-family ipv4
recursive-fec
!
Note: Recursive FEC is not required on the ASBRs.
router bgp 1
address-family ipv4 unicast
redistribute connected
!
address-family vpnv4 unicast
!
!
address-family ipv4 rt-filter
!
address-family ipv4 mvpn
!
neighbor 10.1.100.7 <<< iBGP neighbor
remote-as 1
update-source Loopback0
address-family vpnv4 unicast
!
!
address-family ipv4 mvpn
!
!
!
vrf one
!
address-family ipv4 mvpn
!
!
The MLDP must be enabled on the link between the ASBRs. This additional configuration on the ASBR is required:
mpls ldp
router-id 10.1.100.7
mldp
logging notifications
!
interface GigabitEthernet0/7/0/0 <<< ASBR-ASBR link
!
Because there is now an eBGP session with AF ipv4 mvpn enabled on the RR, a route-policy in and out is required for the eBGP session.
Revision | Publish Date | Comments |
---|---|---|
4.0 |
28-Jun-2022 |
Added Profiles 27, 28, and 29. |
2.0 |
15-Sep-2021 |
Small update on the configuration of Profile 10 |
1.0 |
13-Aug-2021 |
Initial Release |