3

I have a pair of Solaris 10 boxes which are supposed to send multicast UDP packets to a group of hosts. One of them works just fine, whereas the other one does not.

The problem with the second machine is that it doesn't know what MAC address to use to wrap this piece of UDP/IP in an ethernet frame. When I run arp -an I see that it has this multicast address as U for unresolved for a couple seconds, then it gives up.

Nobody answers ARP requests for this multicast IP address, which is totally expected.

In theory (and in practice on the other machine) this MAC address should be well known. You take the lower 23 bits of the IP address, OR it with 01:00:5e:00:00:00 and you get the MAC address of the multicast group. No ARPs should be sent at all.

When I manually inject this MAC address into the ARP table of that machine (using arp -s), it works OK.

PS. The software runs within a non-global Solaris zone. Maybe it does make some difference.

2 Answers2

1

Do you have multiple interfaces? The first one listed in /etc/zones/myzone.xml will be used for multicast. You should be able to see this with "netstat -rn".

Here is a blog entry that covers this: http://www.lecentre.net/blog/archives/142

Tim B
  • 186
  • 6
  • Routing table is fine. I checked that. It's not that the packets get sent via wrong interface and don't reach the destination. They don't get sent at all, which I verified with snoop. – Tadeusz A. Kadłubowski Feb 05 '13 at 13:11
1

What type of networking does the zone running the app use? Shared or exclusive? It is possible to specify the mac address of the vnic for the zone using the anet property. Checkout the relevant doc section.

chrskly
  • 1,539
  • 11
  • 16