Every device that uses an IPv6 address will also compute and join a solicited node multicast group address. This address is required for IPv6 Neighbor Discovery which we use for layer two address discovery.
All solicited node multicast group addresses start with FF02::1:FF /104:
- FF /8 is the IPv6 multicast range.
- FF02 /16 is the multicast link local scope.
Let’s take a look on a Cisco IOS router to see what these solicited node multicast group addresses look like:
R1(config)#interface FastEthernet 0/0
R1(config-if)#ipv6 enable
I just enabled IPv6 on an interface, this causes the router to create a link-local IPv6 address. It will also compute and join the solicited node multicast group address:
R1#show ipv6 interface FastEthernet 0/0
FastEthernet0/0 is up, line protocol ibs up
IPv6 is enabled, link-local address is FE80::21D:A1FF:FE8B:36D0
No Virtual link-local address(es):
No global unicast address is configured
Joined group address(es):
FF02::1
FF02::1:FF8B:36D0
Above you can see that the router joined FF02::1:FF8B:36D0. The last 6 hexadecimal characters were copied from the link local address. Here’s a picture:

Above you can see the complete uncompressed solicited node multicast address.
I can configure multiple IPv6 addresses on the interface, if the last 6 hexadecimal characters are similar then there is no need to join another multicast address. For example, let’s configure an IPv6 unicast address:
R1(config)#interface FastEthernet 0/0
R1(config-if)#ipv6 address 2001:DB8:1212:1212::/64 eui-64
I’ll use EUI-64 to generate the last 64 bits. Take a look at the joined group addresses:
R1#show ipv6 interface FastEthernet 0/0
FastEthernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::21D:A1FF:FE8B:36D0
No Virtual link-local address(es):
Global unicast address(es):
2001:DB8:1212:1212:21D:A1FF:FE8B:36D0, subnet is 2001:DB8:1212:1212::/64 [EUI]
Joined group address(es):
FF02::1
FF02::1:FF8B:36D0
The last 64 bits of the link local and unicast address are the same so the solicited node multicast group address remains the same. If we configure an IPv6 address where the last 6 hexadecimal characters are different then the router will join another multicast group. Let’s try that:
R1(config)#interface FastEthernet 0/0
R1(config-if)#ipv6 address 2001:DB8:1234:5678:1234:5678:1234:5678/64
Instead of using EUI-64 I’ll use make up an address myself. The router will now join an additional multicast group:
R1#show ipv6 interface FastEthernet 0/0
FastEthernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::21D:A1FF:FE8B:36D0
No Virtual link-local address(es):
Global unicast address(es):
2001:DB8:1212:1212:21D:A1FF:FE8B:36D0, subnet is 2001:DB8:1212:1212::/64 [EUI]
2001:DB8:1234:5678:1234:5678:1234:5678, subnet is 2001:DB8:1234:5678::/64
Joined group address(es):
FF02::1
FF02::1:FF34:5678
FF02::1:FF8B:36D0
Above you can see the router also joined the FF02::1:FF34:5678 solicited node multicast group address.
You have now seen that an IPv6 device computes and joins a solicited node multicast group address for each IPv6 address that you configure.
The big question remains: why and where do we use it?
I’ll answer this with some examples in the IPv6 Neighbor Discovery lesson.
Any questions? Feel free to leave a comment!
No comments:
Post a Comment