macvlan di libvirt ha ottenuto il supporto per il multicast. Purtroppo è disabilitato dall'impostazione predefinita trustGuestRxFilters="no"
e la documentazione non è esplicita che ciò interrompe il multicast. Come hai osservato, l'interruzione del multicast interrompe anche l'IPv6.
https://bugzilla.redhat.com/show_bug.cgi?id=1035253#c15
Potresti essere in grado di aggirare questo problema impostando manualmente trustGuestRxFilters="yes"
. C'è una limitazione:"il supporto dipende dal modello del dispositivo di rete ospite, nonché dal tipo di connessione sull'host". "Attualmente è supportato solo per virtio
modello del dispositivo e per macvtap
connessioni sull'host".
https://libvirt.org/formatdomain.html#elementsNICS
IMO il modello naturale sarebbe quello di consentire il multicast per impostazione predefinita. Bloccare la ricezione multicast, su una rete a cui pensi di essere direttamente connesso, è una spiacevole sorpresa. Specialmente dal macvtap
sembra ancora consentire l'invio pacchetti multicast (così come indirizzi sorgente MAC contraffatti!).
La risposta di sourcejedi contiene la soluzione, ma forse non abbastanza esplicitamente. Usando "virsh edit", imposta trustGuestRxFilters
attributo sul dispositivo di rete:
<interface type='direct' trustGuestRxFilters='yes'>
Vedi i documenti di libvirt. Lo stesso può essere fatto per tutte le interfacce su una rete libvirt.