Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/07/2010, à 22:27

MrWaloo

AQEMU et la configuration du réseau [début résolu, test en cours]

Bonjour,

J'ai installé QEMU, KVM et AQEMU comme GUI (bah oui c'est sympa aussi un GUI... ;-)
Donc j'arrive à faire ce que je veux dans la machine virtuelle (je voulais tester une config en version serveur, mode texte, bien sur) sauf communiquer avec mon PC...
Mon réseau est en DHCP 192.168.1.0/24 et la machine virtuelle est en 10.0.2.0/24.

Là où c'est drôle, c'est que la machine virtuelle accède à internet et sait se mettre à jour...
Le serveur DHCP est 10.0.2.2 (pingable et c'est mon PC derrière)
Le serveur DNS est 10.0.2.3 (pas pingable)

J'ai des notions avec VMware mais je ne retrouve pas d'interface réseau virtuelle coté hôte (mon PC) qui pourrait faire le lien entre les 2 réseaux.
Lorsque je force l'adresse de la machine virtuelle pour être conforme à mon réseau, le ping ne donne rien...

Je pense qu'il me manque une notion (je dirais presque philosophique) de fonctionnement de QEMU pour la gestion du réseau.

Quelqu'un saurait m'aider ou m'aiguiller vers une autre solution ?

Dernière modification par MrWaloo (Le 29/07/2010, à 23:21)


"De tous ceux qui n'ont rien à dire, les plus agréables sont ceux qui se taisent !!" (Desproges)
UNIX is an operating system, OS/2 is half an operating system, Windows is a shell, MS-DOS is a boot sector virus.

Hors ligne

#2 Le 23/07/2010, à 07:15

brakbabord

Re : AQEMU et la configuration du réseau [début résolu, test en cours]

C'est parceque QEMU/KVM émulent un réseau avec leur propre serveur DHCP, et il y a un NAT avec ton réseau physique.

Pour avoir accès direct au réseau physique il faut faire un pont (bridged-networking). Je suis sur le coup aussi. Je te dirai si je trouve la solution.

Hors ligne

#3 Le 23/07/2010, à 16:38

ml-djoudi

Re : AQEMU et la configuration du réseau [début résolu, test en cours]

Bonjour,

J'avais un truck pareil à mettre en place lors d'un projet d'étude, mais je me rappel pas bien des détails. Ce que j'avais réussi à faire est un réseau NAT Forwarding pour les machines virtuelles, @brakbabord raison il y a serveur DHCP émulé mais vous pouvez le désactiver pour mettre un autre en place.

Par contre j'avais pas réussi à créer un accès direct à une machine virtuelle malgré que j'aie suivi la doc officiel de libvirt http://wiki.libvirt.org/page/Networking (Bridged networking), où j'ai du me tromper quelque part roll . Je pense qu'il y a un 3ième type de réseau j'ai pas eu le temps de l'étudier je pense son nom est tun/tap.

Concernant Libvirt c'est une interface qui permet l'abstraction de l'outil de virtualisation donc vous pouvez utiliser la même commande pour KVM et pour XEN. Elle utilise des fichiers de type xml pour la configuration des hôtes et aussi du réseau.

cela aussi peut vous aidez: http://libvirt.org/formatnetwork.html

Ce sujet m'intéresse et j'essaierai d'y contribuer quant j'aurais le temps, car je maitrise pas encore ces techniques.

Bon courage

Dernière modification par ml-djoudi (Le 23/07/2010, à 16:44)


www.ml-djoudi.com

Hors ligne

#4 Le 23/07/2010, à 18:06

MrWaloo

Re : AQEMU et la configuration du réseau [début résolu, test en cours]

J'ai aussi vu que l'on pouvait utiliser une interface TUN/TAP, comme ml-djoudi le dit, je sais que pour hamachi, une telle interface est utilisée, je cherche dans cette direction

edit: ici une page qui détaille la procédure mais sous BSD, reste plus qu'à traduire !

Dernière modification par MrWaloo (Le 23/07/2010, à 18:18)


"De tous ceux qui n'ont rien à dire, les plus agréables sont ceux qui se taisent !!" (Desproges)
UNIX is an operating system, OS/2 is half an operating system, Windows is a shell, MS-DOS is a boot sector virus.

Hors ligne

#5 Le 29/07/2010, à 21:51

MrWaloo

Re : AQEMU et la configuration du réseau [début résolu, test en cours]

Bonjour, je m'y remets ce soir...

il faut installer 2 paquets (et leurs dépendances)

sudo apt-get install bridge-utils uml-utilities

pour avoir respectivement brctl et tunctl qui servent à gérer les switch (bridge) virtuels (ou pas ?) et les interfaces TUN/TAP.

1. Un PC invité seulement
Sur le PC hôte :

sudo tunctl
sudo ifconfig tap0 192.168.2.10

Par défaut l'interface créée est tap0, je lui donne une adresse IP dans une plage différente de l'eth0 de l'hôte

Au début j'ai laissé tomber AQEMU, je n'arrivais pas à retrouver la même configuration qu'en ligne de commande.
Je lance donc qemu avec les options de réseau qui vont bien :

sudo /usr/bin/qemu -boot c -m 512 -hda /data/Machines\ virtuelles/Server-1/HDD1.kvm-img -net nic -net tap -localtime &

Je me rends compte que sans droits root, j'ai un message qui me dit :

warning: could not configure /dev/net/tun: no virtual network emulation

Je tente donc de lancer AQEMU avec sudo (l'interface Qt est plus sobre, mais bon...) et dans la partie Network, je passe en mode "Nativ", je supprime tout, et ajoute une interface nic sans options et une interface tap sans option (en précisant tap0 pour ifname, ça n'a fonctionné qu'une fois !), pour coller à la ligne de commande.

Dans le PC invité, je configure l'interface eth0 pour qu'elle soit compatible avec celle de tap0 de l'hôte :

sudo ifconfig eth0 192.168.2.11 netmask 255.255.255.0 up

Et là ça marche ! Les ping sont possibles dans les 2 sens, j'arrive à contrôler le PC invité par ssh depuis l'hôte.

2. Plusieurs PC invités en même temps. Je n'ai pas encore testé, mais je pense que la méthode suivante fonctionne

Le principe est de créer un switch vrtuel (br0) et de brancher 2 interfaces tap dessus (tap0 et tap1) :

sudo brctl addbr br0
sudo ifconfig br0 192.168.2.1 netmask 255.255.255.0
sudo tunctl
sudo brctl addif br0 tap0
sudo tunctl
sudo brctl addif br0 tap1
sudo ifconfig tap0 192.168.2.10 netmask 255.255.255.0 up
sudo ifconfig tap1 192.168.2.20 netmask 255.255.255.0 up

Maintenant il faudrait créer 2 Pc invités que l'on branche sur tap0 et tap1, de configurer les adresses IP des invités et ça devrait le faire.

3. L'accès à internet pour les invités

Sur l'hôte, il faut aussi relier eth0 au switch virtuel.

A+

Dernière modification par MrWaloo (Le 29/07/2010, à 23:20)


"De tous ceux qui n'ont rien à dire, les plus agréables sont ceux qui se taisent !!" (Desproges)
UNIX is an operating system, OS/2 is half an operating system, Windows is a shell, MS-DOS is a boot sector virus.

Hors ligne

#6 Le 14/08/2010, à 00:37

MrWaloo

Re : AQEMU et la configuration du réseau [début résolu, test en cours]

J'ai trouvé mieux et de manière automatique au démarrage !

J'ai modifié le fichier /etc/network/interfaces comme ceci :

auto lo
iface lo inet loopback

auto br0
iface br0 inet dhcp
    bridge_ports eth0 tap0

auto eth0
iface eth0 inet static
    address    192.168.1.7
    netmask    255.255.255.0

auto tap0
iface tap0 inet static
    address    192.168.1.101
    netmask    255.255.255.0
    pre-up    /usr/sbin/tunctl -t $IFACE
    post-down    /usr/sbin/tunctl -d $IFACE

De sorte d'automatiser les manipulations précédentes et de fixer les adresses IP en dur, mais...

J'ai aussi figé le serveur DNS sur l'adresse de ma box, donc dans /etc/resolv.conf :

nameserver    192.168.1.1

Puisque ma box a cette adresse...

Sur mon PC j'ai :

~$ ifconfig
br0       Link encap:Ethernet  HWaddr 5e:42:99:43:a4:97  
          inet adr:192.168.1.56  Bcast:192.168.1.255  Masque:255.255.255.0
          adr inet6: fe80::e2cb:4eff:fe5e:1579/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Packets reçus:61998 erreurs:0 :0 overruns:0 frame:0
          TX packets:45234 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0 
          Octets reçus:75021277 (75.0 MB) Octets transmis:5614771 (5.6 MB)

eth0      Link encap:Ethernet  HWaddr e0:cb:4e:5e:15:79  
          adr inet6: fe80::e2cb:4eff:fe5e:1579/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Packets reçus:62003 erreurs:0 :0 overruns:0 frame:0
          TX packets:45242 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000 
          Octets reçus:75895344 (75.8 MB) Octets transmis:5615840 (5.6 MB)
          Interruption:39 Adresse de base:0xc000 

lo        Link encap:Boucle locale  
          inet adr:127.0.0.1  Masque:255.0.0.0
          adr inet6: ::1/128 Scope:Hôte
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          Packets reçus:132 erreurs:0 :0 overruns:0 frame:0
          TX packets:132 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0 
          Octets reçus:10516 (10.5 KB) Octets transmis:10516 (10.5 KB)

tap0      Link encap:Ethernet  HWaddr 5e:42:99:43:a4:97  
          adr inet6: fe80::5c42:99ff:fe43:a497/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Packets reçus:0 erreurs:0 :0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:1074 overruns:0 carrier:0
          collisions:0 lg file transmission:500 
          Octets reçus:0 (0.0 B) Octets transmis:0 (0.0 B)

virbr0    Link encap:Ethernet  HWaddr fe:71:c5:9d:a7:d6  
          inet adr:192.168.122.1  Bcast:192.168.122.255  Masque:255.255.255.0
          adr inet6: fe80::fc71:c5ff:fe9d:a7d6/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Packets reçus:0 erreurs:0 :0 overruns:0 frame:0
          TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0 
          Octets reçus:0 (0.0 B) Octets transmis:4475 (4.4 KB)

Lors du démarrage (sans qemu)

Je lance ma machine virtuelle avec cette commande :

sudo /usr/bin/qemu -boot c -m 512 -hda /data/Machines\ virtuelles/Server-1/HDD1.kvm-img -net nic -net tap -localtime

Et là ifconfig me retourne ceci sur l'hôte :

br0       Link encap:Ethernet  HWaddr 5e:42:99:43:a4:97  
          inet adr:192.168.1.56  Bcast:192.168.1.255  Masque:255.255.255.0
          adr inet6: fe80::e2cb:4eff:fe5e:1579/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Packets reçus:75660 erreurs:0 :0 overruns:0 frame:0
          TX packets:57000 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0 
          Octets reçus:86946867 (86.9 MB) Octets transmis:7383747 (7.3 MB)

eth0      Link encap:Ethernet  HWaddr e0:cb:4e:5e:15:79  
          adr inet6: fe80::e2cb:4eff:fe5e:1579/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Packets reçus:76198 erreurs:0 :0 overruns:0 frame:0
          TX packets:57403 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000 
          Octets reçus:88760897 (88.7 MB) Octets transmis:7420818 (7.4 MB)
          Interruption:39 Adresse de base:0xc000 

lo        Link encap:Boucle locale  
          inet adr:127.0.0.1  Masque:255.0.0.0
          adr inet6: ::1/128 Scope:Hôte
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          Packets reçus:132 erreurs:0 :0 overruns:0 frame:0
          TX packets:132 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0 
          Octets reçus:10516 (10.5 KB) Octets transmis:10516 (10.5 KB)

tap0      Link encap:Ethernet  HWaddr 5e:42:99:43:a4:97  
          adr inet6: fe80::5c42:99ff:fe43:a497/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Packets reçus:0 erreurs:0 :0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:2590 overruns:0 carrier:0
          collisions:0 lg file transmission:500 
          Octets reçus:0 (0.0 B) Octets transmis:0 (0.0 B)

tap1      Link encap:Ethernet  HWaddr c6:ff:04:43:dc:4d  
          adr inet6: fe80::c4ff:4ff:fe43:dc4d/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Packets reçus:482 erreurs:0 :0 overruns:0 frame:0
          TX packets:829 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:500 
          Octets reçus:49698 (49.6 KB) Octets transmis:816041 (816.0 KB)

virbr0    Link encap:Ethernet  HWaddr fe:71:c5:9d:a7:d6  
          inet adr:192.168.122.1  Bcast:192.168.122.255  Masque:255.255.255.0
          adr inet6: fe80::fc71:c5ff:fe9d:a7d6/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Packets reçus:0 erreurs:0 :0 overruns:0 frame:0
          TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0 
          Octets reçus:0 (0.0 B) Octets transmis:4475 (4.4 KB)

Et donc pour vérifier, je fais :

~$ brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.5e429943a497	no		eth0
							tap0
							tap1
virbr0		8000.000000000000	yes

Donc quelque chose crée un nouvelle interface tap et la met sur le switch virtuel, je ne sais pas comment...
En tout cas ça marche !

Dans l'invité :

user@server-1:~$ ifconfig 
eth0      Link encap:Ethernet  HWaddr 52:54:00:12:34:56  
          inet adr:192.168.1.46  Bcast:192.168.1.255  Masque:255.255.255.0
          adr inet6: fe80::5054:ff:fe12:3456/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Packets reçus:704 erreurs:0 :0 overruns:0 frame:0
          TX packets:511 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000 
          Octets reçus:760379 (760.3 KB) Octets transmis:54742 (54.7 KB)
          Interruption:11 Adresse de base:0xa000 

lo        Link encap:Boucle locale  
          inet adr:127.0.0.1  Masque:255.0.0.0
          adr inet6: ::1/128 Scope:Hôte
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          Packets reçus:8 erreurs:0 :0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0 
          Octets reçus:480 (480.0 B) Octets transmis:480 (480.0 B)

--> eth0 est sur le même réseau que mon PC, la connexion internet fonctionne et le réseau entre mon PC et l'invité fonctionnent (ssh, ping, ...)

Conclusion provisoire :
Le figeage des adresses IP n'a pas fonctionné, mais quelque chose de magique fait que ça fonctionne, je vais essayer de nettoyer et de faire en sorte que la config soit propre, puis je documenterai sur le Wiki.

A+

Dernière modification par MrWaloo (Le 14/08/2010, à 00:41)


"De tous ceux qui n'ont rien à dire, les plus agréables sont ceux qui se taisent !!" (Desproges)
UNIX is an operating system, OS/2 is half an operating system, Windows is a shell, MS-DOS is a boot sector virus.

Hors ligne