Theoretical foundations and architecture
Multicast delivers one flow to many receivers, and the network replicates packets only where the path splits. For a provider this means IPTV, market-data feeds and software updates; for VRF customers - video conferencing and corporate distribution. This lesson refreshes the basics from the provider's point of view: how hosts report membership with IGMP and MLD, how PIM-SM builds a shared tree with an RP and switches to the source tree, how SSM and Bidir differ, how the RPF check works and why Anycast RP and MSDP exist. Then we answer the key question of the module: why the LDP and RSVP-TE LSPs you already know as one-way paths cannot replicate a packet, and which four options the provider has - ingress replication, GRE tunnels over IP multicast, P2MP/MP2MP LSPs and BIER. The lesson prepares the ground for Rosen mVPN and NG-MVPN: every term (RPF, (S,G), RP, SPT) is used later.
Hosts and the router: IGMP and MLD
A provider has to understand multicast not only inside a customer VRF but also in its own network (an IPTV head-end, market-data feeds, video conferencing). A host tells its nearest router about group membership using IGMP (IPv4) or MLD (IPv6). IGMPv2 (RFC 2236) uses reports sent to the group address and a Leave message to 224.0.0.2; the general query goes to 224.0.0.1, every 125 seconds by default, and the querier on a segment is the router with the lowest IP address. IGMPv3 (RFC 3376) adds INCLUDE/EXCLUDE source lists, reports go to 224.0.0.22, and it is what SSM requires. MLDv1/v2 (RFC 2710, RFC 3810) do the same over ICMPv6. IGMP and MLD operate only between a host and the nearest router; across the provider network the state is carried by PIM.
PIM-SM: shared tree, Register and SPT
PIM-SM (RFC 7761) builds trees only on explicit receiver demand. Hello messages form adjacencies (every 30 seconds by default, hold time 105 seconds); on a segment a DR is elected: the highest DR Priority, then the highest IP address. When the receiver-side DR sees an IGMP report it creates (*,G) state and sends a Join toward the RP along the RPF path to the RP address; Join/Prune messages are refreshed periodically (every 60 seconds, hold time 210 seconds). Receivers do not know the source in advance: the source-side DR encapsulates the first packets in a PIM Register and unicasts them to the RP. The RP sends an (S,G) Join toward the source, receives the native flow and then sends Register-Stop. After that the last-hop router normally switches to the shortest path tree (SPT): it sends an (S,G) Join to the source and an (S,G,rpt) Prune to the RP. The switchover threshold is configurable and on many platforms defaults to zero, so the switch happens after the first packet.
SSM and Bidir
PIM-SSM (RFC 4607) removes the RP and the shared tree. A channel is a pair (S,G), the host requests it with IGMPv3 INCLUDE, and the last-hop router sends an (S,G) Join directly toward the source. The default SSM range is 232.0.0.0/8 (IPv4) and FF3x::/32 (IPv6); for IGMPv2 hosts SSM mapping is used. For IPTV this mode is simple and robust: no Register and no RP as a point of failure. Bidir PIM (RFC 5015) suits many-to-many applications: only (*,G) state exists, a Designated Forwarder is elected per link for each RP, and traffic flows from the source up to the RP and down the shared tree, with no Register and no (S,G) state in the core.
The RPF check
Multicast is forwarded by reverse path forwarding: a packet is accepted only if it arrives on the interface the router uses to reach the source (for (*,G), the RP address) according to the unicast table (MRIB). Packets on any other interface are dropped, which suppresses loops. The consequences: asymmetric unicast, ECMP or a wrong route to the source break multicast directly, even when ping works. A Join is sent to the RPF neighbour, so the tree follows the IGP rather than the PIM configuration.
RP: static, Auto-RP, BSR, Anycast RP and MSDP
The RP can be configured statically, learned dynamically via BSR (RFC 5059) or via Cisco's proprietary Auto-RP (224.0.1.39/40). For resilience, Anycast RP is used: several routers share one RP address on a loopback and sources register with the IGP-closest one. Source information is synchronised between such RPs either with MSDP (RFC 3618, TCP 639, Source-Active messages) or with PIM (RFC 4610), where a Register is forwarded to the other RPs of the set. The RP address must be reachable through the IGP from every router in the domain; a static RP that differs on some routers produces (*,G) trees without a common root.