macvlan de libvirt a pris en charge la multidiffusion. Malheureusement, il est désactivé par le paramètre par défaut trustGuestRxFilters="no"
, et la documentation n'est pas explicite sur le fait que cela interrompt la multidiffusion. Comme vous l'avez observé, la rupture de la multidiffusion rompt également IPv6.
https://bugzilla.redhat.com/show_bug.cgi?id=1035253#c15
Vous pourrez peut-être contourner ce problème en définissant manuellement trustGuestRxFilters="yes"
. Il existe une limitation :"la prise en charge dépend du modèle de périphérique réseau invité, ainsi que du type de connexion sur l'hôte". "Actuellement, il n'est pris en charge que pour le virtio
modèle d'appareil, et pour macvtap
connexions sur l'hôte".
https://libvirt.org/formatdomain.html#elementsNICS
IMO le modèle naturel serait d'autoriser la multidiffusion par défaut. Bloquer la réception multicast, sur un réseau auquel vous pensez être directement connecté, est une mauvaise surprise. Surtout depuis macvtap
semble toujours autoriser l'envoi paquets de multidiffusion (ainsi que des adresses source MAC usurpées !).
La réponse de sourcejedi contient la solution, mais peut-être pas assez explicitement. En utilisant "virsh edit", définissez le trustGuestRxFilters
attribut sur le périphérique réseau :
<interface type='direct' trustGuestRxFilters='yes'>
Voir les documents libvirt. La même chose peut être faite pour toutes les interfaces sur un réseau libvirt.