Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

qemu et VLAN

6 réponses
Avatar
Kevin Denis
Bonjour,

je ne sais pas si je suis sur le bon groupe pour poser ces questions.
Si ce n'est pas le cas, veuillez m'indiquer un groupe plus adequat.

Je cherche a simuler un reseau compose de plusieurs machines
disposant de plusieurs interfaces, l'ensemble sous linux.

Hote linux, invites linux:

|
Hote
| |
guest1 guest2 guest3 guest4
| | | |
--------------LAN--------------

Le LAN n'a aucune vocation a etre joint de, ou joindre l'exterieur. Le
guest1 et le guest2 peuvent etre joint depuis l'hote.

Pour guest1 et guest2, je vois comment faire en utilisant les redir,
(c'est bien redir qui m'interesse, et absolument pas le bridging)
par contre pour faire en sorte que tous mes guest communiquent entre
eux sur un reseau prive et interne, j'ai du mal a le faire
fonctionner. J'ai vu la notion vlan, mais ca ne fonctionne pas, les
hotes ne se voient pas entre eux, de plus certaines docs signalent que
les vlan de numeros differents sont joignables (??).
J'ai vu la notion -net socket, mais systematiquement tous les
arguments que j'indique derriere sont refuses.

Si quelqu'un a une doc, je suis preneur.

Merci
--
Kevin

6 réponses

Avatar
sansflotusspam
Kevin Denis wrote:

Bonjour,

je ne sais pas si je suis sur le bon groupe pour poser ces questions.
Si ce n'est pas le cas, veuillez m'indiquer un groupe plus adequat.

Je cherche a simuler un reseau compose de plusieurs machines
disposant de plusieurs interfaces, l'ensemble sous linux.

Hote linux, invites linux:

|
Hote
| |
guest1 guest2 guest3 guest4
| | | |
--------------LAN--------------

Le LAN n'a aucune vocation a etre joint de, ou joindre l'exterieur. Le
guest1 et le guest2 peuvent etre joint depuis l'hote.

Pour guest1 et guest2, je vois comment faire en utilisant les redir,
(c'est bien redir qui m'interesse, et absolument pas le bridging)
par contre pour faire en sorte que tous mes guest communiquent entre
eux sur un reseau prive et interne, j'ai du mal a le faire
fonctionner. J'ai vu la notion vlan, mais ca ne fonctionne pas, les
hotes ne se voient pas entre eux, de plus certaines docs signalent que
les vlan de numeros differents sont joignables (??).
J'ai vu la notion -net socket, mais systematiquement tous les
arguments que j'indique derriere sont refuses.

Si quelqu'un a une doc, je suis preneur.

Merci


je ne comprends pas vraiment le fonds du problème, mais :
tous les vlans, machines virtuelles, etc, que j'ai expérimenté, font tous
appel aux interfaces "virtuelles" tun et tap, lesquelles sont initiées par
"vde" ; as-tu installé vde, et initié une ou des interfaces vde-ctl sur le
système hôte ?
cela n'étant qu'une suggestion ...

Avatar
Kevin Denis
Le 10-12-2007, sansflotusspam a écrit :
Hote linux, invites linux:

|
Hote
| |
guest1 guest2 guest3 guest4
| | | |
--------------LAN--------------

Le LAN n'a aucune vocation a etre joint de, ou joindre l'exterieur. Le
guest1 et le guest2 peuvent etre joint depuis l'hote.

je ne comprends pas vraiment le fonds du problème, mais :

tous les vlans, machines virtuelles, etc, que j'ai expérimenté, font tous
appel aux interfaces "virtuelles" tun et tap,


pas obligatoirement, mais je peux me tromper. qemu permet de ne pas
utiliser tun et tap. Et la notion de multi-interfaces sous qemu et vlan me
faisait penser que c'est possible sans tun et tap.

lesquelles sont initiées par
"vde" ; as-tu installé vde, et initié une ou des interfaces vde-ctl sur le
système hôte ?


Je preferai ne pas installer vde, puisque les exemples de la doc
me laissent penser que c'est inutile. Mais si c'est la solution, je
prends. Tu as un lien?

cela n'étant qu'une suggestion ...

Je prends toute doc ou tout lien. Je pensais que c'etait faisable

out-of-the-box avec qemu, mais si ce n'est pas le cas, je
suis preneur de tout patch me permettant d'arriver au resultat.
--
Kevin


Avatar
sansflotusspam
Kevin Denis wrote:

Le 10-12-2007, sansflotusspam a écrit :
Hote linux, invites linux:

|
Hote
| |
guest1 guest2 guest3 guest4
| | | |
--------------LAN--------------

Le LAN n'a aucune vocation a etre joint de, ou joindre l'exterieur. Le
guest1 et le guest2 peuvent etre joint depuis l'hote.

je ne comprends pas vraiment le fonds du problème, mais :

tous les vlans, machines virtuelles, etc, que j'ai expérimenté, font tous
appel aux interfaces "virtuelles" tun et tap,


pas obligatoirement, mais je peux me tromper.



qemu permet de ne pas utiliser tun et tap.


alors là, je découvre ! jamais réussi à mettre un invité sous qemu sur le
réseau sans tun/tap et vde-switch ; on ferait comment ?


Et la notion de multi-interfaces sous qemu et vlan me
faisait penser que c'est possible sans tun et tap.


par définition, une machine "invitée" n'a que une (des) interface(s)
virtuelles, pas de carte physique. Il faut bien une interface de même
nature sur la machine hôte pour faire la communication.
enfin, c'est ce qu'il me semble.


lesquelles sont initiées par
"vde" ; as-tu installé vde, et initié une ou des interfaces vde-ctl sur
le système hôte ?


Je preferai ne pas installer vde, puisque les exemples de la doc
me laissent penser que c'est inutile. Mais si c'est la solution, je
prends. Tu as un lien?


http://sourceforge.net/projects/vde/

voir en particulier le howto Qemu dans la doc de vde

cela n'étant qu'une suggestion ...

Je prends toute doc ou tout lien. Je pensais que c'etait faisable

out-of-the-box avec qemu, mais si ce n'est pas le cas, je
suis preneur de tout patch me permettant d'arriver au resultat.




Avatar
Kevin Denis
Le 10-12-2007, sansflotusspam a écrit :
qemu permet de ne pas utiliser tun et tap.


alors là, je découvre ! jamais réussi à mettre un invité sous qemu sur le
réseau sans tun/tap et vde-switch ; on ferait comment ?

http://fabrice.bellard.free.fr/qemu/qemu-doc.html#SEC30


By using the option `-net user' (default configuration if no `-net'
option is specified), QEMU uses a completely user mode network stack
(you don't need root priviledge to use the virtual network). The
virtual network configuration is the following:

QEMU VLAN <------> Firewall/DHCP server <-----> Internet
| (10.0.2.2)
|
----> DNS server (10.0.2.3)
|
----> SMB server (10.0.2.4)

The QEMU VM behaves as if it was behind a firewall which blocks all
incoming connections. You can use a DHCP client to automatically
configure the network in the QEMU VM. The DHCP server assign
addresses to the hosts starting from 10.0.2.15.

In order to check that the user mode network is working, you can
ping the address 10.0.2.2 and verify that you got an address in
the range 10.0.2.x from the QEMU virtual DHCP server.

Note that ping is not supported reliably to the internet as it
would require root priviledges. It means you can only ping the
local router (10.0.2.2).

When using the built-in TFTP server, the router is also the TFTP server.

When using the `-redir' option, TCP or UDP connections can be redirected
from the host to the guest. It allows for example to redirect X11,
telnet or SSH connections.

Je preferai ne pas installer vde, puisque les exemples de la doc
me laissent penser que c'est inutile. Mais si c'est la solution, je
prends. Tu as un lien?


http://sourceforge.net/projects/vde/

voir en particulier le howto Qemu dans la doc de vde

Je vais voir, merci

--
Kevin


Avatar
Kevin Denis
Le 10-12-2007, Kevin Denis a écrit :
je ne sais pas si je suis sur le bon groupe pour poser ces questions.
Si ce n'est pas le cas, veuillez m'indiquer un groupe plus adequat.

Je me reponds pour historique.


Je cherche a simuler un reseau compose de plusieurs machines
disposant de plusieurs interfaces, l'ensemble sous linux.

La methode pour invoquer le reseau sous qemu est etrange, mais

finalement tres simple.
D'emblee, il faut savoir que chaque option -net peut utiliser un
vlan. Ce numero de vlan est interne a qemu et ne sort jamais sur le
reseau (rien a voir avec 802.11q).
Ensuite, -net peut servir a plusieurs choses, entre autre configurer
les interfaces reseaux, a demander une interface tun/tap, l'user
mmode stack, ou d'ecouter sur le reseau.

Donc pour lancer un hote avec deux cartes reseaux, qui ne se trouvent
pas sur le meme HUB (virtuel), il suffit de
qemu -net nic,vlan=1,macaddr:22:33:44:55:66
-net nic,vlan=2,macaddr:22:33:44:55:AB

vu comme ceci, cela n'a que peu d'interet. L'enorme interet de ces vlan
repose sur l'existence de l'option socket. Cette option permet de
relier deux objet vlan entre eux. Ainsi, pour relier deux machines entre
elles, il suffit de:
Machine1:
qemu -net nic,vlan=1,macaddr:22:33:44:55:66
-net socket,vlan=1,listen7.0.0.1:1234

Machine2:
qemu -net nic,vlan=1,macaddr«:CD:EF:AB:CD:EF
-net socket,vlan=1,connect7.0.0.1:1234

et la carte reseau de l'un peut communiquer avec l'autre. La carte
ayant la MAC AB:CD:EF:AB:CD:EF est plugge sur un hub qui peut discuter
avec la carte qui la MAC 11:22:33:44:55:66.

Pour arriver a mes fins, il suffit donc de lancer un hote disposant
de deux cartes reseaux, une cote hote, et une autre dont le vlan va
ecouter les autres hotes:

qemu -net nic,vlan=1,macaddr«:CD:EF:AB:CD:EF
-net socket,vlan=1,listen7.0.0.1:1234
-net nic,vlan=0,macaddrï:GH:EF:GH:EF:GH
-net user,vlan=0

L'objet net de vlan 0 est connecte a ma user-mode stack, et donc
virtuellement accessible, en ajoutant un -redir tcp:2222::22.
L'objet vlan1 ecoute donc les flux des autres machines.
Je peux maintenant ajouter des machines:

qemu -net nic,vlan=1,macaddr«:CD:EF:AB:CD:01
-net socket,vlan=1,connect7.0.0.1:1234
qemu -net nic,vlan=4,macaddr«:CD:EF:AB:CD:02
-net socket,vlan=4,connect7.0.0.1:1234

les vlan sont independants les uns des autres, l'essentiel est
l'option socket, la ils se voient, malgre le numero different.

etc, et tous les autres hotes forment un reseau virtuel inaccessible
de l'exterieur. La gateway est le premier hote lance, qui a deux cartes
reseaux.
--
Kevin

Avatar
Kevin Denis
Le 10-12-2007, Kevin Denis a écrit :
je ne sais pas si je suis sur le bon groupe pour poser ces questions.
Si ce n'est pas le cas, veuillez m'indiquer un groupe plus adequat.

Je me reponds pour historique.


Je cherche a simuler un reseau compose de plusieurs machines
disposant de plusieurs interfaces, l'ensemble sous linux.

La methode pour invoquer le reseau sous qemu est etrange, mais

finalement tres simple.
D'emblee, il faut savoir que chaque option -net peut utiliser un
vlan. Ce numero de vlan est interne a qemu et ne sort jamais sur le
reseau (rien a voir avec 802.11q).
Ensuite, -net peut servir a plusieurs choses, entre autre configurer
les interfaces reseaux, a demander une interface tun/tap, l'user
mmode stack, ou d'ecouter sur le reseau.

Donc pour lancer un hote avec deux cartes reseaux, qui ne se trouvent
pas sur le meme HUB (virtuel), il suffit de
qemu -net nic,vlan=1,macaddr:22:33:44:55:66
-net nic,vlan=2,macaddr:22:33:44:55:AB

vu comme ceci, cela n'a que peu d'interet. L'enorme interet de ces vlan
repose sur l'existence de l'option socket. Cette option permet de
relier deux objet vlan entre eux. Ainsi, pour relier deux machines entre
elles, il suffit de:
Machine1:
qemu -net nic,vlan=1,macaddr:22:33:44:55:66
-net socket,vlan=1,listen7.0.0.1:1234

Machine2:
qemu -net nic,vlan=1,macaddr«:CD:EF:AB:CD:EF
-net socket,vlan=1,connect7.0.0.1:1234

et la carte reseau de l'un peut communiquer avec l'autre. La carte
ayant la MAC AB:CD:EF:AB:CD:EF est plugge sur un hub qui peut discuter
avec la carte qui la MAC 11:22:33:44:55:66.

Pour arriver a mes fins, il suffit donc de lancer un hote disposant
de deux cartes reseaux, une cote hote, et une autre dont le vlan va
ecouter les autres invites:

qemu -net nic,vlan=1,macaddr«:CD:EF:AB:CD:EF
-net socket,vlan=1,listen7.0.0.1:1234
-net nic,vlan=0,macaddrï:GH:EF:GH:EF:GH
-net user,vlan=0

L'objet net de vlan 0 est connecte a ma user-mode stack, et donc
virtuellement accessible, en ajoutant un -redir tcp:2222::22.
L'objet vlan1 ecoute donc les flux des autres machines.
Je peux maintenant ajouter des machines:

qemu -net nic,vlan=1,macaddr«:CD:EF:AB:CD:01
-net socket,vlan=1,connect7.0.0.1:1234
qemu -net nic,vlan=4,macaddr«:CD:EF:AB:CD:02
-net socket,vlan=4,connect7.0.0.1:1234

les vlan sont independants les uns des autres, l'essentiel est
l'option socket, la ils se voient, malgre le numero different.

etc, et tous les autres invites forment un reseau virtuel inaccessible
de l'exterieur. La gateway est le premier invite lance, qui a deux cartes
reseaux.
--
Kevin