I'm posting this here in the hopes of saving some folk the trouble of running this down.
If you are trying to use
macvtap
onto an existing adapter for a libvirt guest and you're having odd problems with dropped IPv6 traffic,
you'll need to add trustGuestRxFilters='yes'
to the <interface>
stanza in your XML.An example:
<interface type='direct' trustGuestRxFilters='yes'> <mac address='52:54:00:0d:42:ce'/> <source dev='eth0' mode='bridge'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/> </interface>
The problem is caused by the
macvtap
not updating its multicast tables correctly. This is considered correct by design for security reasons. I hope with increased deployment of IPv6 this decision will be revisited.Some of the reading that led me here:
This comment has been removed by the author.
ReplyDeleteThis is properly evil, but if you don't want to enable all multicast, this seems to work on the host:
ReplyDeletebridge fdb add 33:33:ff:<lower 24 bits of v6 address> dev <macvtap if>
(enables reception of the just the solicited node multicast group for a particular v6 address)
Man. Thank you.
ReplyDelete