Back to Articles
Networking

Layer 3 Multicast & IGMP: A Network Engineer's Study Guide

Class D addressing, RPF forwarding, L2 mapping, and IGMPv1 through IGMPv3

Alex Lux2026-06-258 min read
MulticastIGMPCCNPNetwork EngineeringRoutingLayer 3CiscoRPF
Layer 3 Multicast & IGMP: A Network Engineer's Study Guide

Further study: L3 Multicast playlist — excellent visual walkthrough of these concepts.

Multicast is one of the harder topics on the CCNP ENCOR path because it inverts how we normally think about forwarding. In unicast, packets are guided toward a destination. In multicast, packets are guided away from a source toward interested receivers. This guide covers the fundamentals from my study notes: Class D addressing, L3-to-L2 mapping, reverse path forwarding, multicast routing states, loop prevention, and IGMP signaling from v1 through v3.


Multicast Addressing Basics

In a multicast packet:

  • Source IP remains a normal unicast address
  • Destination IP is the multicast group address

Multicast destinations belong to Class D — every address whose first four bits are 1110:

Range Notes
224.0.0.0239.255.255.255 ~268 million group addresses (2²⁸)

Class D is a flat address space. There is no subnetting concept — each IP simply represents a multicast group.

Reserved Ranges Within Class D

Range Name Purpose
224.0.0.0/24 Local Network Control Block Link-local scope; TTL 1–2. Used by routing protocols (e.g. OSPF 224.0.0.5/224.0.0.6, EIGRP 224.0.0.9)
232.0.0.0/8 Source-Specific Multicast (SSM) Streams where the source is already known
239.0.0.0/8 Organization-Local Scope Private multicast — comparable to RFC 1918 unicast

Mapping Layer 3 to Layer 2

Ethernet needs a destination MAC for every frame. IP multicast uses a well-known OUI:

  • Multicast MAC OUI: 01-00-5E
  • The most significant bit of the remaining 24 bits is fixed to 0
  • The low 23 bits of the IP address are copied to the low 23 bits of the MAC

Because 28 bits of the IP group ID map onto only 23 MAC bits, 32 IP addresses (2⁵) map to the same MAC. This is intentional — it saved roughly $15,500 in 1989 hardware costs by not requiring a full 2²⁸ MAC table.

Example: These all map to 01:00:5E:01:02:03:

  • 230.1.2.3
  • 230.129.2.3
  • 239.1.2.3

Multicast Forwarding Basics

Interface roles per source

Interface Role
Upstream (RPF interface) Metrically closest to the source
Downstream Interfaces with interested receivers

This model is called Reverse Path Forwarding (RPF) — packets flow away from the source along a tree built in reverse from the receiver's perspective.


Multicast "Routes" (Forwarding States)

The multicast routing table organizes information by multicast group (G). Each group has a source:

  • (S, G) — specific source S for group G
  • (*, G) — any/unknown source for group G

Each forwarding state has:

Term Meaning
IIF Incoming Interface — single upstream interface
OIL Outgoing Interface List — downstream interfaces toward receivers

Building correct (S,G) and (*,G) states with valid IIF and OIL entries is the core job of a multicast routing protocol.

Three responsibilities per forwarding state

  1. Identify IIF — use the unicast FIB; the interface on the shortest path to the source becomes upstream (can be overridden with multicast-specific info)
  2. Identify OIL — receivers signal interest; as join requests arrive, interfaces are added to the OIL
  3. Maintain dynamic trees — add/remove IIF and OIL as sources and receivers come and go

Forwarding rule: Packets arrive on the IIF and are replicated out the OIL. Breaking this rule creates loops — and multicast loops are especially dangerous because every router replicates packets, which can cause multicast storms.

Tree types

State Tree root Type
(S, G) At the source Shortest Path Tree (SPT)
(*, G) Shared rendezvous point Shared tree

Loop Prevention: RPF Check

Loop prevention happens in the data plane via the RPF check:

  1. A multicast packet arrives
  2. Router inspects the source IP
  3. Router determines the valid IIF for that source
  4. If the packet was not received on the valid IIF → drop

By default, the unicast FIB drives RPF. When multicast topology diverges from unicast topology, use an RPF override:

  • Separate multicast RPF table (static or multi-topology IGP)
  • MBGP for inter-domain cases
  • Static multicast route: ip mroute <network> <mask> <next-hop>

Layer 2 Multicast Behavior

Switch type Behavior
Basic (non-aware) Treats multicast like broadcast — floods to all ports except ingress. Works, but inefficient. Hosts filter at Layer 3.
Multicast-aware Snoops IGMP/MLD signaling, builds per-port group state, forwards only to interested receivers

Receiver Signaling Overview

Before a host receives a stream, it must tell a local multicast-enabled router (the Last Hop Router / LHR):

  1. Application layer tells the host which group to join
  2. Host sends an IGMP message on the local segment
  3. Router hears the join and adds the interface to the OIL for that group

This explicit join is what separates multicast from broadcast.

Useful verification commands:

R1# show ip mroute
R1# show ip igmp groups

IGMPv1 and IGMPv2

IGMPv2 adds two major improvements over v1:

  • Leave Group messages — v1 relied on silent timeouts; routers could forward to departed receivers until timers expired
  • Querier election — v1 depended on the multicast routing protocol to pick a querier

Message types

Message Purpose
Membership Report Receiver joins a group (informally: "IGMP join")
Leave Group Receiver leaves (IGMPv2 only)
Membership Query Router confirms continued interest

Queries can be General (all groups on 224.0.0.1) or Group-Specific (single group address, event-driven after a leave).

Membership Report (Join)

Field Value
Source IP Host's unicast IP
Destination IP The multicast group IP
IP Options Router Alert
Type 0x16 (v2) / 0x12 (v1)
  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Type (0x16,0x12)| Max Resp Time |          Checksum          |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                         Group Address                         |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Leave Group (IGMPv2)

Field Value
Destination IP 224.0.0.2 (ALL-ROUTERS)
Type 0x17

Membership Query

Query type Destination
General 224.0.0.1 (ALL-SYSTEMS)
Group-Specific The group's multicast IP

Type: 0x11


IGMPv1/v2 Join Flow

  1. Receiver sends unsolicited Membership Report to the group IP (low latency join)
  2. Other group members hear it and suppress duplicate reports
  3. Multicast router creates or refreshes group state; adds interface to OIL

Periodic general queries

  • Each group state has a timer that must be refreshed
  • Querier sends General Query to 224.0.0.1
  • Hosts start a random timer (< Max Response Time); one host per group responds
  • Hearing another report cancels the local timer (report suppression)

Leave flow (IGMPv2)

  1. Host sends Leave Group to 224.0.0.2
  2. Router sends Group-Specific Query if other members may exist
  3. If no reports return → delete group state and remove from OIL

IGMPv3

IGMPv3's major addition: receivers can signal source lists alongside group addresses. This enables Source-Specific Multicast (SSM) and source exclusion.

  • Reports sent to 224.0.0.22 (not the group IP)
  • Multiple groups per report (eliminates one-report-per-group limitation)
  • Backward compatible with v1/v2 messages

IGMPv3 Report structure

  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |   Type=0x22   |   Reserved    |          Checksum            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |           Reserved            | Number of Group Records (M)  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                  Group Record [1..M]                          |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Group Record

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Record Type  | Aux Data Len |   Number of Sources (N)       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                    Multicast Address                          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                    Source Address [1..N]                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Record Type values

Value Meaning
1 MODEISINCLUDE
2 MODEISEXCLUDE
3 CHANGETOINCLUDE_MODE
4 CHANGETOEXCLUDE_MODE
5 ALLOWNEWSOURCES
6 BLOCKOLDSOURCES

Filter modes

Mode Behavior
INCLUDE Receive only from listed sources → SSM
EXCLUDE Receive from all sources except listed ones → ASM

Record categories:

  • Current-State: MODE_IS_INCLUDE, MODE_IS_EXCLUDE
  • Filter-Mode-Change: CHANGE_TO_INCLUDE_MODE, CHANGE_TO_EXCLUDE_MODE
  • Source-List-Change: ALLOW_NEW_SOURCES, BLOCK_OLD_SOURCES

IGMPv3 Query enhancements

New fields in queries:

Field Purpose
QRV Querier Robustness Variable (default 2, max 7) — how lossy the network is; higher = more retransmits
QQIC Querier Query Interval Code — syncs query intervals to the designated querier
S Suppress Router-Side Processing

Query types add Group-and-Source-Specific queries alongside General and Group-Specific.

IGMPv3 join examples

ASM join (Any-Source Multicast):

Field Value
Record Type CHANGE_TO_EXCLUDE_MODE
Sources 0 (wildcard)
Destination 224.0.0.22

SSM join:

Field Value
Record Type ALLOW_NEW_SOURCES
Sources ≥ 1 specific source IP
Destination 224.0.0.22

Key Takeaways

  1. Class D (224.0.0.0/4) is flat group space — no subnets, just groups
  2. 23-bit MAC mapping means 32 IPs share one multicast MAC — know this for troubleshooting
  3. RPF builds trees away from sources; IIF/OIL consistency prevents storms
  4. IGMP makes joins explicit at the last hop — routers only forward where receivers asked
  5. IGMPv3 unlocks SSM and source filtering — critical for modern IPTV and financial feeds

Studying for CCNP ENCOR? This article is part of my networking notes series. More at alexflux.com/articles.

Related Reading