The original method of switch multicast over MPLS core is called mVPN, or the Rosen draft.
The following article gives a very clear and concise description of how it works:
There are two trees in MVPN:
- Default Tree
- is used for customer Control Plane and low rate Data Plane traffic
- created by default, all PEs that run multicast VRF are part of the tree
- can use SM and SSM, SSM is preferred because without RP, it is simplier to deploy and maintain
- Data MDT
- created dynamically when there is active multicast source and listeners
- only PEs with active source or listen will join the tree
- customer traffic initially run on the default tree, when the traffic crossed over the configured threshold, a data MDT is built.
- SP core does not need any code support for mVPN, the core routers only need to support regular PIM multicast protocols
- SP core is scalable before it does not need to keep multicast states for customers. Instead, all multicast groups for each customer is configure one multicast group in the SP core. This is archive by encapsulating customers’ multicast traffic in point to multipoint GRE tunnel between PE (or Multipoint to multipoint GRE tunnels if BiDir-PIM is used in the SP network)
- customer can keep their multicast design without making any changes. They can keep their RP if running PIM-SM.
- customer can use any multicast groups as usual, because the customer multicast groups are hidden from the SP core.
- customer multicast traffic is not label switched, the multicast packets are routed using regular IP multicast tunnel in GRE.
- SP NOC need to look at Multicast RIB and FIB to troubleshoot multicast issue, and look at LFIB to troubleshoot unicast issue.