Aller au contenu principal
Sujet résolu
Ce sujet a été marqué résolu et ne nécessite aucune autre attention.
Sujet: QEMU/KVM - Carte réseau - Comment faire un pont (Lu 111 fois) sujet précédent - sujet suivant

QEMU/KVM - Carte réseau - Comment faire un pont

Bonjour,
J'ai procédé à l'installation de QEMU/KVM sans problème particulier.
Depuis virt-manager, j'ai importé une machine créée via Virtualbox. L'import a bien fonctionné.
Je trouve que ma VM (Win10) fonctionne bien, pas de souci côté video et c'est rapide.
Toutefois, point de réseau ! Je n'ai rien trouvé, via virt-manager, pour créer simplement un pont me permettant d'accéder à mon réseau et à internet.
Comment procéder ? Merci.

Re : QEMU/KVM - Carte réseau - Comment faire un pont

Répondre #1
Salut :)

Si tu regardes dans Edition -> Détails de la connexion, tu as quelque chose ?

Re : QEMU/KVM - Carte réseau - Comment faire un pont

Répondre #2
Bonjour,

Je n'ai strictement rien dans Détail de la connexion/Réseaux virtuels, si c'est là qu'il faut chercher, pour ma VM Win10.
Du coup, je viens de créer une VM Leap, et c'est idem.
Peut-être ai-je raté quelque chose lors l'install de qemu ?

Si çà peut aider, je viens de faire un qemu-host-validate (qui me trouve une erreur) :
virt-host-validate
  QEMU: Checking for hardware virtualization                                 : PASS
  QEMU: Checking if device /dev/kvm exists                                   : PASS
  QEMU: Checking if device /dev/kvm is accessible                            : PASS
  QEMU: Checking if device /dev/vhost-net exists                             : PASS
  QEMU: Checking if device /dev/net/tun exists                               : PASS
  QEMU: Checking for cgroup 'cpu' controller support                         : PASS
  QEMU: Checking for cgroup 'cpuacct' controller support                     : PASS
  QEMU: Checking for cgroup 'cpuset' controller support                      : PASS
  QEMU: Checking for cgroup 'memory' controller support                      : PASS
  QEMU: Checking for cgroup 'devices' controller support                     : PASS
  QEMU: Checking for cgroup 'blkio' controller support                       : PASS
  QEMU: Checking for device assignment IOMMU support                         : PASS
  QEMU: Checking if IOMMU is enabled by kernel                               : WARN (IOMMU appears to be disabled in kernel. Add intel_iommu=on to kernel cmdline arguments)
   LXC: Checking for Linux >= 2.6.26                                         : PASS
   LXC: Checking for namespace ipc                                           : PASS
   LXC: Checking for namespace mnt                                           : PASS
   LXC: Checking for namespace pid                                           : PASS
   LXC: Checking for namespace uts                                           : PASS
   LXC: Checking for namespace net                                           : PASS
   LXC: Checking for namespace user                                          : PASS
   LXC: Checking for cgroup 'cpu' controller support                         : PASS
   LXC: Checking for cgroup 'cpuacct' controller support                     : PASS
   LXC: Checking for cgroup 'cpuset' controller support                      : PASS
   LXC: Checking for cgroup 'memory' controller support                      : PASS
   LXC: Checking for cgroup 'devices' controller support                     : PASS
   LXC: Checking for cgroup 'freezer' controller support                     : PASS
   LXC: Checking for cgroup 'blkio' controller support                       : PASS
   LXC: Checking if device /sys/fs/fuse/connections exists                   : PASS

Re : QEMU/KVM - Carte réseau - Comment faire un pont

Répondre #3
Bon ! Je ne sais par quel miracle mais ce matin çà fonctionne.
Ma VM a accès à internet (mon OS s'est mis à jour et je peux naviguer). Je ne vois toujours pas de pont.

L'interface réseau est en mode utilisateur (modèle e1000e). Adresse IP inconnue !

Dans ma VM, si je fais un ipconfig /all en console, j'obtiens l'adresse IP : 10.0.0.15, ce qui ne correspond pas à ma plage réseau.

Je viens de récupérer le guide Virtualization d'openSUSE Leap 15.1. Je vais me plonger dedans et voir comment me dépatouiller de tout çà.

Re : QEMU/KVM - Carte réseau - Comment faire un pont

Répondre #4
Avec l'aide du guide, je viens d'essayer de créer un réseau virtuel routé.
Tout d'abord, les captures présentées dans le guide ne correspondent pas à ce que j'ai à l'écran.

Ensuite, j'ai l'erreur suivante :
Erreur lors de la création du réseau virtuel : error creating bridge interface virbr0: Operation not permitted

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 75, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/createnet.py", line 472, in _async_net_create
    netobj.create()
  File "/usr/lib64/python3.7/site-packages/libvirt.py", line 3173, in create
    if ret == -1: raise libvirtError ('virNetworkCreate() failed', net=self)
libvirt.libvirtError: error creating bridge interface virbr0: Operation not permitted
L'utilisateur est pourtant membre de libvirt et kvm.
Si çà vous inspire...

---
J'ai créé un pont via Network-Manager en mode  console :
nmcli con add type bridge con-name br0 ifname br0 autoconnect yes

Puis j'ai monté l'interface pont :
nmcli con up br0
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)

Et j'ai vérifié qu'il était bien présent au moyen des bridge-utils :
brctl show  br0
bridge name     bridge id               STP enabled     interfaces
br0             8000.0a37a035e398       yes

Idem avec nmcli :
nmcli con show
NAME                 UUID                                  TYPE      DEVICE
br0                  c30b13c2-320a-422a-be7e-ef6be395eb23  bridge    br0   
Connexion filaire 1  95f64120-70e6-3640-a4c8-4b41ceac3e09  ethernet  enp6s0

Ca ne fonctionne toujours pas. J'ai regardé mon adressage IP de mes interfaces et j'ai, à priori, un souci avec le pont :
ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether bc:ae:c5:e3:5c:2f brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.24/24 brd 192.168.1.255 scope global dynamic noprefixroute enp6s0
       valid_lft 73279sec preferred_lft 73279sec
    inet6 2a01:cb05:8077:4600:7534:a8d6:a7f4:2d5/64 scope global temporary dynamic
       valid_lft 1766sec preferred_lft 566sec
    inet6 2a01:cb05:8077:4600:5dce:497f:c0e3:272d/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 1766sec preferred_lft 566sec
4: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 0a:37:a0:35:e3:98 brd ff:ff:ff:ff:ff:ff

 

Re : QEMU/KVM - Carte réseau - Comment faire un pont

Répondre #5
Bonjour à tous !
Voici la (ou une) solution :
Il faut créer un nouveau fichier pour l'utilisateur et lui donner accès à toutes les interfaces en suivant les étapes ci-après :
1 -
echo "allow all" | sudo tee /etc/qemu/${USER}.conf
allow all
2 -
echo "include /etc/qemu/${USER}.conf" | sudo tee --append /etc/qemu/bridge.conf
include /etc/qemu/mirliton.conf
3 -
sudo chown ${USER}:root /etc/qemu/${USER}.conf
4 -
sudo chmod 640 /etc/qemu/${USER}.conf

Le pont est désormais fonctionnel.

Edition du fichier /etc/qemu/bridge.conf
cat /etc/qemu/bridge.conf
# Access control file for qemu bridge helper
# Syntax consists of:
#   # comment (ignored)
#   allow all
#   allow <bridge_name>
#   deny all
#   deny <bridge_name>
#   include /path/to/additional/ACL/file
# Users are blacklisted by default and 'deny' takes precedence over 'allow'.
# Including additional ACL files allows file access permissions to be used as
# a component of the policy to allow access or deny access to specific bridges.
include /etc/qemu/root.conf
include /etc/qemu/mirliton.conf