Without some trick, L2 switches must flood any frame with an odd first octet in its destination address out every port. This is becoming inadequate, even totally unworkable, now that Cisco is trying to dip their sticky fingers into videoconferencing and television delivery pies.
But the ways around the problem are actually much older. Even old switches can prune L2 switchports from multicast forwarding. But now we're starting to depend on tricks actually working precisely well. IGMP snooping on the old L2 switches is, oddly, a genuine L3 feature and thus IPv4-specific. It doesn't modify forwarded packets like a proper L3 switch, but it's eerily similar to flow-based L3 forwarding: the silicon sends all the L3 IGMP join/leave/query messages to the switch's control plane, which then makes something like a flow-based entry in the L2 FDB for each multicast group. Traditionally, I'm not sure why---it seems like they didn't fully trust themselves to make a working implementation---the IPv4 multicast addresses reserved for routers' control plane functions like OSPF and DHCP (224.0.0.0/24 or 01:00:5e:00:00:xx) are exempt from IGMP snooping, and are always flooded.
Since IGMP snooping is an L3 IPv4-specific feature, I would expect my
Extreme switches to always flood all IPv6 multicast traffic (as well
as, for example, all Appletalk multicast traffic). MLD snooping, the
IPv6 equivalent snoop feature, has to be separately implemented in the
switch. They're acting a little weird, though. I can see that
they're snooping correctly by looking at show igmp snooping
<vlan>
, and multicast MAC addresses appear in show
fdb
for spanning tree, but no IPv4 multicast addresses appear
there. The switch is running OSPF, so even without IGMP snooping I
would at least expect 01:00:5e:00:00:02, :05, :06 to be wired to the
switch's CPU, but they aren't. I suspect more layer-violation.
Anyway, Extreme's quirks aside, to me it seems like there should have been a router-to-switch L2 protocol for pruning multicast trees so that IPv4, IPv6, CLNP, Appletalk, whatever, could benefit. There once was one---CGMP---but Cisco's old CGMP protocol seems to be dead. Maybe CGMP never worked well? Did IOS ever send CGMP messages to manage anything but IPv4 multicast? I think it will stay dead because I think, on future networks where multicast is used for actual traffic not just neighbor discovery and routing protocols, we will have L3 switches out to the edge, and the switch even on its supposed L2 domains, ignore the MAC address and forward multicast based on L3 address and IGMP snooping alone. It would be interesting to test them, to send a malformed IPv4 packet where L3 and L2 multicast address deliberately don't match, and see what pops out the other end. Will it splurt out with a corrected destination MAC? Anyway, aside from this multicast inefficiency, IPv6 works fine on L2 switches.