web-dev-qa-db-fra.com

Comment dépanner un réseau macvtap dans kvm / virt-manager

J'ai une machine virtuelle fonctionnant sous qemu-kvm, sur un hôte 13.10. J'utilise virt-manager pour définir la machine et j'ai ajouté une carte réseau virtuelle à l'aide du nouveau pilote macvtap. J'ai la définition suivante:

<interface type='direct'>
  <mac address='52:54:00:1f:dd:c4'/>
  <source dev='eth0' mode='bridge'/>
  <model type='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

Sur la machine hôte, je peux voir que l'interface tactile est créée:

$ip link

5: macvtap0@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT qlen 500
    link/ether 52:54:00:1f:dd:c4 brd ff:ff:ff:ff:ff:ff

$ls /dev/tap5 
/dev/tap5

Mais dans la machine virtuelle, l'interface eth0 ne peut pas accéder au réseau. dhcp échoue. La configuration statique fonctionne évidemment, mais je ne peux rien cingler.

Je n'ai pas de règles iptables, ni sur l'hôte, ni sur la machine virtuelle.

Alors, comment puis-je résoudre ce problème?

4
alci

J'ai le même problème avec Ubuntu 13.10, je passe également à la branche de développement 14.04 pour essayer mais cela ne fonctionne toujours pas.

Je ne connais pas le bon moyen de déboguer, car mon problème, j'ai trouvé que eth0 n'entre pas en mode promiscuous, je ne trouve pas de message tel que device eth0 entered promiscuous mode dans la sortie dmesg. Alors je force eth0 en mode promiscuous, le problème disparaît alors.

C'est ce que j'ai fait:

  1. Force eth0 en mode promiscuous: Sudo ifconfig eth0 promisc
  2. Utilisez virt-manager pour démarrer la machine virtuelle
  3. ifconfig -a et envoyez un ping à l'extérieur pour voir si cela fonctionne pour vous.

Je ne sais pas pourquoi libvirt ne met pas eth0 en mode promiscuous, peut-être un bug de celui-ci.

1
user220450