Re: vepa-mode directly attached interface

2022-06-11 Thread Gionatan Danti

Il 2022-06-11 19:32 Laine Stump ha scritto:

libvirt's defaults are defaults, and can't be changed with config.
libvirt also will never changed the hardcoded default, because that
could break existing installations.


Thanks for the direct confirmation that default can not be changed with 
config. I opened a cockpit-machine bug to ask for a change there: 
https://bugzilla.redhat.com/show_bug.cgi?id=2095967



I'm not sure why vepa was chosen as the default when macvtap support
was added to libvirt, but my best guess is that it was just the bias
of the person doing the work who assumed their usage would be the most
common (IIRC it was done by someone who was specifically wanting to
support connection to VEPA-capable switches, and since it was a new
feature nobody else had experience with / opinions about which mode
would be most common, so the reviewers just accepted this default)


Sound reasonable. Do you know if directly attached bridge-mode interface 
is common and tested into production workload, or if "pure" bridge mode 
is the way to go?


Full disclosure: I always used "pure" bridges, but I like the idea to 
deny any guest->host traffic by design - hence my interest in 
bridge-mode macvtap interfaces. Moreover, by the virtue of not requiring 
a dedicated bridge interface, they can simplify the host network 
configuration.



I guess you'll need to do a "virsh dumpxml --inactive" for each guest
and parse it out of there.


It matches my results. However, virsh dumpxml is an expensive operation 
- polkitd can easily burn >30% of a single core for 1s polling interval 
with virsh dumpxml. I settled (for testing) with grepping "mode..vepa" 
in /etc/libvirtd/qemu and it seems to work well (1s polling not even 
register in top).


Does libvirt support calling some external script when a new virtual 
machine is defined?



No, I think the mode of the macvtap interface is set when the
interface is created, and can't be changed later (i.e. it's a
limitation of macvtap, not libvirt)


Again, it matches my results (ip link showing "operation not supported" 
when trying to change the mode at runtime). I hoped to miss something, 
but it does not seem the case...


Thanks.

--
Danti Gionatan
Supporto Tecnico
Assyoma S.r.l. - www.assyoma.it
email: g.da...@assyoma.it - i...@assyoma.it
GPG public key ID: FF5F32A8



Re: vepa-mode directly attached interface

2022-06-11 Thread Laine Stump

On 6/11/22 8:54 AM, Gionatan Danti wrote:

Hi all,
I just realized that libvirt default for directly attached interface is 
vepa mode.


I discovered it now because virt-manager automatically enables bridge 
mode, while cockpit-machines get the default vepa mode. This is 
unfortunate because, being vepa switches very rare, it means that using 
cockpit to configure directly attached interfaces causes guests to not 
talk each other.


I have some questions:

- can libvirt default be changed/configured somehow (ie: to 
automatically create bridge-mode directly attached interface when no 
mode is specified)?


libvirt's defaults are defaults, and can't be changed with config. 
libvirt also will never changed the hardcoded default, because that 
could break existing installations.


I'm not sure why vepa was chosen as the default when macvtap support was 
added to libvirt, but my best guess is that it was just the bias of the 
person doing the work who assumed their usage would be the most common 
(IIRC it was done by someone who was specifically wanting to support 
connection to VEPA-capable switches, and since it was a new feature 
nobody else had experience with / opinions about which mode would be 
most common, so the reviewers just accepted this default)




- how can I use virsh to discover machines with vepa-mode interfaces 
(virsh domiflist  does not return the interface mode)?


I guess you'll need to do a "virsh dumpxml --inactive" for each guest 
and parse it out of there.




- can I change the interface type at runtime (virt-xml  --edit 
--network type=direct,source.mode=bridge works for inactive domains only)?


No, I think the mode of the macvtap interface is set when the interface 
is created, and can't be changed later (i.e. it's a limitation of 
macvtap, not libvirt)




vepa-mode directly attached interface

2022-06-11 Thread Gionatan Danti

Hi all,
I just realized that libvirt default for directly attached interface is 
vepa mode.


I discovered it now because virt-manager automatically enables bridge 
mode, while cockpit-machines get the default vepa mode. This is 
unfortunate because, being vepa switches very rare, it means that using 
cockpit to configure directly attached interfaces causes guests to not 
talk each other.


I have some questions:

- can libvirt default be changed/configured somehow (ie: to 
automatically create bridge-mode directly attached interface when no 
mode is specified)?


- how can I use virsh to discover machines with vepa-mode interfaces 
(virsh domiflist  does not return the interface mode)?


- can I change the interface type at runtime (virt-xml  --edit 
--network type=direct,source.mode=bridge works for inactive domains 
only)?


Thanks.

--
Danti Gionatan
Supporto Tecnico
Assyoma S.r.l. - www.assyoma.it
email: g.da...@assyoma.it - i...@assyoma.it
GPG public key ID: FF5F32A8