On Mac OS (Mavericks), there is no multicast route in the routing table. So the default route is used (say 192.168.1.1). However, this doesn't work for nodes bound to 127.0.0.1 (don't know why).
So for loopback, an mcast route has to be added, e.g.
This adds a default route to all class D (multicast) addresses via loopback. However, this doesn't work if the node is bound to 192.168.1.x !
- See if we can get a default multicast route through 192.168.1.1 and make nodes bound to 127.0.0.1 use it
- If this doesn't work, define multiple mcast routes for different mcast addresses, e.g.
This adds loopback as default mcast route, but uses en0 if a multicast address starts with 230.x.x.x.
UPDATE: the issue with the above commands is that the first command adds a multicast route for 224.x.x.x - 239.x.x.x using the first 4 bits as netmask. This overrides the second route.
SOLUTION: Use the first 8 bits as netmask: sudo route add -net 220.127.116.11/8 127.0.0.1. This creates a multicast route for 18.104.22.168 - 22.214.171.124, which doesn't overlap with the second route.