If you are running two containers (LXC, Docker, whatever) on the same machine, and you use IPv6 there, then you might notice, that these machines do not see each other.
You do know about neighbor discovery in IPv6, right? No ARP and all the bells and whistles.
Remember, no IGMP here, just MLD (Multicast Listener Discovery). These two a pretty the same, but there are some issues with MLD in Linux.
Some say that you should disable multicast_snooping on the bridge. It can be done via sysfs:
Well, that will work. But you should understand, that now all your network behind that bridge will be flooded by multicast packets. Okay for small installations.
Instead, enable multicast querier:
You do know about neighbor discovery in IPv6, right? No ARP and all the bells and whistles.
Remember, no IGMP here, just MLD (Multicast Listener Discovery). These two a pretty the same, but there are some issues with MLD in Linux.
Some say that you should disable multicast_snooping on the bridge. It can be done via sysfs:
echo -n 0 > /sys/class/net/%BRIDGE_NAME%/bridge/multicast_snooping
Well, that will work. But you should understand, that now all your network behind that bridge will be flooded by multicast packets. Okay for small installations.
Instead, enable multicast querier:
echo -n 1 /sys/class/net/%BRIDGE_NAME%/bridge/multicast_querier
Querier will update snooping filters by sending broadcast queries.
After that you will need to remove and add again an IPv6 address in your container, so MLD query would be resent.
I would strongly suggest you not to disable multicast snooping. That might be a security flaw and flood your network in a second.

