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

re: qemu et réseau

7 réponses
Avatar
jip
bonjour,

Ça rentre doucement ;-)
Après avoir pris connaissance de ta dernière réponse,
ce qui me gêne c'est qu'après le script qemu_prep, un
ifconfig me donne:

eth0 Lien encap:Ethernet HWaddr 00:0C:76:5E:63:13
inet adr:10.0.0.2 Bcast:10.0.0.255 Masque:255.255.255.0
(...)
lo Lien encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
(...)
tap1 Lien encap:Ethernet HWaddr 8A:EB:40:CB:97:0D
inet adr:10.0.0.138 Bcast:10.255.255.255 Masque:255.0.0.0
(...)



J'ai donc bien (chez moi):

WAN par modem/routeur [10.0.0.138] <--> Hôte eth0 [10.0.0.2]
et
Hôte vers Qemu tap1 mais d'office avec 10.0.0.138 (?)

Je ne comprends pas à quel moment (et comment) je dois configurer
le segment:
<--> Hôte LAN eth1 192.168.0.1
ni comment modifier:
tap1 [10.0.0.138] en tap1 [192.168.0.10]

Au lancement de qemu, j'ai toujours le message
SIOCSIFNETMASK: Ne peut attribuer l'adresse demandée

encore merci,
bon we

jip

7 réponses

Avatar
jip
Ooops, ma réponse n'est pas insérée au bon endroit.
Désolé.


jip

bonjour,

Ça rentre doucement ;-)
Après avoir pris connaissance de ta dernière réponse,
ce qui me gêne c'est qu'après le script qemu_prep, un
ifconfig me donne:

eth0 Lien encap:Ethernet HWaddr 00:0C:76:5E:63:13
inet adr:10.0.0.2 Bcast:10.0.0.255 Masque:255.255.255.0
(...)
lo Lien encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
(...)
tap1 Lien encap:Ethernet HWaddr 8A:EB:40:CB:97:0D
inet adr:10.0.0.138 Bcast:10.255.255.255 Masque:255.0.0.0
(...)



J'ai donc bien (chez moi):

WAN par modem/routeur [10.0.0.138] <--> Hôte eth0 [10.0.0.2]
et
Hôte vers Qemu tap1 mais d'office avec 10.0.0.138 (?)

Je ne comprends pas à quel moment (et comment) je dois configurer
le segment:
<--> Hôte LAN eth1 192.168.0.1
ni comment modifier:
tap1 [10.0.0.138] en tap1 [192.168.0.10]

Au lancement de qemu, j'ai toujours le message
SIOCSIFNETMASK: Ne peut attribuer l'adresse demandée

encore merci,
bon we

jip


Avatar
sansflotusspam
jip wrote:
Ooops, ma réponse n'est pas insérée au bon endroit.
Désolé.
jip
bonjour,

Ça rentre doucement ;-)
Après avoir pris connaissance de ta dernière réponse,
ce qui me gêne c'est qu'après le script qemu_prep, un
ifconfig me donne:
eth0 Lien encap:Ethernet HWaddr 00:0C:76:5E:63:13
inet adr:10.0.0.2 Bcast:10.0.0.255 Masque:255.255.255.0
(...)
lo Lien encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
(...)
tap1 Lien encap:Ethernet HWaddr 8A:EB:40:CB:97:0D
inet adr:10.0.0.138 Bcast:10.255.255.255 Masque:255.0.0.0
(...)



tout bon ça, le principal est fait !

J'ai donc bien (chez moi):
WAN par modem/routeur [10.0.0.138] <--> Hôte eth0 [10.0.0.2]
et
Hôte vers Qemu tap1 mais d'office avec 10.0.0.138 (?)



il me semble que ce serait plutôt l'inverse.
quelle est l'adresse du modem/routeur ?
voilà l'idée que je me fais de ta configuration :
un "boîtier internet" relié à UNE bécane, pas d'autre bécane en réseau
local.
Exact ?

si c'est bien le cas, il n'y a qu'une interface ethernet physique active
eth0 sur ta bécane,
le segment 10.0. est bien un segment d'adresses locales (lan),
l'adresse 10.0.0.2 est attribuée par le "boîtier internet" à eth0 par dhcp,
l'adresse 10.0.0.138 est attribuée (via un ifconfig) à tap1 par vde_switch
(au passage, on peut aussi utiliser vdeq, qui est censé être plus "amical"
avec qemu que vde-switch).
et là, c'est tout bon ; il suffit de donner une ip fixe 10.0.0.X à l'OS
émulé, 10.0.0.10 par exemple, de lui indiquer comme passerellee l'adresse
d'eth0 10.0.0.2, et le nat fait le travail.

question subsidiaire : les services samba sont bien actifs ?


Je ne comprends pas à quel moment (et comment) je dois configurer
le segment:
<--> Hôte LAN eth1 192.168.0.1
ni comment modifier:
tap1 [10.0.0.138] en tap1 [192.168.0.10]



chez toi, si ta config est bien comme je crois avoir compris, c'est inutile.
chez moi, la config est calée pour mon réseau local (un serveur non relié au
net, ma machine qui fait passerelle/routeur/pare-feu, et de 1 à 4 machines
sur le lan).
ma bécane a trois cartes ethernet : un lien sur le serveur, un lien sur la
freebox, un lien sur le réseau local ; d'où les 192.168.0. pour la freebox
et les 192.168.10. pour le lan.
chez toi, le 10.0.0. convient parfaitement.

Au lancement de qemu, j'ai toujours le message
SIOCSIFNETMASK: Ne peut attribuer l'adresse demandée



c'est probablement dû au serveur dhcp du modem/routeur qui essaye
d'attribuer une adresse à tap1, ce qui lui est refusé ; mais je peux me
tromper, il faut regarder les messages dans /var/log/messages.


encore merci,
bon we
jip



A+


Avatar
sansflotusspam
sansflotusspam wrote:

Je ne comprends pas à quel moment (et comment) je dois configurer
le segment:
<--> Hôte LAN eth1 192.168.0.1
ni comment modifier:
tap1 [10.0.0.138] en tap1 [192.168.0.10]




réparation d'un oubli, avec excuses :

l'adresse de tap1 est donné par /etc/qemu_ifup

A+




Avatar
jip

Je ne comprends pas à quel moment (et comment) je dois configurer
le segment:
<--> Hôte LAN eth1 192.168.0.1
ni comment modifier:
tap1 [10.0.0.138] en tap1 [192.168.0.10]




réparation d'un oubli, avec excuses :

l'adresse de tap1 est donné par /etc/qemu_ifup



Je tourne (bêtement) en rond; voilà ma config:

modem/routeur [10.0.0.138] <---> hub (car ce modem/routeur n'a qu'une
sortie rj45)

sont connectés au hub:
pc1 ubuntu [10.0.0.2] Hôte de l'image win98se avec qemu
pc2 ubuntu [10.0.0.11]

pour ce qui nous intéresse, j'ai donc:
modem [10.0.0.138] <--> pc1 [10.0.0.2 sur eth0 (carte réseau unique)]

si je suis bien, il faut émuler une seconde carte sur pc1 d'IP [192.168.0.1]
et pc1 servira alors de passerelle au pc émulé (nommons le pc3)
avec pc3 [192.168.0.2/255.255.255.0 Gateway: 192.168.0.1]

1- le lien /dev/tun vers /dev/net/tun existe bien (je l'ai effectivement
créé), les services samba sont actifs et le pacquage vde est installé;
j'ai bien activé le forwarding par:
echo 1 > /proc/sys/net/ipv4/ip_forward


2- je lance le script /etc/qemu_ifup
de cette façon: sudo /etc/qemu_ifup tap 0
-------------- le script/etc/qemu_ifup--------------------
#!/bin/sh
sudo -p "Password for $0:" /sbin/ifconfig $1 192.168.0.0/24
GATEWAY2.168.0.1
/sbin/ifconfig $1 $GATEWAY
---------------------------------------------------

3- ifconfig me dit:

eth0 Lien encap:Ethernet HWaddr 00:0C:76:5E:63:13
inet adr:10.0.0.2 Bcast:10.0.0.255 Masque:255.255.255.0
(...)

lo Lien encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
(...)

tap0 Lien encap:Ethernet HWaddr 1A:D0:8D:0A:F5:42
inet adr:192.168.0.1 Bcast:192.168.0.255 Masque:255.255.255.0
(...)


4- je lance en sudo le script:
#!/bin/bash
# nom du script: /home/public/disques_virtuels/qemu_prep
sudo vde_switch -tap tap0 -daemon
sudo /sbin/chmod 777 /tmp/vde.ctl)

note: en cas de message d'erreur, je le relance (?)

5- je lance le script /home/public/disques_virtuels/lancewin_rz

#!/bin/sh
# export QEMU_AUDIO_DRV=alsa
qemu -k fr -m 512 -localtime -soundhw sb16 -net nic -net
tap -smb /home/public -hda win98se -boot c

6- j'ai le message:
SIOCSIFNETMASK: Ne peut attribuer l'adresse demandée

7- win est lancé et en propriétés réseau, j'ai mis:
IP: 192.168.0.2/255.255.255.0
Passerelle: 192.168.0.1


et: ça marche pas: pc3 ne voit pas pc1, et n'a plus accès au web.

?

Si tu a encore du courage pour m'expliquer où je plante....
je suis preneur.

merci

jip

ps : personne d'autre sur ce forum n'a tenté l'expérience ???




Avatar
sansflotusspam
jip wrote:


Ne te décourage pas, on va y arriver !
Pour mémoire, souviens-toi du vieux Corneille, particulièrement sa pièce
très chrétienne Polyeucte, Acte I, scène I, vers 43 ....

Je ne comprends pas à quel moment (et comment) je dois configurer
le segment:
<--> Hôte LAN eth1 192.168.0.1
ni comment modifier:
tap1 [10.0.0.138] en tap1 [192.168.0.10]
réparation d'un oubli, avec excuses :



l'adresse de tap1 est donné par /etc/qemu_ifup


Je tourne (bêtement) en rond; voilà ma config:

modem/routeur [10.0.0.138] <---> hub (car ce modem/routeur n'a qu'une
sortie rj45)


excellent !

sont connectés au hub:
pc1 ubuntu [10.0.0.2] Hôte de l'image win98se avec qemu
pc2 ubuntu [10.0.0.11]


impecc !

pour ce qui nous intéresse, j'ai donc:
modem [10.0.0.138] <--> pc1 [10.0.0.2 sur eth0 (carte réseau
unique)]


c'est toujours nickel !

si je suis bien, il faut émuler une seconde carte sur pc1 d'IP
[192.168.0.1] et pc1 servira alors de passerelle au pc émulé (nommons le
pc3) avec pc3 [192.168.0.2/255.255.255.0 Gateway: 192.168.0.1]


Mais non ! je n'ai donné les adresses 192.168.xxxx que pour l'exemple, para
que j'ai mis ça comme ça chez moi, mais chez toi le réseau local est en
10.0.0.xxxxx, donc on garde, ce sont aussi des adresses "lan" valides.


1- le lien /dev/tun vers /dev/net/tun existe bien (je l'ai effectivement
créé), les services samba sont actifs et le pacquage vde est installé;
j'ai bien activé le forwarding par:
echo 1 > /proc/sys/net/ipv4/ip_forward


le forwarding, c'est OK, tu as bien mis du nat avec iptables ?


2- je lance le script /etc/qemu_ifup
de cette façon: sudo /etc/qemu_ifup tap 0
-------------- le script/etc/qemu_ifup--------------------
#!/bin/sh
sudo -p "Password for $0:" /sbin/ifconfig $1 192.168.0.0/24
GATEWAY2.168.0.1
/sbin/ifconfig $1 $GATEWAY
---------------------------------------------------


sur ton système, il faut mettre ip de tap1 10.0.0.x, x étant n'importe quoi
entre 3 et 254 sauf 2 et 138 déjà prises,
et gateway = 10.0.0.2, soit l'ip de l'interface reliée au modem/routeur
pour mémoire, c'est le script /etc/qemu_ifup qui donne l'ip à tap1 (ou tap0,
ça dépend du script, mais c'est indifférent au résultat. moi j'ai mis tap1
par ce que j'utilise tap0 pour d'autres OS émulés sous qemu).


3- ifconfig me dit:

eth0 Lien encap:Ethernet HWaddr 00:0C:76:5E:63:13
inet adr:10.0.0.2 Bcast:10.0.0.255 Masque:255.255.255.0
(...)

lo Lien encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
(...)

tap0 Lien encap:Ethernet HWaddr 1A:D0:8D:0A:F5:42
inet adr:192.168.0.1 Bcast:192.168.0.255 Masque:255.255.255.0
(...)


4- je lance en sudo le script:
#!/bin/bash
# nom du script: /home/public/disques_virtuels/qemu_prep
sudo vde_switch -tap tap0 -daemon
sudo /sbin/chmod 777 /tmp/vde.ctl)
note: en cas de message d'erreur, je le relance (?)
5- je lance le script /home/public/disques_virtuels/lancewin_rz


alors ça, c'est un mauvais endroit !
préférer, de très loin, /usr/bin ou /usr/local/bin, pour plein de bonnes
raisons

#!/bin/sh
# export QEMU_AUDIO_DRV=alsa
qemu -k fr -m 512 -localtime -soundhw sb16 -net nic -net
tap -smb /home/public -hda win98se -boot c

6- j'ai le message:
SIOCSIFNETMASK: Ne peut attribuer l'adresse demandée


2 raisons probables :
1) le serveur dhcp du modem/routeur qui est jeté
2) le segment de réseau 192.168..... n'est pas connu de network & co, vu que
ton lan est en 10.0....

7- win est lancé et en propriétés réseau, j'ai mis:
IP: 192.168.0.2/255.255.255.0
Passerelle: 192.168.0.1


voir plus haut : ton lan étant en 10.0...., il faut rester en 10.0.....

et: ça marche pas: pc3 ne voit pas pc1, et n'a plus accès au web.
?


normal ! c'est ma faute !
j'ai bêtement donné les indications en 192.168..... alors que j'aurais du
(et pu) convertir dès le départ en 10.0.....
Souffrez, Monsieur, que je dépose platement mes plus humbles excuses à vos
pieds (négligés) .....

Osons espérer une amélioration ! et comme disait Monseigneur le Duc
d'Orange :
"il n'est pas nécessaire d'espérer pour entreprendre, ni de réussir pour
persévérer"

A+

Si tu a encore du courage pour m'expliquer où je plante....
je suis preneur.

merci

jip

ps : personne d'autre sur ce forum n'a tenté l'expérience ???






Avatar
jip
sansflotusspam wrote:


Pour mémoire, souviens-toi du vieux Corneille, particulièrement sa pièce
très chrétienne Polyeucte, Acte I, scène I, vers 43 ....
sûr ?   ;-)


(...)

j'ai bien activé le forwarding par:
 echo 1 > /proc/sys/net/ipv4/ip_forward
 

le forwarding, c'est OK, tu as bien mis du nat avec iptables ?


"Mettre du nat avec iptables"
ah, l'horreur...
je viens de m'y replonger mais je suis largué: mon modem/routeur
fait parefeu et je m'en remet à lui: jongler avec les iptables
m'a toujours dépassé (ben oui, je l'avoue.... je suis le seul ?).

J'ai bien essayé quelques trucs dans le fichier
/etc/network/if-pre-up/ipatables-start
et en relançant par /etc/init.d/networking restart
mais sans résultat.
 
=====================================
Il me semble que le fichier /etc/qemu_ifup d'origine est bizarre;
ne faudrait-il pas mieux seulement ?
#!/bin/sh
sudo -p "Password for $0:" /sbin/ifconfig tap0 10.0.0.3


===================================== En résumé, j'ai à gérer les fichiers:
/etc/network/if-pre-up.d/iptables-start
(je sèche lamentablement car les règles viennent
s'ajouter à ce qui existe déjà via le modem/routeur)

/etc/network/interfaces
j'y ai ajouté:
up echo "1" > /proc/sys/net/ipv4/ip_forward
auto tap0
iface tap0 inet static
address 10.0.0.3
netmask 255.255.255.0
broadcast 10.0.0.255

/etc/qemu-ifup
#!/bin/sh
sudo -p "Password for $0:" /sbin/ifconfig tap0 10.0.0.3

qemu_prep
#!/bin/bash
sudo vde_switch -tap tap0 -daemon
sudo chmod 777 /tmp/vde.ctl

L'articulation entre ces fichiers n'est pas claire dans mon
esprit.

Le lancement de qemu avec l'image ne pose pas problème.


Pour mémoire:
modem/routreur 10.0.0.138 <--> hub <--> pc1 avec eth0 10.0.0.2
il faut sur pc1 ajouter tap0 10.0.0.3
pour avoir tap0 10.0.0.3 <--> pc3 (virtuel) 10.0.0.4

Sous le win de pc3 via qemu, on aura IP 10.0.0.1/255.255.255.0
et passerelle 10.0.0.3 ou 10.0.0.2 ?

Je suis vraiment désolé d'encombrer de cette façon le forum.
Jetez moi si j'abuse ;-(

jip


Avatar
sansflotusspam
jip wrote:

Pour mémoire, souviens-toi du vieux Corneille, particulièrement sa pièce
très chrétienne Polyeucte, Acte I, scène I, vers 43 ....
sûr ?   ;-)



"Car le désir s'accroît quand l'effet se recule"


j'ai bien activé le forwarding par:
echo 1 > /proc/sys/net/ipv4/ip_forward
le forwarding, c'est OK, tu as bien mis du nat avec iptables ?



"Mettre du nat avec iptables"
ah, l'horreur...
je viens de m'y replonger mais je suis largué: mon modem/routeur
fait parefeu et je m'en remet à lui: jongler avec les iptables
m'a toujours dépassé (ben oui, je l'avoue.... je suis le seul ?).
J'ai bien essayé quelques trucs dans le fichier
/etc/network/if-pre-up/ipatables-start
et en relançant par /etc/init.d/networking restart
mais sans résultat.
=====================================
Le modem/routeur faisant pare-feu (enfin, on espère), quelques règles de

base suffisent pour le forward (tu verras le nat et le dnat plus tard ...):

# Chargement des modules iptables
modprobe iptable_nat
modprobe ip_nat_irc
modprobe iptable_filter
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ipt_state
modprobe iptable_mangle
modprobe iptables_conntrack_rtsp

# On accepte tout ce qui se passe sur lo
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT

# On accepte tout ce qui se passe sur le reseau local 10.0.0.0
/sbin/iptables -A INPUT -s 10.0.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -s 10.0.0.0/24 -j ACCEPT
/sbin/iptables -A FORWARD -s 10.0.0.0/24 -j ACCEPT

# On active l'IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# On masque les connexions
/sbin/iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE

attention : il n'y a aucun pare-feu là dedans !

Il me semble que le fichier /etc/qemu_ifup d'origine est bizarre;
ne faudrait-il pas mieux seulement ?
#!/bin/sh
sudo -p "Password for $0:" /sbin/ifconfig tap0 10.0.0.3
=====================================

on peut, mais ça oblige les users à donner le password de root, et ça je

n'aime pas trop. je préfère passer par sudoers qui détermine les users
autorisés spécifiquement pour qemu, et dispense de donner le password de
root.


En résumé, j'ai à gérer les fichiers:
/etc/network/if-pre-up.d/iptables-start
(je sèche lamentablement car les règles viennent
s'ajouter à ce qui existe déjà via le modem/routeur)


voir lea-linux et Maître Gérard Delafond, plus un paquet d'autres docs sur
le net ; le sujet est abondant.

/etc/network/interfaces
j'y ai ajouté:
up echo "1" > /proc/sys/net/ipv4/ip_forward
auto tap0
iface tap0 inet static
address 10.0.0.3
netmask 255.255.255.0
broadcast 10.0.0.255


ça, je ne sais pas, je n'ai jamais modifié directement ces fichiers.
normalement, le forwarding se fait par un script "iptables", ou à la rigueur
par une commande directe dans rc.local
en revanche, j'imagine un léger problème :
ce script s'exécute au démarrage du système à un moment ou tap0 n'existe pas
encore ... que peut-il se passer ? that's a question


/etc/qemu-ifup
#!/bin/sh
sudo -p "Password for $0:" /sbin/ifconfig tap0 10.0.0.3

qemu_prep
#!/bin/bash
sudo vde_switch -tap tap0 -daemon
sudo chmod 777 /tmp/vde.ctl

L'articulation entre ces fichiers n'est pas claire dans mon
esprit.


qemu_prep construit l'interface tap0 (tap1, tap2, etc, selon besoins) et
active la socket vde.ctl.
qemu_ifup lui attribue une ip.

on pourrait tout à fait mettre toutes ces commandes dans le même script,
j'ai essayé, mais il y a eu des délais trop rapides entre les commandes.


Le lancement de qemu avec l'image ne pose pas problème.
Pour mémoire:
modem/routeur 10.0.0.138 <--> hub <--> pc1 avec eth0 10.0.0.2
il faut sur pc1 ajouter tap0 10.0.0.3
pour avoir tap0 10.0.0.3 <--> pc3 (virtuel) 10.0.0.4

Sous le win de pc3 via qemu, on aura IP 10.0.0.1/255.255.255.0
et passerelle 10.0.0.3 ou 10.0.0.2 ?


passerelle 10.0.0.2 bien sûr, c'est la patte sur le routeur.

Je suis vraiment désolé d'encombrer de cette façon le forum.
Jetez moi si j'abuse ;-(


il ne faut jamais écrire ça, d'aucuns pourraient le faire ...

jip


A+