2

Let me prefix this by saying I'm not entirely clear on how multicast works. I have the gist of it, but not the underlying functionality.

A customer has configured a RHEL6 cluster between two Jboss nodes. Multicast is configured and I can ping 224.0.0.1 getting a response from both servers in the group. What I cannot do is ping each individual multicast IP assigned to each server.

Example: Server 1 is 225.5.5.5 and server 2 is 225.5.5.6. I can ping neither of those IPs from the other.

Is this what I should expect to see? Only being able to ping the 224.0.0.1 IP and not the others? Am I supposed to configure the route to be on the same subnet as the multicast IPs or does 224.0.0.0 cover all subnet ranges?

theillien
  • 425
  • 3
  • 10
  • 26
  • 5
    There is no 'individual multicast'. You cannot know the addresses of the member of the multicast group, and a machine does not "have a multicast address". a multicast address can just be regarded as a fake destination address which is handled particularly by routers, and those who want to receive packets belonging to a particular multicast group must to tell the router 'i join this group of receivers'. However, like all packets, a multicast packet has the source address set to the unicast IP address of the sender (which does not need to be part of the multicast group). – BatchyX Jan 08 '13 at 20:10
  • 2
    `224.0.0.1` is a special multicast group address: all hosts implicitly belong to this address. 224.0.0.0/24 is special, don't use it. and 225.0.0.0/8 is reserved by IANA. – BatchyX Jan 08 '13 at 20:16
  • The 225.0.0.0 IPs were simply examples. The actual IPs are in the 228.x.x.x range. That said, I'm not sure the routers are relevant in this case. The servers are all on the same VLAN so all servers should be responding while the routers would simply drop the packets. – theillien Jan 10 '13 at 22:18
  • 1
    In fact, the whole 225.0.0.0 - 231.255.255.255 range is reserved by IANA, so don't use it either. And if multicast routing is configured on routers, then routers can forward multicast traffic. But some multicast addresses can not be forwarded (e.g. the 224/8 range). But still, no server or anything "owns" a multicast group. a multicast group is just a group, there is no leader or anything, and everyone can send packet to the group or join it. You don't even need to join the group to send multicast packets to the group. The question is still unclear. – BatchyX Jan 11 '13 at 19:47

2 Answers2

3

You can only ping, via multicast, hosts which are subscribed to the multicast group which you are pinging. You need to be careful about which multicast groups you use, and, in general, you should use multicast groups from the administratively scoped range of 239.0.0.0/24, otherwise you risk stepping on registered groups which other software may be using.

Normally, servers will send traffic to, not join, a multicast group. The multicast group is the destination address, and the source address is the regular IP address of the server.

Each host which wants to join a multicast group needs software which joins the specific multicast group, and the point of multicast is that multiple hosts join the same group to receive the same traffic which is only sent once from the multicast source.

Multicast will not leave the layer-2 domain (cross a router) unless you have multicast routing properly configured on all the routers in the path, which is why you can't multicast on the Internet unless you have a tunnel through which the multicast can travel.

Ron Maupin
  • 3,158
  • 1
  • 11
  • 16
1

I don't think it is legal to assign any multicast address to a Linux's interface, regardless of the multicast address 224.x.x.x or 231.y.y.y or 239.z.z.z.

Even though you are able to ping 224.0.0.1 of the Redhat box, if you check the ifconfig of the ethernet NIC , you don't see 224.0.0.1 in the output.

For a endhost to respond to a multicast address ping, some application needs to bind the multicast address via kernel(and its modules).

The 224.0.0.1 binding is an embedded application in one of the kernel modules. To respond to 225.5.5.5 , you need to write an application to bind it.

Froggiz
  • 3,013
  • 1
  • 18
  • 30