cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
2594
Views
10
Helpful
10
Replies

Understanding the Solicited-node multicast address

trane.m
Level 1
Level 1

Hi,

I'm reading up for the CCNA, so that is the level of knowledge i have and understanding i'm going for.

Recently i learned about the solicited-node multicast address. I learned that if your router needs to ping a neighbor and the router does not have the neighbors MAC address in it's MAC address table, it will send a NDP NS message to the neighbors solicited-node multicast address. I also learned that your router "knows" the solicited-node multicast address of the neighbor, because it is ff02::1:ff and the last 6 digits of the neighbors unicast address, which you just provided in the ping command. That's really smart!

I was wondering if there is any case where you don't first ping the neighbor, and by that, do not provide the last 6 digits of their unicast address? If so, how does the router then get the needed information to send a message to the neighbor?
i don't know enough about networking and certainly not IPv6 to come up with a scenario myself, but i am really curious. Also, this is the only scenario i've heard of so far, and i base my notes on that. It would be a shame if there is a bunch of other ways and all i think is "well, you always ping the neighbor first and then your router has all the information".

So, to clarify, i guess my question is: How does a network device know a neighbors solicited node multicast address, other than from a ping command?

10 Replies 10

mlund
Level 7
Level 7

Hi

Remember that ping is just a program that will use undelaying protocol to reach destination. When you type ping <address> the program ping will call the iso stack layer 3 to send the packet to destination, the iso L3 will send to iso L2 that will found out there are no ip-to-mac binding, so an arp (ipv4) or in ipv6 it is an NDP NS, will be sent out to find the mac. If it is a ping or an http or an https or dns or any other program that starts the converstion doesn't matter. As soon as there are a packet that should be sent out from an interface, either local produced, or received on another interface, the above will happened.

/Mikael

Hello mlund,
Thank you for your comment.

You write: "When you type ping <address> the program ping will call the iso stack layer 3 to send the packet to destination, the iso L3 will send to iso L2 that will found out there are no ip-to-mac binding, so an arp (ipv4) or in ipv6 it is an NDP NS, will be sent out to find the mac."

which i agree upon, but what i'm asking is how does the sending device know the solicited node multicast address of the receiving device?



 

NetworkDave
Spotlight
Spotlight

@trane.m,

"Every device on an IPv6 network, if it has a unicast address, for example a global address like 2001:db8:6783:(and so on), it (that same interface) will also join a special group: a Solicited Node Multicast Group. It's a multicast group that links to the actual unicast address applied to an interface".
Using established rules on how a Solicited Node Multicast Group is created; And because the sending device knows the IP address, it's going to anticipate that the receiving device has also joined the appropriate Solicited Node Multicast Group. The sending device sends to the Solicited Node Multicast Group that it thinks the receiving device is part of.

Checkout the link for a more complete explanation:
https://www.cbtnuggets.com/blog/technology/networking/what-is-a-solicited-nodes-multicast-group-in-ipv6
The webpage also includes a video by Keith Barker.

HTH

----------------------------------------------------------------------------------------------------
Remember to mark helpful posts and mark the correct answer as a solution; It helps other users with similar questions.

Hi NetworkDave,

Thanks for you reply, it helped a little, but i'm still confused. I saw the video with Keith, he's great.

You write: "Using established rules on how a Solicited Node Multicast Group is created; And because the sending device knows the IP address, it's going to anticipate that the receiving device has also joined the appropriate Solicited Node Multicast Group"

So, if i have an interface with IP address XXXX::12:3456 it will join a solicited node multicast address group with the multicast address of FF02::1:FF12:3456. So far so good. On the onther end of that link, i have another interface with IP address XXXX::34:5678 which will join the solicited node multicast address group with the multicast address of FF02::1:FF34:5678.

That is not the same multicast address or group. The receiver will not receive the senders message. So what am i misunderstanding? If possible, it would be of great help if you could do an example of the steps, so i can read and understand exactly what happens where. Thank you for your time

NetworkDave
Spotlight
Spotlight

@trane.m,

Please remember to mark helpful posts and mark the correct answer as a solution; It helps other users with similar questions.

The sending device is not sending a message to its own Solicited Node Multicast Group (SNMG); It sends the message to the SNMG of the receiving device.

Here are some links to a series of articles on Solicited-Node Multicast:
***********************************************************************
Part 1 - https://www.networkcomputing.com/networking/understanding-ipv6-prepping-solicited-node-multicast
Before jumping into solicited-node multicast, a review of link-local scope multicast addresses is helpful.

Part 2 - https://www.networkcomputing.com/networking/understanding-ipv6-what-solicited-node-multicast
Denise Fishburne lays down the basics of solicited-node multicast, which provides the functionality for Neighbor Discovery in IPv6 addressing.

Part 3 - https://www.networkcomputing.com/networking/understanding-ipv6-ping-solicited-node-multicast
Denise Fishburne gets ready to walk through solicited-node multicast, analyzing an ICMP ping echo request in IPv4 and showing how it differs from IPv6.

Part 4 - https://www.networkcomputing.com/networking/understanding-ipv6-solicited-node-multicast-action
In the last installment of her IPv6 series, Denise Fishburne explains how to find the MAC address associated with a Layer 3 IPv6 address.

HTH

----------------------------------------------------------------------------------------------------
Remember to mark helpful posts and mark the correct answer as a solution; It helps other users with similar questions.

trane.m
Level 1
Level 1

@NetworkDave  Hi again,

I've had some time to look at the links you posted, thank you. You are absolutely right about the sender not sending on it's own SNMG but on the receivers SNMG, that makes total sense. But not how the sender knows the SNMG of the receiving device?

So, if i have an interface with IP address XXXX::12:3456 it will join a solicited node multicast address group with the multicast address of FF02::1:FF12:3456. So far so good. On the onther end of that link, i have another interface with IP address XXXX::34:5678 which will join the solicited node multicast address group with the multicast address of FF02::1:FF34:5678. How does interface 1 know the SNM address of interface 2's SNMG?

In the article of the last link you posted, it says: "Because Router A knows of a Layer 2 MAC address that Router B is "listening in" on, Router A can communicate to Router B and ask what its unicast MAC address is that is associated with its unicast IPv6 address. In IPv6, this is known as Neighbor Discovery."
What i learned from the article is that there is a specific range of MAC adresses reserved for IPv6 multicast, which is 3333:0000:0000 - 3333:FFFF:FFFF. So, in my example, each router would receive a MAC address to pair with their SNM address, but i still don't understand how the sending device knows the MAC address of the receiving device's SNMG.

There must be some kind of communication between them, how else would sending device know to send to exactly the receiving devices MAC address?

Hi @trane.m ,

> But not how the sender knows the SNMG of the receiving device?

The sender knows the IPv6 address for the receiving device it wants to communicate with. It derives the SNMG from that IPv6 address.

Regards,

Harold Ritter
Sr Technical Leader
CCIE 4168 (R&S, SP)
harold@cisco.com
México móvil: +52 1 55 8312 4915
Cisco México
Paseo de la Reforma 222
Piso 19
Cuauhtémoc, Juárez
Ciudad de México, 06600
México

@Harold Ritter 

You write: "The sender knows the IPv6 address for the receiving device it wants to communicate with. It derives the SNMG from that IPv6 address." but you don't explain how the sender knows the IPv6 address of the receiving device, which is what i don't understand.

Hi @trane.m ,

You are confusing the discovery of the IPv6 address (L3 address) with the discovery of the MAC address (L2 address). The solicited node multicast address is used for the second. 

but you don't explain how the sender knows the IPv6 address of the receiving device, which is what i don't understand.

If you want to initiate a session with a given destination IPv6 node, you need to know its IPv6 address or DNS name that will resolve in its IPv6 address. 

Regards,

Harold Ritter
Sr Technical Leader
CCIE 4168 (R&S, SP)
harold@cisco.com
México móvil: +52 1 55 8312 4915
Cisco México
Paseo de la Reforma 222
Piso 19
Cuauhtémoc, Juárez
Ciudad de México, 06600
México

NetworkDave
Spotlight
Spotlight

@trane.m,

I've asked one of the Top Solutions Authors @Rob Ingram VIP Expert for help.

HTH

----------------------------------------------------------------------------------------------------
Remember to mark helpful posts and mark the correct answer as a solution; It helps other users with similar questions.