mVPN

Multicast VPN (mVPN)

Network Topology:

Step 1: Choosing the PIM mode for P-network

Here, the SP is running PIM SM using Auto-RP. PE2 router is configured as the RP-Mapping Agent while PE2 and PE3 are configured as Candidate-RPs (C-RPs).

PE1, PE2 & PE3 PIM Configuration

PE1 router:
ip multicast-routing
!
interface Loopback 0
 ip address 1.1.1.1 255.255.255.255
 ip pim sparse-mode
!
interface fastethernet 0/0
 ip pim sparse-mode
!
PE2 router:
ip multicast-routing
!
interface Loopback 0
 ip address 2.2.2.2 255.255.255.255
 ip pim sparse-mode
!
interface fastethernet 0/0
 ip pim sparse-mode
!
access-list 1 permit 239.0.0.0 0.255.255.255
!
ip pim send-rp-announce Loopback 0 scope 30 group-list 1  ! C-RP
ip pim send-rp-discovery Loopback 0 scope 30                    ! RP-Mapping Agent
!
PE3 router:
ip multicast-routing
!
interface Loopback 0
 ip address 3.3.3.3 255.255.255.255
 ip pim sparse-mode
!
interface fastethernet 0/0
 ip pim sparse-mode
!
access-list 1 permit 239.0.0.0 0.255.255.255
!
ip pim send-rp-announce Loopback 0 scope 10 group-list 1   ! C-RP
!

Step 2: Choosing the VPN group address used inside the P-network

MVPN requires a group address for Default-MDT. The PE routers build default-MDT with peer PE routers with same mVRF (multicast VRF) for the Multicast Domain (MD). The PE routers share PIM information over this MDT.

Default-MDT configuration

PE1 router:
ip vrf CUST1
 rd 1:1
 route-target both 1:1
 mdt default 239.192.10.0
!
PE2 router:
ip vrf CUST1
 rd 1:1
 route-target both 1:1
 mdt default 239.192.10.0
!
PE3 router:
ip vrf CUST1
 rd 1:1
 route-target both 1:1
 mdt default 239.192.10.0
!

Step 3: Choosing the PIM mode for the VPN (C-network)

This is for the customer. Essentially, a customer can use any PIM mode in this type of setup. PIM DM, PIM SM, Bidir-PIM, PIM SSM are all available as a choice to the customer.

Here, the customer will use PIM SM using Static-RP. The RP is located at the remote site. RP Address: 12.1.1.1 (CE2 router's Loopback 0 interface)

CE1 and PE1 PIM configuration

CE1 router:
ip multicast-routing
!
interface Loopback 0
 ip address 192.168.1.1 255.255.255.0
 ip pim sparse-mode
!
interface serial 0/0
 ip address 10.1.1.1 255.255.255.252
 ip pim sparse-mode
!
ip pim rp-address 12.1.1.1   ! Remote CE's Loopback interface acting as the RP
!
PE1 router:
ip multicast-routing vrf CUST1
!
interface serial 1/0
 ip vrf forwarding CUST1
 ip address 10.1.1.2 255.255.255.252
 ip pim sparse-mode
!
ip pim vrf CUST1 rp-address 12.1.1.1   ! RP address for the VPN
!

CE2 & PE2 PIM configuration

CE2 router:
ip multicast-routing
!
interface Loopback 0
 ip address 12.1.1.1 255.255.255.255
 ip pim sparse-mode
!
interface Loopback 1
 ip address 192.168.2.1 255.255.255.0
 ip pim sparse-mode
!
interface serial 0/0
 ip address 10.2.2.1 255.255.255.252
 ip pim sparse-mode
!
ip pim rp-address 12.1.1.1
!
PE2 router:
ip multicast-routing vrf CUST1
!
interface serial 1/0
 ip vrf forwarding CUST1
 ip address 10.2.2.2 255.255.255.252
 ip pim sparse-mode
!
ip pim vrf CUST1 rp-address 12.1.1.1
!

Multicast Tunnel Interface (MTI):

When default-MDT is created on PE routers, they immediately create a Tunnel interface (Tunnel 0 here) from the Loopback interface called Multicast Tunnel Interface MTI. An MP-BGP update is sent to all PE routers that are peers to the router to indicate the presence of Default-MDT. The PE-router issues a Join message to the RP for the Default-MDT group.

MTI

PE1# show interface tunnel 0
Tunnel0 is up, line protocol is up
  Hardware is Tunnel
  Interface is unnumbered. Using address of Loopback0 (1.1.1.1)
  MTU 1514 bytes, BW 9 Kbit/sec, DLY 500000 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation TUNNEL, loopback not set
  Keepalive not set
  Tunnel source 1.1.1.1 (Loopback0), destination 239.192.10.1
  Tunnel protocol/transport GRE/IP Multicast
    Key disabled, sequencing disabled
    Checksumming of packets disabled
  Tunnel TTL 255
  Fast tunneling enabled
  Tunnel transmit bandwidth 8000 (kbps)
  Tunnel receive bandwidth 8000 (kbps)
  Last input never, output 00:00:20, output hang never
  Last clearing of "show interface" counters never
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
  Output queue: 0/0 (size/max)
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     0 packets input, 0 bytes, 0 no buffer
     Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     17 packets output, 1066 bytes, 0 underruns
     0 output errors, 0 collisions, 0 interface resets
     0 unknown protocol drops
     0 output buffer failures, 0 output buffers swapped out

As seen above, the traffic entering Tunnel 0 interface is encapsulated by GRE with a destination address of 239.192.10.1 (Default-MDT group address) and source address of 1.1.1.1 (Loopback 0 interface of PE1 router). This happens for all PE routers.

PIM interfaces in the VRF on PE1

PE1# show ip pim vrf CUST1 interface
Address          Interface                Ver/   Nbr    Query  DR     DR
                                          Mode   Count  Intvl  Prior
1.1.1.1          Tunnel0                  v2/S   2      30     1      3.3.3.3
10.1.1.2         Serial1/0                v2/S   1      30     1      0.0.0.0

The above output shows that two interfaces are enabled for PIM- Tunnel 0 and Serial 1/0. The MTI Tunnel 0 interface is treated as a LAN interface and hence a DR (Designated Router) is elected (by default, the router with highest IP address). Note the tunnel interface operates in PIM Sparse-mode (inherits from Loopback interface) and the neighbor count is 2 which are PE2 and PE3 routers.

Multiprotocol BGP MDT updates:

When a PE router creates a Default-MDT, it updates all its peers using MP-BGP. BGP uses Extended Community attribute to advertise the updates. The update contains the following information-

(a) The MDT extended community attribute for the Default-MDT group of the form ASN : Default-MDT-group-address.

(b) The MP_REACH_NLRI contains the VPNv4 style address with RD 2 : ASN : Assigned-Number indicating this RD is part of MDT group address.

BGP VPNv4 updates from BGP peers

---- "debug ip bgp vpnv4 unicast updates" on PE1----
BGP(2): 3.3.3.3 rcvd UPDATE w/ attr: nexthop 3.3.3.3, origin ?, localpref 100, metric 0, extended community RT:1:1 MDT:100:239.192.10.1
BGP(2): 3.3.3.3 rcvd 2:1:1:3.3.3.3/32
BGP(2): 2.2.2.2 rcvd UPDATE w/ attr: nexthop 2.2.2.2, origin ?, localpref 100, metric 0, extended community RT:1:1 MDT:100:239.192.10.1
BGP(2): 2.2.2.2 rcvd 2:1:1:2.2.2.2/32
PE1# show ip bgp vpnv4 all
BGP table version is 19, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 1:1 (default for vrf CUST1)
*> 10.1.1.0/30      0.0.0.0                  0         32768 ?
*>i10.2.2.0/30      2.2.2.2                  0    100      0 ?
*>i12.1.1.1/32      2.2.2.2                 10    100      0 ?
*> 192.168.1.1/32   10.1.1.1                10         32768 ?
*>i192.168.2.1/32   2.2.2.2                 10    100      0 ?
Route Distinguisher: 2:1:1
*> 1.1.1.1/32       0.0.0.0                                0 ?
*>i2.2.2.2/32       2.2.2.2                  0    100      0 ?
*>i3.3.3.3/32       3.3.3.3                  0    100      0 ?
PE1# show ip pim mdt bgp
Peer (Route Distinguisher + IPv4)                                  Next Hop
  MDT group 239.192.10.1
   2:1:1:2.2.2.2                                                   2.2.2.2
   2:1:1:3.3.3.3                                                   3.3.3.3

PIM Adjacencies:

A PE router forms three different types of adjacencies:

(1) Between PE and CE: This VRF PIM adjacency is formed between PE and CE routers for a VRF. Both PE and CE run same PIM mode.

(2) Between PE and P: This global PIM adjacency is formed between PE and P routers in the P-network. If a PE is directly connected, then too a PIM adjacency is formed between them via an MTI.

(3) Between PE and PE: This VRF PIM adjacency is formed between PE and remote PE routers via an MTI tunnel interface for a particular VRF.

PIM adjacencies on PE1

!! Global PIM adjacencies
PE1# show ip pim neighbor
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
      S - State Refresh Capable
Neighbor          Interface                Uptime/Expires    Ver   DR
Address                                                            Prio/Mode
172.16.1.2        FastEthernet2/0          00:46:44/00:01:23 v2    1 / DR S
!! VRF PIM adjacencies for CUST1 VRF
PE1# show ip pim vrf CUST1 neighbor
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
      S - State Refresh Capable
Neighbor          Interface                Uptime/Expires    Ver   DR
Address                                                            Prio/Mode
3.3.3.3           Tunnel0                  00:16:40/00:01:20 v2    1 / DR S
2.2.2.2           Tunnel0                  00:26:07/00:01:21 v2    1 / S
10.1.1.1          Serial1/0                00:40:13/00:01:21 v2    1 / S

PIM RP Mapping:

The C-network is configured for PIM SM using Static RP while the P-network is configured with PIM SM using Auto-RP.

PIM RP Mappings

PE1# show ip pim rp mapping
PIM Group-to-RP Mappings
Group(s) 239.0.0.0/8
  RP 2.2.2.2 (PE2), v2v1
    Info source: 2.2.2.2 (PE2), elected via Auto-RP
         Uptime: 00:16:03, expires: 00:02:47
PE1# show ip pim vrf CUST1 rp mapping
PIM Group-to-RP Mappings
Group(s): 224.0.0.0/4, Static
    RP: 12.1.1.1 (?)

Multicast Distribution Trees (MDTs):

The source is located behind the CE1 router while the receiver is behind the CE2 router. When the source starts to send multicast traffic for group address 239.10.10.10, CE1 router receives the packets, checks its multicast routing table for 239.10.10.10 group, creates a (*, G) i.e. (*, 239.10.10.10) entry in its multicast routing table, creates a Register message encapsulating the multicast packet with RP address 12.1.1.1 (configured statically) and forwards it towards the upstream router PE1. Due to inefficiency, the RP creates a (S, G) entry i.e. (192.168.1.1, 239.10.10.10), switches over to SPT-tree and sends Register-stop message to CE1 router. The RP sends periodic Join/Prune message to upstream routers to join SPT-tree.

CE1 multicast routing table

CE1# show ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report,
       Z - Multicast Tunnel, z - MDT-data group sender,
       Y - Joined MDT-data group, y - Sending to MDT-data group
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 239.10.10.10), 00:08:34/stopped, RP 12.1.1.1, flags: SPF
  Incoming interface: Serial0/0, RPF nbr 10.1.1.2
  Outgoing interface list: Null
(10.1.1.1, 239.10.10.10), 00:01:27/00:02:34, flags: PFT
  Incoming interface: Serial0/0, RPF nbr 0.0.0.0, Registering
  Outgoing interface list: Null
(192.168.1.1, 239.10.10.10), 00:01:27/00:03:05, flags: FT
  Incoming interface: Loopback0, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/0, Forward/Sparse, 00:01:27/00:03:02

When PE1 router receives multicast packets over VRF CUST1, it encapsulates these multicast packets in GRE and forwards to the Default-MDT group 239.192.10.1 via MTI Tunnel 0. So, PE2 and PE3 routers receive these GRE packets. Both routers decapsulate the GRE packets and retrieve the multicast packets from within. Since, PE3 router does not have any interested receiver(s), it will discard those packets. However, PE2 router checks its multicast routing table and forwards to CE2 router. Hence, it will forward these multicast packets over the VRF interface to CE2. CE2 router checks its multicast routing table and forwards the packets to the correct receiver.

The following output shows the global multicast routing table for Default-MDT group address 239.192.10.1. Other PE routers in the same multicast domain (MD) will have a same multicast routing table. The flag 'Z' indicates the multicast packets are sent over the MTI tunnel.

Global multicast routing table

PE1# show ip mroute 239.192.10.1
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report,
       Z - Multicast Tunnel, z - MDT-data group sender,
       Y - Joined MDT-data group, y - Sending to MDT-data group
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 239.192.10.1), 00:44:02/stopped, RP 2.2.2.2, flags: SJCFZ
  Incoming interface: FastEthernet2/0, RPF nbr 172.16.1.2
  Outgoing interface list:
    MVRF CUST1, Forward/Sparse, 00:44:02/00:01:04
(1.1.1.1, 239.192.10.1), 00:22:38/00:03:13, flags: FT
  Incoming interface: Loopback0, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet2/0, Forward/Sparse, 00:22:38/00:02:35
(2.2.2.2, 239.192.10.1), 00:22:51/00:02:43, flags: JTZ
  Incoming interface: FastEthernet2/0, RPF nbr 172.16.1.2
  Outgoing interface list:
    MVRF CUST1, Forward/Sparse, 00:22:51/00:01:10
(3.3.3.3, 239.192.10.1), 00:13:12/00:02:43, flags: JTZ
  Incoming interface: FastEthernet2/0, RPF nbr 172.16.1.2
  Outgoing interface list:
    MVRF CUST1, Forward/Sparse, 00:13:12/00:01:48

The mVRF routing entries on PE1 shows that the incoming interface is Serial 1/0 (VRF interface towards CE1 router) while the outgoing interface is Tunnel 0 interface. While on PE2 router, the incoming interface is Tunnel 0 interface and outgoing interface is Serial 1/0 (VRF interface towards CE2 router).

mVRF entries on PE1 & PE2

PE1# show ip mroute vrf CUST1 239.10.10.10
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report,
       Z - Multicast Tunnel, z - MDT-data group sender,
       Y - Joined MDT-data group, y - Sending to MDT-data group
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 239.10.10.10), 00:02:28/stopped, RP 12.1.1.1, flags: SPF
  Incoming interface: Tunnel0, RPF nbr 2.2.2.2
  Outgoing interface list: Null
(10.1.1.1, 239.10.10.10), 00:02:28/00:01:27, flags: FT
  Incoming interface: Serial1/0, RPF nbr 10.1.1.1
  Outgoing interface list:
    Tunnel0, Forward/Sparse, 00:02:22/00:03:00
(192.168.1.1, 239.10.10.10), 00:02:22/00:01:27, flags: T
  Incoming interface: Serial1/0, RPF nbr 10.1.1.1
  Outgoing interface list:
    Tunnel0, Forward/Sparse, 00:02:22/00:02:58
PE2# show ip mroute vrf CUST1 239.10.10.10
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report,
       Z - Multicast Tunnel, z - MDT-data group sender,
       Y - Joined MDT-data group, y - Sending to MDT-data group
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 239.10.10.10), 00:00:13/stopped, RP 12.1.1.1, flags: SP
  Incoming interface: Serial1/0, RPF nbr 10.2.2.1
  Outgoing interface list: Null
(10.1.1.1, 239.10.10.10), 00:00:13/00:03:26, flags: T
  Incoming interface: Tunnel0, RPF nbr 1.1.1.1
  Outgoing interface list:
    Serial1/0, Forward/Sparse, 00:00:13/00:03:18
(192.168.1.1, 239.10.10.10), 00:00:13/00:03:26, flags: T
  Incoming interface: Tunnel0, RPF nbr 1.1.1.1
  Outgoing interface list:
    Serial1/0, Forward/Sparse, 00:00:13/00:03:18

RPF Checks:

In mVPN, RPF check is categorised into three types of multicast packets-

(1) Customer packets received on the PE router on mVRF interface: The customer source IP address lookup in the VRF unicast routing table returns the interface associated with that VRF as the RPF interface

(2) P-packets received on the PE router from P router or directly connected PE router: The P-packet source IP address lookup in the global unicast routing table returns the interface connected to the P-router or PE-router as the RPF interface

(3) Customer packets received from MTI from remote PE router in the mVRF: If MP-BGP has learned the prefix that contains the C-source address, the RPF interface is set to the MTI that is associated with that mVRF since MTI does not take part in unicast routing.

RPF check on PE1 & PE2

PE1# show ip rpf vrf CUST1 12.1.1.1
RPF information for ? (12.1.1.1)
  RPF interface: Tunnel0
  RPF neighbor: PE2 (2.2.2.2)
  RPF route/mask: 12.1.1.1/32
  RPF type: unicast (bgp 100)
  RPF recursion count: 0
  Doing distance-preferred lookups across tables
PE1# show ip rpf 2.2.2.2
RPF information for PE2 (2.2.2.2)
  RPF interface: FastEthernet2/0
  RPF neighbor: ? (172.16.1.2)
  RPF route/mask: 2.2.2.2/32
  RPF type: unicast (ospf 1)
  RPF recursion count: 0
  Doing distance-preferred lookups across tables
PE2# show ip rpf vrf CUST1 12.1.1.1
RPF information for ? (12.1.1.1)
  RPF interface: Serial1/0
  RPF neighbor: ? (10.2.2.1)
  RPF route/mask: 12.1.1.1/32
  RPF type: unicast (ospf 11)
  RPF recursion count: 0
  Doing distance-preferred lookups across tables

Data-MDT: Optimizing traffic forwarding

Data-MDT is a multicast tree that is constructed on demand. The conditions to create Data-MDT depends on the threshold of traffic-load (1Kbps by default) and/or access-list specifying specific source address inside the VPN. When traffic-load threshold exceeds configured rate, the PE router sends a Data-Join message to the RP with the group address. It creates a (S,G) entry i.e. (1.1.1.1, 239.192.20.0) in its global multicast routing table by picking a group address from the range and starts sending traffic over to the Data-MDT group. Data-MDT is only created by PE that has the source connected to its site. Data-MDT uses the MTI created by Default-MDT.

Data-MDT configuration on PE1

ip vrf CUST1
 rd 1:1
 route-target both 1:1
 mdt default 239.192.10.1
 mdt data 239.192.20.0 0.0.0.255 threshold 1
!

When Default-MDT was configured, multicast traffic was forwarded to PE3 router which had no receives. With Data-MDT being created on demand, there wont be any traffic flowing towards PE3 router now. The flag 'z' indicates that PE1 router is the Data-MDT group sender for 239.192.20.0

Data-MDT multicast routing table

PE1# show ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report,
       Z - Multicast Tunnel, z - MDT-data group sender,
       Y - Joined MDT-data group, y - Sending to MDT-data group
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 239.192.20.0), 00:04:23/stopped, RP 2.2.2.2, flags: SPFz
  Incoming interface: FastEthernet2/0, RPF nbr 172.16.1.2
  Outgoing interface list: Null
(1.1.1.1, 239.192.20.0), 00:04:23/00:02:02, flags: FTz
  Incoming interface: Loopback0, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet2/0, Forward/Sparse, 00:04:22/00:03:03
(*, 239.192.20.1), 00:04:23/stopped, RP 2.2.2.2, flags: SPFz
  Incoming interface: FastEthernet2/0, RPF nbr 172.16.1.2
  Outgoing interface list: Null
(1.1.1.1, 239.192.20.1), 00:04:23/00:02:02, flags: FTz
  Incoming interface: Loopback0, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet2/0, Forward/Sparse, 00:04:22/00:03:01
(*, 239.192.10.1), 16:36:57/stopped, RP 2.2.2.2, flags: SJCFZ
  Incoming interface: FastEthernet2/0, RPF nbr 172.16.1.2
  Outgoing interface list:
    MVRF CUST1, Forward/Sparse, 01:54:46/00:02:23
(1.1.1.1, 239.192.10.1), 16:15:34/00:03:07, flags: FT
  Incoming interface: Loopback0, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet2/0, Forward/Sparse, 16:15:33/00:03:20
(2.2.2.2, 239.192.10.1), 16:15:46/00:02:57, flags: JTZ
  Incoming interface: FastEthernet2/0, RPF nbr 172.16.1.2
  Outgoing interface list:
    MVRF CUST1, Forward/Sparse, 01:54:46/00:02:23
(3.3.3.3, 239.192.10.1), 16:06:07/00:02:37, flags: JTZ
  Incoming interface: FastEthernet2/0, RPF nbr 172.16.1.2
  Outgoing interface list:
    MVRF CUST1, Forward/Sparse, 01:54:46/00:02:23

The following output shows the mVRF entries. The flag 'y' indicates PE1 router is sending to the Data-MDT group.

Data-MDT: mVRF routing table on PE1

PE1# show ip mroute vrf CUST1 239.10.10.10
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report,
       Z - Multicast Tunnel, z - MDT-data group sender,
       Y - Joined MDT-data group, y - Sending to MDT-data group
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 239.10.10.10), 00:00:55/stopped, RP 12.1.1.1, flags: SPF
  Incoming interface: Tunnel0, RPF nbr 2.2.2.2
  Outgoing interface list: Null
(10.1.1.1, 239.10.10.10), 00:00:50/00:03:19, flags: FTy
  Incoming interface: Serial1/0, RPF nbr 10.1.1.1
  Outgoing interface list:
    Tunnel0, Forward/Sparse, 00:00:54/00:02:35
(192.168.1.1, 239.10.10.10), 00:00:50/00:03:19, flags: Ty
  Incoming interface: Serial1/0, RPF nbr 10.1.1.1
  Outgoing interface list:
    Tunnel0, Forward/Sparse, 00:00:54/00:02:35

The following output taken from PE2 router indicates that it is receiving traffic on Data-MDT indicated by flag 'Y'.

Data-MDT: mVRF routing entries on PE2

PE2# show ip mroute VRF CUST1 239.10.10.10
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report,
       Z - Multicast Tunnel, z - MDT-data group sender,
       Y - Joined MDT-data group, y - Sending to MDT-data group
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 239.10.10.10), 00:02:12/stopped, RP 12.1.1.1, flags: SP
  Incoming interface: Serial1/0, RPF nbr 10.2.2.1
  Outgoing interface list: Null
(10.1.1.1, 239.10.10.10), 00:02:12/00:02:09, flags: TY
  Incoming interface: Tunnel0, RPF nbr 1.1.1.1, MDT:239.192.20.0/00:01:52
  Outgoing interface list:
    Serial1/0, Forward/Sparse, 00:02:12/00:03:14
(192.168.1.1, 239.10.10.10), 00:02:12/00:02:09, flags: TY
  Incoming interface: Tunnel0, RPF nbr 1.1.1.1, MDT:239.192.20.1/00:01:52
  Outgoing interface list:
    Serial1/0, Forward/Sparse, 00:02:12/00:03:18

Since PE3 router has no interested receiver for VPN group address 239.10.10.10, it does not join the Data-MDT group.

Data-MDT:mVRF entries on PE3

PE3# show ip mroute vrf CUST1 239.192.20.0
Group 239.192.20.0 not found
PE3# show ip mroute vrf CUST1 239.192.20.1
Group 239.192.20.1 not found

The show ip pim vrf CUST1 mdt send command displays the Data-MDT setup on the sending PE router i.e. PE1 router.

Data-MDT sending by PE1

PE1# show ip pim vrf CUST1 mdt send
MDT-data send list for VRF: CUST1
  (source, group)                     MDT-data group      ref_count
  (10.1.1.1, 239.10.10.10)            239.192.20.0        1
  (192.168.1.1, 239.10.10.10)         239.192.20.1        1

The show ip pim vrf CUST1 mdt receive command displays the Data-MDT setup on the receiving PE router i.e. PE2 router.

Data-MDT receiving on PE2

PE2# show ip pim vrf CUST1 mdt receive
Joined MDT-data [group : source]  uptime/expires for VRF: CUST1
 [239.192.20.1 : 0.0.0.0]  00:00:24/00:02:35
 [239.192.20.0 : 0.0.0.0]  00:00:24/00:02:35