qemu e permessi

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

qemu e permessi

Sabrewolf
Salve a tutti, non riesco ad avviare qemu da utente:

qemu-system-x86_64: could not configure /dev/net/tun (tap0): Operation
not permitted

Le opzioni che uso sono semplicemente:

-netdev tap,id=net0,ifname=tap0,script=no,downscript=no
-device virtio-net,netdev=net0

Se eseguo qemu da root l'interfaccia tap0 viene attivata e
systemd-networkd assegna l'ip corretto. La rete internet sul guest
funziona tramite il mascheramento fatto con nft. Non uso bridge
insomma...Ma da utente non privilegiato qemu non parte.

Come risolvo ?

Reply | Threaded
Open this post in threaded view
|

Re: qemu e permessi

Sabrewolf
Ho fatto un passo avanti, dopo aver letto qui:

https://wiki.qemu.org/Features/HelperNetworking

usando le opzioni:

-netdev tap,id=net0,br=br0,helper=/usr/lib/qemu/qemu-bridge-helper

Così facendo, dopo aver configurato br0 con systemd-networkd, qemu
parte. Mi crea tap1 e lo collega al bridge. Non mi piace questa cosa
perchè ho già tap0 e volevo usare questa. Non so nemmeno se è
logico/corretto assegnare un ip al bridge br0 e fare nat su questo.
Soprattutto continuo a non capire perchè qemu richieda un helper se
systemd-networkd è configurato per creare sia un bridge br0 che una rete
tap0.

Mi da fastidio questa cosa. :-S

Boh


Il 06/04/20 01:42, Sabrewolf ha scritto:
>
> -netdev tap,id=net0,ifname=tap0,script=no,downscript=no
> -device virtio-net,netdev=net0
>
>

Reply | Threaded
Open this post in threaded view
|

Re: qemu e permessi

Walter Valenti
In reply to this post by Sabrewolf
Ciao,
credo che una semplice soluzione possa essere:

sudo tunctl -t tap0 -u __UTENZA__







Salve a tutti, non riesco ad avviare qemu da utente:

qemu-system-x86_64: could not configure /dev/net/tun (tap0): Operation
not permitted

Le opzioni che uso sono semplicemente:

-netdev tap,id=net0,ifname=tap0,script=no,downscript=no
-device virtio-net,netdev=net0

Se eseguo qemu da root l'interfaccia tap0 viene attivata e
systemd-networkd assegna l'ip corretto. La rete internet sul guest
funziona tramite il mascheramento fatto con nft. Non uso bridge
insomma...Ma da utente non privilegiato qemu non parte.

Come risolvo ?

Reply | Threaded
Open this post in threaded view
|

Re: qemu e permessi

Sabrewolf
Ciao, sul mio sistema non ho nè sudo nè tunctl perchè cerco sempre di
evitare di installare cose superflue o obsolete. Con systemd-networkd
avevo specificato "group=kvm" nella sezione [Tap] del file *.netdev ma a
quanto pare non è bastato. Alla fine direi che la soluzione che ho
indicato prima è la migliore e cioè:

- con systemd-networkd configurare un bridge br0 (10.0.0.1/24)

- con nft impostare il mascheramento di 10.0.0.1/24 in postrouting

- settare "chmod u+s" su /usr/lib/qemu/qemu-bridge-helper e "allow br0"
in /etc/qemu/bridge.conf

- avviare qemu usando "-netdev
tap,id=net0,br=br0,helper=/usr/lib/qemu/qemu-bridge-helper"

- settare 10.0.0.1 come gateway nel sistema guest

Rimango col dubbio se il bridge br0 è necessario oppure no.


Il 07/04/20 12:35, Walter Valenti ha scritto:
> Ciao,
> credo che una semplice soluzione possa essere:
>
> sudo tunctl -t tap0 -u __UTENZA__
>

Reply | Threaded
Open this post in threaded view
|

Re: qemu e permessi

Alessandro Baggi

Il 08/04/20 18:22, Sabrewolf ha scritto:

> Ciao, sul mio sistema non ho nè sudo nè tunctl perchè cerco sempre di
> evitare di installare cose superflue o obsolete. Con systemd-networkd
> avevo specificato "group=kvm" nella sezione [Tap] del file *.netdev ma a
> quanto pare non è bastato. Alla fine direi che la soluzione che ho
> indicato prima è la migliore e cioè:
>
> - con systemd-networkd configurare un bridge br0 (10.0.0.1/24)
>
> - con nft impostare il mascheramento di 10.0.0.1/24 in postrouting
>
> - settare "chmod u+s" su /usr/lib/qemu/qemu-bridge-helper e "allow br0"
> in /etc/qemu/bridge.conf
>
> - avviare qemu usando "-netdev
> tap,id=net0,br=br0,helper=/usr/lib/qemu/qemu-bridge-helper"
>
> - settare 10.0.0.1 come gateway nel sistema guest
>
> Rimango col dubbio se il bridge br0 è necessario oppure no.
>
Ciao, se usi il bridge br0 non ha necessità di mascherare nulla. Assegni
l'indizzo ip (della tua rete) alla VM con il metodo che preferisci ed è
fatta.

Ovviamente il bridge deve avere un'interfaccia slave altrimenti è tutto
vano.

Io utilizzo virt-install per installare le macchine virtuali su
kvm+libvirt (ci sarebbe anche virt-manager ma lo uso poco), per la rete
basta --network=bridge:br0 (ovvio sempre un bridge valido deve essere
configurato)

Un saluto.

Reply | Threaded
Open this post in threaded view
|

Re: qemu e permessi

Sabrewolf

Il 09/04/20 11:23, Alessandro Baggi ha scritto:
>
> Ciao, se usi il bridge br0 non ha necessità di mascherare nulla.
> Assegni l'indizzo ip (della tua rete) alla VM con il metodo che
> preferisci ed è fatta.
>
Avevo letto da qualche parte che i bridge a volte danno problemi con il
wifi e per questo non avevo neanche provato la configurazione
"classica". Inoltre il bridge mi sta antipatico a prescindere :D


> Ovviamente il bridge deve avere un'interfaccia slave altrimenti è
> tutto vano.
>
>
Ce l'ho fatta a eliminarlo ! Vittoria !!

Ho trovato per caso la causa del problema e cioè avevo messo nella
sezione [Tap] del file *.netdev di systemd l'opzione "User=root" (e
ovviamente anche "Group=kvm").

Era proprio quel "user=root" il problema, e non ho idea del perchè.

Adesso la macchina virtuale va come volevo, senza bridge, solo con
tap...Pero' non funziona l'opzione vhost=on.

...E neanche l'audio.

Forse per il 2022 ce la farò a configurare tutto come voglio.