3

I'm trying to install Oracle Grid Infrastructure on two machines. Their documentation states:

You must enable multicasting for the cluster on the IP address subnet ranges 224.0.0.0/24 and 230.0.1.0/24

So I ran:

route add -net 224.0.0.0/24 dev eth2
route add -net 230.0.1.0/24 dev eth2

route -n produces:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
230.0.1.0       0.0.0.0         255.255.255.0   U     0      0        0 eth2
224.0.0.0       0.0.0.0         255.255.255.0   U     0      0        0 eth2
# and others

An ifconfig eth2 shows, among other things, UP BROADCAST RUNNING MULTICAST.

However, when I run their multicast test utility, it fails me:

Test for Multicast address 230.0.1.0
Sep  3 19:40:39 | Multicast Failed for eth2 using address 230.0.1.0:42000

Test for Multicast address 224.0.0.251
Sep  3 19:41:10 | Multicast Failed for eth2 using address 224.0.0.251:42001

What am I doing wrong?

ewwhite
  • 194,921
  • 91
  • 434
  • 799
NullUser
  • 143
  • 1
  • 2
  • 11

1 Answers1

2

What's the output of netstat -gn?

By default, your multicast joins are going to go out of the lowest-numbered interface cough, eth0. Since you're attempting to do this via eth2, you're going to need another step to establish connectivity.

Does the test utility provide a means of specifying the interface? If so, you'll need to explicitly state "eth2". If that is not an option, you can add another static route to make sure your multicast traffic uses that interface.

Something like:

route add -net 224.0.0.0 netmask 240.0.0.0 dev eth2 (route all multicast through eth2)

Try that...

If it all works, be sure to make everything persistent by creating a /etc/sysconfig/network-scripts/route-eth2 file with your static routes.

Edit:

If you have the ability to select interfaces in your application, then you DO NOT need any static routes on your interfaces. It would be up to the Oracle test utility to handle IGMP.

Try that first...

If that does not work, please verify if multicast is enabled on the network switch that the systems are connected to. What type of switches are they? I can give more detail instructions based on the switch model/type. If Cisco, for instance...

sh ip igmp snooping
sh run | i multicast-routing

Following that, there seems to be a known bug related to this product. Are you certain that you're fully-patched? It appears to be an unpublished patch, so you may have to go to Oracle to resolve this if everything else is in place.

See: Grid infrastructure multicast issue - Oracle Bug 9974223

ewwhite
  • 194,921
  • 91
  • 434
  • 799
  • Here's the output of `netstat -gn`: http://pastebin.com/r5hLn76p ; and yes, the utility allows me to specify the interface (I'm using eth2) – NullUser Sep 04 '12 at 02:30
  • @nulluser Yeah, joins going out of eth0, probably. You didn't answer my question about whether the test utility allows you to specify an interface. That makes a difference! – ewwhite Sep 04 '12 at 02:35
  • It does. I'm specifying eth2. – NullUser Sep 04 '12 at 02:40
  • Hmm... Remove the route statements you have, then re-add them. Maybe add the one I specified first. Try that. If it doesn't work, then we'd need to look at `tcpdump`. You *are* making the changes on both servers, right? – ewwhite Sep 04 '12 at 02:48
  • 224.0.0.0/24 is subnet local and all multicast-capable interfaces will be (and must be) able to join. The other potential issue is rpf - if the source of the 230.x.x.x group is not local then there could potentially be problems if the unicast routes don't correspond. – rnxrx Sep 04 '12 at 07:02
  • @ewwhite I tried adding that route first, to no avail. Yes, I am making changes on both servers. When I run tcpdump on eth2 it fails to capture anything at all, on either server. – NullUser Sep 04 '12 at 19:22
  • @NullUser See my edits above. Remove the static routes. – ewwhite Sep 06 '12 at 16:49
  • @NullUser Did this work for you? – ewwhite Sep 20 '12 at 00:58
  • @ewwhite Not really. Strangely enough it was working for `eth0` but not `eth2`. I ended up copying `/etc/sysconfig/network-scripts/ifcfg-eth0` to `eth2` (modifying the relevant parameters) and it worked. Unfortunately I lost the original `ifcfg-eth2` file so I don't know what I've effectively changed. – NullUser Oct 25 '12 at 17:03
  • @NullUser What about the known Oracle bug linked in my answer? – ewwhite Oct 25 '12 at 17:04
  • I read it before asking the question; it doesn't really apply. – NullUser Oct 25 '12 at 17:07