10

I am trying to send a packet to several nodes from my PC through a border router. The nodes and the border router are developed using Contiki. The problem is that I cannot send multicast messages because the border router does not forward them to the nodes. Is there any way to solve this?

Edit: I am using IPv6 for routing and the multicat packets are sent using UDP protocol. Moreover the border router interfaces are Ethernet or SLIP (connection to the PC can be made both ways) and 6lowpan over 802.15.4 (connection with the nodes).

2 Answers 2

7

Likely you'll have to include a protocol like IGMP—assuming you're using IPv4. The standard multicast in the Internet Protocol ends at router boundaries for a good reason. Unfortunately, I have no Contiki experience to help you out with the specifics of the implementation.

However you solve the issue, you'll need to establish proper boundaries for the mutlticast. IGMP does that by creating multicast groups that cross router boundaries.

The IPv6 protocol for similar purposes is MLD—Multicast Listener Discovery.

2
  • I am using IPv6. Is there any similar protocol? As you say multicast ends at router so I cannot communicate with the nodes because the router does not forward the multicast direction and my application is useless without multicast functionality.
    – JuanMa
    Mar 7, 2017 at 10:46
  • @JuanMa yes there is. I'll put it in my answer. Please add that IPv6 information to your question as well. If you update your question you'll also lose the edit marker by Aurora ;)
    – Helmar
    Mar 7, 2017 at 15:54
3

Multicast routing is very different than unicast routing. Multicast routing needs a multicast routing protocol, such as PIM, and uses IGMP (IPv4) and MLD (IPv6) for the host to inform the multicast router that it wants traffic for a particular multicast group.

Unicast routing is based on the singular destination address, so it is pretty simple to get a packet from the source to the destination. Multicast sends to a group address, and multicast routing is to prevent multicast from going where it is not wanted, and to go where it has been requested, so it is much more complex than unicast routing.

You need to have multicast routing configured on every router between the source and destination, which is why you cannot multicast on the public Internet. You can multicast across the public Internet through a tunnel that supports multicast (not all do). The tunnel will encapsulate the multicast packets in unicast packets, allowing it to traverse the Internet to the destination network, which also must be configured for multicast routing.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.