Forum Linux.debian/ubuntu qemu en mode bridge

Posté par (page perso) .
Tags : aucun
1
26
sept.
2008
Bonjour,

Je cherche à monter un qemu sous debian en mode bridge avec les interfaces tun/tap. J'aimerai que ça marche sans avoir à lancer de script en particulier et que mon interface host soit en DHCP. J'ai beau chercher sur le net mais visiblement mon cas qui me parait pourtant le plus simple n'est décrit nul part. Si quelqu'un a une conf à me donner pour mon /etc/network/interfaces sur ma sid, je suis preneur.

merci d'avance.

ps : j'ai déjà tenter de suivre et adapter plein de tutoriel sans succès pour le moment.
  • # uml-utilities + /etc/network/interfaces devrait faire l'affaire

    Posté par (page perso) . Évalué à 1.

    salut,
    auto br0
    iface br0 inet dhcp
        pre-up tunctl -u utilisateur -t tap0 
        bridge_ports eth0 tap0
        bridge_maxwait 5
    
    ensuite, il suffit de l'indiquer à qemu: qemu image options -net nic -net tap,ifname=tap0,script=no
  • # Howto bridge virtual tap against a virtual hub

    Posté par (page perso) . Évalué à 2.

    Bonjour,

    Il se trouve que j'ai eu la même envie que toi il y a de ça 2 semaines. Je me permets de te déposer ma recette.

    Tout d'abord récupérer une distrib à base de (K)Ubuntu 8.04 et installer ça sur un poste.

    Ensuite, procéder à la création d'un bridge br0 :

    root@yannig-desktop:/home/yannig# brctl addbr br0

    Procéder à la création d'une interface virtuel tap0 appartenant à l'utilisateur yannig :

    root@yannig-desktop:/home/yannig# tunctl -t tap0 -u yannig
    Set 'tap0' persistent and owned by uid 1000

    Assigner une adresse IP interne à ton bridge br0 :

    root@yannig-desktop:/home/yannig# ifconfig br0 192.168.1.10

    Installe le serveur dhcp (dhcp3-server) :
    root@yannig-desktop:/home/yannig# aptitude install dhcp3-server

    Edite le fichier dhcpd.conf par défaut et ajoutes y les lignes suivantes :

    subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.110;
    option routers 192.168.1.10;
    }

    Relance le serveur :

    root@yannig-desktop:/home/yannig# /etc/init.d/dhcp3-server restart
    * Stopping DHCP server dhcpd3 [fail]
    * Starting DHCP server dhcpd3 [ OK ]

    Ensuite, ajoute ton interface virtuelle à ton bridge br0 et passe là en mode promisc :

    root@yannig-desktop:/home/yannig# brctl addif br0 tap0
    root@yannig-desktop:/home/yannig# ifconfig tap0 0.0.0.0 promisc up
    root@yannig-desktop:/home/yannig# brctl show
    bridge name bridge id STP enabled interfaces
    br0 8000.00ffcf80e9db no tap0

    Là, il ne te reste plus qu'à lancer ton qemu avec une image ISO quelconque (ici une damn small linux) :

    yannig@yannig-desktop:~$ sudo qemu -m 256 -cdrom ./Bureau/dsl-4.2.5.iso -boot d -net nic -net tap,ifname=tap0,script=no

    Et dans la machine virtuelle de vérifier que tout fonctionne bien en vérifiant l'adresse IP de ta machine et si tu arrives à pinguer ton routeur (aka ta machine principale).

    Ensuite, si tu veux générer de nouvelle interface, tu remplaces tap0 par tap1 dans les commandes du dessus.

    Bonne journée !

    Yannig
    • [^] # Re: Howto bridge virtual tap against a virtual hub

      Posté par (page perso) . Évalué à 2.

      Attention, il s'agit ici d'une solution offrant un réseau virtuel pur. Si tu veux pouvoir aller vers l'extérieur, il faudra utiliser le mode routeur de ta machine hôte (echo 1 > /proc/sys/net/ipv4/ip_forward) et de vérifier tes routes sur tes machines virtuelles. L'autre méthode étant de bridger ton interface avec une interface réelle comme indiqué dans le 1ier commentaire.
  • # libvirt, virt-manager, virt-install

    Posté par . Évalué à 2.

    en plus de faire du qemu, permettent de faire aussi du KVM ou du Xen

    et pour les bridges, j'ai ajouter la config dans /etc/network/interface (comme dit plus haut)

    ensuite je lance mon virt-install avec les options -b br0 -b br1 si je veux 2 cartes reseaux sur respectivement eth0 et eth1

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.