IPv6 Solicited Node Multicast Address

This topic is to discuss the following lesson:

Hi Rene,

I was wondering if you can clarify something for me. From me reading of this lesson, I understand that the solicited node multicast address is formed by joining the last 6 hex of the link local address to the FF02::1:ff address, correct ?

Now, the confusion comes in when we add a IPv6 unicast address, your example being:
2001:DB8:1234:5678:1234:5678:1234:5678/64

How, is the solicited multicast address now:

FF02::1:FF34:5678?

Why did you take the last 6 hex from the Ipv6 unicast address and not the link local address ?

Thank you,
Kevin

Hi Kevin,

The solicited node multicast address is generated for each IPv6 address on the interface, there’s one for the link local address and for each global unicast address that you have configured.

Rene

If we are only taking last 6 hex then multiple hosts on the same LAN may join to the same multi-cast group. As many hosts may have the MAC addresses whose last 24 bits are same. Is generating unique “solicited multi-cast address” not our intention ?

Hi Harmeet,

6 hexadecimal characters are 24 bits. The last 24 bits of the MAC address is the “vendor assigned” part. If you have two network cards from the same vendor then the last 24 bits should be unique.

Theoretically, it could be possible that you have two network cards from different vendors that have the same 24 vendor assigned bits but the odds are extremely small :slight_smile:

It is possible though to have two IPv6 addresses that use the same solicited node address. This is no problem though…both hosts will listen to the multicast group address and if needed, discard the packet that isn’t for them.

Rene

1 Like

Hi
I have found these articles very helpful to understand this topic

http://www.networkcomputing.com/author/36436053

Hi Rene,

Thank you for the clarity of your work. Although I understand how the NSM works, I have some gray areas:
1 - When you activate ipv6 on an interface, the latter joins a multicast group. This multicast group is used by NDP to retrieve the MAC address of the neighbor or detect duplicate addresses. But in packet exchanges, I see that it is unicast and not multicast. When we talk about multicast, we are talking about broadcasting from a source to a group of recipients, which is quite confusing. Can you please bring me some clarification?
2 - How does a switch manage flows when trying to join a host’s multicast group on the network?

Hello Willy

In both IPv4 and IPv6, multicast is defined as communication from a single source to multiple destinations. The feature itself has this capability. But what happens if there is only a single receiver? Is the feature no longer considered multicast because there is only a single host that has joined the group? The mechanism remains multicast, but in this case, there is only a single host that has joined the group, so the communication looks like unicast, because there is a single sender and a single receiver.

The important thing here is that the mechanism remains multicast, but the specific IPv6 multicast address is used in an environment where there is only a single host joining the multicast group. Rene explains it very well in the following text which is taken from the IPv6 Neighbor Discovery Protocol on Cisco Router lesson.

Using solicited node multicast addresses as the destination is far more efficient than IPv4’s ARP requests that are broadcasted to all hosts.

Every IPV6 device will compute a solicited node multicast address by taking the multicast group address (FF02::1:FF /104) and adding the last 6 hexadecimal characters from its IPv6 address. It will then join this multicast group address and “listens” to it.

When one host wants to find the layer two address of another host, it will send the neighbor solicitation to the remote host’s solicited node multicast address.It can calculate the solicited node multicast address of the remote host since it knows about the multicast group address and it knows the IPv6 address that it wants to reach.

The result will be that only the remote host will receive the neighbor solicitation. That’s far more efficient than a broadcast that is received by everyone…

I’m not completely sure what you mean here. Strictly speaking, a switch will not attempt to join a host’s multicast group, because a switch is an L2 device. Secondly, other devices do not attempt to join the multicast group of a host. Each host joins its own multicast group with a unique multicast group address of its own, and listens on this address.

Now how will switches manage the flow of these multicast addresses? For IPv4 we have what is known as IGMP snooping which will prevent multicast traffic from being broadcast to all L2 switch ports. For IPv6, we use what is called Multicast Listener Discovery (MLD) snooping, which essentially provides the same functionality for IPv6 multicast. You can find out more about it here:

I hope this has been helpful!

Laz

Hi Laz,
Thanks for your return …

1 Like