Re: per user vm isolation with shared network

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Sent: Tuesday, July 02, 2024 at 3:59 PM
> From: "Michal Prívozník" <mprivozn@xxxxxxxxxx>
> To: "daggs" <daggs@xxxxxxx>
> Cc: users@xxxxxxxxxxxxxxxxx
> Subject: Re: per user vm isolation with shared network
>
> On 7/1/24 21:55, daggs via Users wrote:
> >> Sent: Monday, July 01, 2024 at 2:32 PM
> >> From: "Michal Prívozník" <mprivozn@xxxxxxxxxx>
> >> To: "daggs" <daggs@xxxxxxx>
> >> Cc: users@xxxxxxxxxxxxxxxxx
> >> Subject: Re: per user vm isolation with shared network
> >>
> >> On 7/1/24 12:28, daggs wrote:
> >>> Greetings,
> >>>
> >>>> Sent: Monday, July 01, 2024 at 10:35 AM
> >>>> From: "Michal Prívozník" <mprivozn@xxxxxxxxxx>
> >>>> To: "daggs" <daggs@xxxxxxx>, users@xxxxxxxxxxxxxxxxx
> >>>> Subject: Re: per user vm isolation with shared network
> >>>>
> >>>> On 6/30/24 01:01, daggs via Users wrote:
> >>>>> Greetings,
> >>>>>
> >>>>> I have two vm which I want to isolate per user, if I'm not mistaken, I can to that with per session uri.
> >>>>> but I want to setup a virtual bridge so they will get connected with each other.
> >>>>> looks like that if I define the network as system, it isn't visible in the session.
> >>>>> is there a way to do that? if I define the same network in both sessions, will it work?
> >>>>>
> >>>>> Thanks,
> >>>>>
> >>>>> Dagg
> >>>>>
> >>>>
> >>>> Yeah, this is known issue:
> >>>>
> >>>> https://gitlab.com/libvirt/libvirt/-/issues/438
> >>>>
> >>>> what you can do is create a bridge and then use qemu-bridge-helper to
> >>>> plug TAPs from qemu:///session VMs into the bridge. Theoretically, you
> >>>> could even misuse virbr0.
> >>>>
> >>>> Michal
> >>>
> >>> thanks, I've started looking into it however I'm unable to see the network from the dedicated user, see:
> >>> $ id; virsh -c qemu:///session net-list --all; virsh -c qemu:///system net-list --all
> >>> uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)
> >>>  Name      State    Autostart   Persistent
> >>> --------------------------------------------
> >>>  default   active   yes         yes
> >>>
> >>>  Name      State    Autostart   Persistent
> >>> --------------------------------------------
> >>>  default   active   yes         yes
> >>>
> >>> $ su -c "id; virsh -c qemu:///session net-list --all; virsh -c qemu:///system net-list --all" foo
> >>> uid=1002(foo) gid=1002(foo) groups=1002(foo),34(kvm),36(qemu),102(libvirt)
> >>>  Name   State   Autostart   Persistent
> >>> ----------------------------------------
> >>>
> >>> error: failed to connect to the hypervisor
> >>> error: internal error: Unable to get system bus connection: Could not connect: No such file or directory
> >>
> >> This is expected and in fact it's what the issue I've linked earlier is
> >> all about.
> >>
> >>> $ cat /etc/qemu/bridge.conf 
> >>> # This should have the following permissions: root:qemu 0640
> >>>
> >>> # Allow users in the "qemu" group to add devices to "br0".
> >>> allow br0
> >>
> >> put "allow virbr0" here.
> >>
> >> And then have your qemu:///session domain use:
> >>
> >> <interface type='bridge'>
> >>   <source bridge='virbr0'/>
> >> </interface>
> >>
> >> OR, if you don't want to use virbr0 from qemu:///system you can
> >> s/virbr0/br0/ in the XML snippet and create br0 yourself. virbr0 has NAT
> >> which is something you may not want.
> >>
> >> Michal
> >>
> >>
> > 
> > thanks, seems like I'm past this part, the vm start fails because of insufficient permissions to detach/reattach the pci nodes, I assumed that there is no fast solution so
> > I fixed it with a script that uses doas to preform the detach/reattach.
> 
> No sysadmin wants to allow regular users to bind PCI devices to "random"
> drivers, surely. PCI devices must be "detached" (i.e. bound to vfio
> driver) by sysadmin (e.g. virsh -c qemu:///system nodedev-detach ...)
> BEFORE qemu:///session domain wants to use the device.
so I should call virsh -c qemu:///system nodedev-detach from within the libvirt hook? wont that might cause a hangup?
I did got that in some scenarios.

> 
> > now I get this error: error: Unable to create tap device vnet0: Operation not permitted
> > 
> > seems like I need special permissions to create the tap device.
> > to I need to create the tap device and attach it to the bridge as part of the prepare stage?
> > 
> 
> I'm not sure why your system refuses that. Works on my machine just
> fine. You should talk to your distro vendor about that decission.
> 
> Michal
> 
> 
will do, thanks




[Index of Archives]     [Virt Tools]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]

  Powered by Linux