Forum général.général Problème de routage qemu/bridge/interface tap

Posté par (page perso) .
Tags : aucun
1
26
juil.
2010
Bonjour,

Je tente de mettre en réseau ma machine, une vm qui tourne sous qemu qui a une carte réseau connectée à une interface tap, elle même connecté à un bridge qui la relie à mon wifi. Pour plus de clarté voici un petit schéma :

+-----------+
| | +-------+ +--------+ +-------+ +--------+
| +---| | TAP | | Bridge | | Wifi | | |
| QEMU |NIC+------| Device|------| |------| Device|------| Router |
| +---| | (tap0)| | (br0) | |(wlan0)| | |
| | +-------+ +--------+ +-------+ +--------+
+-----------+


Mon FAI me fournit en IPv6 et le projet que je veux faire tourner sur ma vm nécessite une adresse IPv6 de scope global (que j'obtiens sur ma vm par ailleurs). La seul chose qui reste hors de ma portée c'est de pinger l'extérieur depuis ma vm. J'arrive à entièrement pinger le réseau depuis ma machine, mais depuis la vm je bloque à wlan0.

Voici la table de routage de mon hôte :
root:~# ip r
192.168.0.0/24 dev br0 proto kernel scope link src 192.168.0.78
default via 192.168.0.254 dev br0
root:~# ip -6 r
2a01:e34:ec03:8610::/64 dev br0 proto kernel metric 256 expires 86399sec mtu 1480 advmss 1420 hoplimit 0
fe80::/64 dev br0 proto kernel metric 256 mtu 1480 advmss 1420 hoplimit 0
default via fe80::207:cbff:fe9c:6b9 dev br0 proto kernel metric 1024 expires 1794sec mtu 1480 advmss 1420 hoplimit 64


Voici celle de ma machine guest :
linux-qkjp:~ # ip r
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.80
default via 192.168.0.78 dev eth0
linux-qkjp:~ # ip -6 r
2a01:e34:ec03:8610::/64 dev eth0 proto kernel metric 256 expires 86233sec mtu 1480 advmss 1420 hoplimit 0
fe80::/64 dev eth0 proto kernel metric 256 mtu 1480 advmss 1420 hoplimit 0
default via fe80::207:cbff:fe9c:6b9 dev eth0 proto kernel metric 1024 expires 1628sec mtu 1480 advmss 1420 hoplimit 64


Dans les deux tables ci dessus :
192.168.0.78 est l'adresse IPv4 de mon bridge br0.
192.168.0.254 est l'adresse IPv4 du routeur.
fe80::207:cbff:fe9c:6b9 est l'adresse IPv6 du routeur.
Les tables iptables et ip6tables sont toutes vides et je ne sais plus du tout quoi modifier pour réussir à pinger l'extérieur depuis ma vm.

Je suis preneur de toute solution :)
Merci d'avance.
  • # probleme sur le routeur ?

    Posté par . Évalué à 2.

    ton routeur (254) qui ne laisserait pas sortir ce qui vient de la machine 80 ?

    sinon ca me semble un poil compliqué de mettre un TAP sur WLANX-hote
    por ensuite mettre un BRidge sur ce TAP, pour ensuite faire un dev dans l'invité.

    il me semblait qu'on pouvait faire un BR directement sur l'interface (ETH ou WLAN) ?
    • [^] # Re: probleme sur le routeur ?

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

      En fait, je n'arrive pas à pinger le router en 192.168.0.254 depuis ma machine guest, mais je réussis à le faire depuis mon laptop hôte. Depuis la vm j'arrive à pinger la tap, le br et la wlan, pas le reste.

      Le fait de relié la NIC de la machine guest à une tap sur la machine hôte semble être la solution la plus approprié pour ce que je veux faire. Je la tire de là : http://people.gnome.org/~markmc/qemu-networking.html

      Le bridge en lui même relie la tap à la wlan, Je trouve aussi la tap superflue dans cette configuration mais je ne vois pas trop comment faire sans.
      • [^] # Re: probleme sur le routeur ?

        Posté par . Évalué à 2.

        pour resumé (en dehors des interfaces) et si j'ai bien compris tu as :

        guest (192.168.0.80) -> BR -> TAP ->WLAN
        host (192.168.0.78) -> BR -> WLAN

        WLAN -> (192.168.0.254) routeur -> internet

        question, pourquoi tu met la machine 78 comme passerelle de la machine 80
        alors que tu fonctionnes en mode "bridge" ?

        c'est à dire que ta machine guest est "directement" exposé sur ton reseau comme si c'etait une machine physique.



        si tu veux une architecture deplacable (pour montrer en clientele par exemple)
        il faut pas te mettre en bridge mais en NAT (je ne me souviens plus le nom dans QEMU)

        à ce moment là, la machine guest sera sur un reseau "interne" à qemu avec une translation d'adresse vers ta carte LAN/WLAN.
        • [^] # Re: probleme sur le routeur ?

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

          Tu as tout à fait bien compris la topologie du truc.

          > question, pourquoi tu met la machine 78 comme passerelle de la machine 80
          > alors que tu fonctionnes en mode "bridge" ?

          Je ne vois pas d'autre solution pour router mes paquets hors de ma machine hôte. Mais l'admin réseau n'étant pas mon point fort si tu as une autre solution à m'expliquer, je suis preneur.


          Je ne peux pas faire de NAT, car sur la vm devra tourner un script qui a besoin d'une adresse IPv6 globale pour fonctionner. Il faut donc absolument que la vm soit sur le réseau "comme si" elle était juste derrière le routeur.

          La solution -net user (le mode user) de qemu marchait cependant très bien si je voulais avoir du réseau naté sur ma machine virtuelle.
          • [^] # Re: probleme sur le routeur ?

            Posté par . Évalué à 2.

            Donc ton soucis pour aller sur internet doit venir de là

            ta VM est en "bridge" donc directement exposé sur ton reseau.
            elle doit donc avoir une configuration reseau similaire à ta machine physique
            meme plan d'adressage (192.168.0.0/24, meme DNS, meme passerelle 192.168.0.254)

            pour IPv6 je ne pratique pas suffisamment, mais il doit falloir que le routeur fournisse un adressage ipv6
            • [^] # Re: probleme sur le routeur ?

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

              D'abord merci de tes réponses.

              Ensuite j'ai beau essayer avec ce genre de table de routage sur ma machine guest :
              linux-qkjp:~ # ip r
              192.168.0.0/24 dev eth0 scope link
              default via 192.168.0.254 dev eth0


              Il m'est toujours impossible de pinger ni la passerelle (254) ni l'extérieure. Peut être ai-je mal appliqué ce que tu m'as conseillé.
              • [^] # Re: probleme sur le routeur ?

                Posté par . Évalué à 2.

                tu peux nous donner la ligne que tu utilises pour lancer ta machine virtuel (qemu ou kvm) ?
                • [^] # Re: probleme sur le routeur ?

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

                  Voici la commande en question :
                  qemu -m 1024 -hda SlapOS_32bit.i686-0.0.1.raw -net nic -net tap,ifname=tap0,script=no

                  Je me commence à me demander si mon problème vient réellement du routage et pas simplement de mon bridge sur wlan0 qui serait foireux à un moment.
                  • [^] # Re: probleme sur le routeur ?

                    Posté par . Évalué à 2.

                    d'apres http://linux.die.net/man/1/qemu

                    si tu fais -net nic -net tap...
                    tu relies ta carte interne de ton guest (NIC) à la carte TAP de ton hote

                    seulement tu a cree un bridge (br0) sur ton hote
                    si case trouve c'est lui qui "boque" le TAP

                    si rien d'autre n'utilise le br0, tu peux le desactiver
                    pour avoir le TAP en direct
                    • [^] # Re: probleme sur le routeur ?

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

                      Après plusieurs test il semblerait que ce ne soit pas un problème de route.
                      Il semblerait aussi qu'il me soit impossible de bridger correctement une carte wifi.

                      Après un examen en détail de plein de tcpdump partout sur mon réseau, je me suis aperçu que ma wlan tansmettait le ping mais pas la réponse. Aussi les interface distante répondait mais je n'en savais rien. Après avoir acheter un rj45 de 15 mètres et avoir configurer le bridge directement tout fonctionnait sans problème (et ne nécessitait par ailleurs aucune route).

                      Je vais continuer avec cette solution. Merci encore de ton aide.
                      • [^] # Re: probleme sur le routeur ?

                        Posté par . Évalué à 2.

                        avec le RJ45, tu fais le meme TAP et le meme BR mais sur l'interface LAN

                        et ca marche sans changer quoique ce soit d'autres dans la VM ?
                        • [^] # Re: probleme sur le routeur ?

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

                          Voilà. Tout à fait, la wlan est en cause. Sur eth0 je n'ai aucune route à configurer.
                          • [^] # Re: probleme sur le routeur ?

                            Posté par . Évalué à 3.

                            J'ai lu en vitesse donc j'ai ptêt loupé un truc, mais pour info tu ne peux pas router du traffic en tant que client wifi. Soit tu NAT, soit tu active le WDS (routeur + client).
                            • [^] # Re: probleme sur le routeur ?

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

                              Ma solution fonctionne pour l'instant du coup je vais continuer ainsi.

                              Mais merci beaucoup de cette information, après une rapide recherche sur le net ça a vraiment l'air de coller avec mon problème de base. Je vais creuser ça, ça pourra m'être très utile pour la suite.

Suivre le flux des commentaires

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