1

I’m studying IPv6 and I’m traying to better understand how it works in deep.

So far, I know that there are essentially three types of addresses, based on the type of communication:

  • unicast: one to one communication
  • multicast: one to many communication
  • anycast: one to nearest communication

I know that there is not the concept of broadcast in an IPv6 network and, instead, are used multicast addresses: for example, it is possible to send something only to routers on the same local network segment using the FF02::2 address and this information does not go to other hosts that are not routers.

There are very good videos on YouTube, made by Sunny Classroom, about IPv6: on the video named IPv6 - Neighbor Discovery Protocol (https://youtu.be/a1AQfjWwPaE?t=165), at 2:46, you can see an animation where a computer sends a FF02::2 packet that arrives just to the two routers, ignoring the other devices.

And here the confusion starts: if I have a network with, for example, 20 computers and one router on the same local network, i. e. on the same switch, and one of these computers sends a multicast of type FF02::2, this packet should reach only the router (if I understood what I’ve studied so far) but how can the switch, that is a layer 2 appliance, know how to forward the FF02::2 packet just trough the port where the router is? I imagine that in this scenario all the devices will receive the FF02::2 packet, just like a broadcast message’d do: so, it seems to me that broadcast messages still exist in IPv6: where am I wrong?

1 Answer 1

2

Keep in mind that IPv4 also has multicast, which works nearly the same way as in IPv6. There is not much fundamentally new that IPv6 introduces in this area, it's just a bit more tidy now (e.g. group address scopes properly grouped).

how can the switch, that is a layer 2 appliance, know how to forward the FF02::2 packet just trough the port where the router is?

Switches actually pay attention to IPv4 IGMP and ICMPv6 MLD packets that go through them whenever a host requests to join or leave a multicast group. Usually this functionality is called "IGMP snooping" (for IPv4) or "MLD snooping" (for v6).

This makes multicast-aware switches slightly more than pure L2 devices. (RFC 4541 describes switch IGMP/MLD snooping in more detail.) In fact, RFC 4541 even recommends snooping switches to forward multicast frames based on L3 (IP) addresses rather than L2 (MAC), though the frames still retain their original L2 header (which wouldn't be the case with pure-L3 forwarding as routers do), so it's a layer-breaking mix of L2/L3 functionality.

(Not all switches actually snoop IGMP/MLD subscriptions; in particular, smaller unmanaged switches often do not care at all, and even in managed "enterprise" switches it is frequently disabled by default. So in practice, often the packets actually reach all hosts and are filtered by the host OS.)

Similarly, Wi-Fi access points frequently have a "Multicast Enhancement" feature which is also based on IGMP/MLD snooping, therefore also being slightly more than pure L2 bridges. (Radio is an inherently broadcast medium, but actual multicast frames are sent at low rates; "multicast enhancement" converts them to unicast frames – one copy per recipient – which are faster and more reliable to deliver.)

But note that certain multicast groups do not use IGMP or MLD at all – in particular, the ff02::1 "All Nodes" group doesn't use MLD and therefore is effectively a broadcast group (RFC 2710 section 5; RFC 4541 section 3), even if people don't like to admit it. Similarly 224.0.0.1 "All Nodes" (as well as the rest of 224.0.0.x) in IPv4 is functionally a broadcast group as IGMP is not used for it.

See also:

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .