Multicast — IGMP and PIM
12 min
Multicast lets you send one packet that the network fans out to many receivers. A stadium video feed at 10 Mbps reaches 10,000 viewers without sending 10,000 unicast copies. The trick: every receiver "joins" a multicast group, and the network replicates packets only where it needs to.
The address space
| Range | What | |---|---| | 224.0.0.0/4 | All multicast (224.0.0.0 – 239.255.255.255) | | 224.0.0.0/24 | Link-local (OSPF 224.0.0.5, all routers 224.0.0.2, etc.) — TTL 1 | | 232.0.0.0/8 | SSM (Source-Specific Multicast) range | | 233.0.0.0/8 | GLOP (statically-assigned per AS) | | 239.0.0.0/8 | Administratively-scoped — your private multicast space |
A multicast destination IP is never an IP source. Sources are normal unicast IPs sending to a group address.
IGMP — the host-router conversation
Hosts tell routers "I want to receive group X" with IGMP (Internet Group Management Protocol):
- IGMPv2 is the common version. A host sends a Membership Report when it wants to join, a Leave Group when it's done.
- IGMPv3 adds source filtering — "give me group X, but only from source S" — required for SSM.
The router uses these reports to maintain its multicast forwarding state: for each (*, G) or (S, G) pair, which interfaces have receivers downstream.
IGMP snooping
A switch that just blindly floods multicast wastes bandwidth. IGMP snooping lets the switch eavesdrop on IGMP join/leave messages between hosts and the router, and forward each group's multicast traffic only to ports with at least one joined receiver. Always enable on access switches — without it, multicast TV / video streams hit every port and saturate them.
PIM — building the distribution tree across routers
Once hosts have joined via IGMP, PIM (Protocol Independent Multicast) builds the inter-router distribution tree. The two flavors:
| Flavor | When |
|---|---|
| PIM Dense Mode (PIM-DM) | "Push" — flood everywhere first, prune back. Old, wasteful. Mostly historical. |
| PIM Sparse Mode (PIM-SM) | "Pull" — receivers explicitly join via a Rendezvous Point. The standard. |
| PIM-SSM | Source-specific — works directly with (S, G), no RP needed. |
| Bidir-PIM | Bidirectional — for many-to-many apps. Niche. |
For 99% of multicast deployments: PIM Sparse Mode.
The Rendezvous Point (RP)
In PIM-SM, every source registers with an RP (a designated router) and every receiver pulls traffic via the RP first. Once traffic is flowing, routers can optimize to a direct shortest-path tree from source to receiver, dropping the RP from the path.
| Mechanism | Used for | |---|---| | Static RP | You configure the RP IP on every router. Simple, brittle. | | Auto-RP (Cisco) | RP-mapping agent announces RPs in the network. Cisco-only. | | BSR (Bootstrap Router) | Open-standard equivalent of Auto-RP. | | Anycast RP | Multiple physical routers share the same RP IP for redundancy. |
The RP is a single logical point — make it redundant or your multicast service has a SPOF.
A worked walkthrough
- Host A sends an IGMPv2 Membership Report for group
239.10.20.30out its NIC. - Last-hop router records
*, 239.10.20.30is wanted out that port. - The router sends a PIM Join
(*, 239.10.20.30)toward the RP, building the shared tree branch. - A source S elsewhere sends a packet to
239.10.20.30. Its first-hop router encapsulates and unicasts it to the RP (PIM Register). - RP de-encaps, forwards down the shared tree to A.
- After a few packets, A's router optimizes: sends a PIM Join
(S, 239.10.20.30)toward S directly, then a Prune(S, *)toward the RP. Subsequent packets take the direct path.
What to remember
- Multicast addresses are
224.0.0.0/4;239.0.0.0/8for private use. - IGMP = host ↔ router group membership. v2 standard, v3 for source-filtering.
- IGMP snooping = switch listens to IGMP and only forwards to subscribed ports.
- PIM-SM + Rendezvous Point is the standard for inter-router distribution.
- Multicast is a heavyweight feature; turn on snooping and use it deliberately.