#1 Le 22/11/2011, à 10:05
- Sicabol
[Résolu] Créer un sous-réseau sur sa propre machine
Bonjour,
pour émuler un environnement de production, j'ai installé sous VirtualBox deux serveurs Ubuntu sur mon ordinateur (lui-même sous Ubuntu bien entendu ;-)). Pour que les deux serveurs puissent communiquer entre eux, il m'a fallu tâtonner dans les options réseau, et voici ce que j'ai fait :
Sous Virtualbox, dans la partie Configuration/Réseau de chaque machine virtuelle, j'ai choisi "Accès par pont".
Au niveau de chaque serveur, j'ai indiqué une adresse IP fixe de type 192.168.0.X, utilisant comme passerelle ma freebox (192.168.0.254). Cela marche nickel, les deux serveurs se voient, accèdent à Internet et voient ma propre machine sur son IP locale.
Le hic est que pour que ça marche, il faut que ma machine soit connectée à la freebox… Or (mais c'est une autre histoire ;-)) j'ai de gros problèmes de connexions ces derniers temps, ce qui fait que je peux lancer mes machines chacune de leur côté mais le réseau ne marche pas…
Je pense que la solution serait que ce soit ma propre machine et non la freebox qui serve de passerelle, mais j'avoue être un peu perdu sur comment paramétrer tout cela. Quelqu'un pourrait-il m'aider ?
Merci !
Dernière modification par Sicabol (Le 09/12/2011, à 18:21)
Hors ligne
#2 Le 22/11/2011, à 10:37
- redo_fr
Re : [Résolu] Créer un sous-réseau sur sa propre machine
Salut,
je ne connais pas très bien la configuration de VirtualBox, mais je pense que pour ce que tu veux faire, il faut plutôt une configuration par NAT (ou réseau privé), et non pas par pont. De cette manière, tes VM seront isolées sur leur propre réseau (différent de 192.168.0.) et ta machine servira de routeur vers ton réseau physique 192.168.0 (et donc vers Internet)
Il n'y a pas de mauvais outils, il n'y a que de mauvais ouvriers
- papy -
Personnellement, je crois que faire des procès est un signe que les affaires vont mal. Je ne dis pas que Microsoft va mal, ce n'est qu'un signe, pas un indicateur...
- Linus Torvalds -
Hors ligne
#3 Le 22/11/2011, à 10:54
- src
Re : [Résolu] Créer un sous-réseau sur sa propre machine
Si tu mets deux machines en NAT je ne sais pas si elles peuvent communiquer ensemble, mais c'est à essayer.
Sinon il y a le réseau privé hôte, mais si tu veux un accès à internet il va falloir faire un peu de routage.
Actuellement sur Manjaro Xfce (amd64)
Hors ligne
#4 Le 22/11/2011, à 10:57
- Sicabol
Re : [Résolu] Créer un sous-réseau sur sa propre machine
il faut plutôt une configuration par NAT (ou réseau privé), et non pas par pont. De cette manière, tes VM seront isolées sur leur propre réseau (différent de 192.168.0.) et ta machine servira de routeur vers ton réseau physique 192.168.0 (et donc vers Internet)
Comme l'a indiqué src, j'avais tenté le NAT (par défaut), les deux machines avaient bien accès à Internet mais ne se voyaient pas l'une et l'autre…
Hors ligne
#5 Le 22/11/2011, à 11:20
- redo_fr
Re : [Résolu] Créer un sous-réseau sur sa propre machine
Vérifies que tes machines sont bien dans le même sous-réseau et pas chacune dans son sous-réseau
Par exemple (pour des netmask en 255.255.255.0 ou /24) :
Bonne configuration
VM1: 192.168.1.1
VM2: 192.168.1.2
Mauvaise configuration
VM1: 192.168.1.1
VM2: 192.168.2.1
Il faut aussi que ta machine hôte ait "une patte" dans ce sous-réseau et une autre sur ton réseau physique et router entre les deux interfaces.
D'après cette doc, il te faut la configuration "réseau interne"
Il n'y a pas de mauvais outils, il n'y a que de mauvais ouvriers
- papy -
Personnellement, je crois que faire des procès est un signe que les affaires vont mal. Je ne dis pas que Microsoft va mal, ce n'est qu'un signe, pas un indicateur...
- Linus Torvalds -
Hors ligne
#6 Le 22/11/2011, à 16:08
- Sicabol
Re : [Résolu] Créer un sous-réseau sur sa propre machine
Finalement, je réussis à faire plein de choses, mais pas ce que je veux ;-)
Soit j'ai ma connexion internet Free qui marche, et donc mon paramétrage par pont marche nickel (mais il faut que je sois chez moi, car si je vais chez quelqu'un d'autre il y a le risque de conflits d'IP), soit elle ne marche pas et donc il faut que j'aie un réseau "interne" à ma machine, mais les machines virtuelles n'ont pas accès à internet via ma connexion 3G par exemple…
Finalement il faudrait que mon ordi puisse servir de proxy pour les deux machines virtuelles… mais bon, la question devrait peut-être être posée dans la section "réseau" du forum dans ce cas ! ;-)
Merci pour toute info !
Hors ligne
#7 Le 22/11/2011, à 16:27
- redo_fr
Re : [Résolu] Créer un sous-réseau sur sa propre machine
[...]mais les machines virtuelles n'ont pas accès à internet via ma connexion 3G par exemple[...]
Si, si tu configures ta machine hôte (physique) en passerelle/routeur, d'une part puis les routes par défaut des machines virtuelles d'autre part.
Par exemple, si ton réseau interne est
192.168.1.0/24
ta machine hôte doit avoir une adresse virtuelle sur ce réseau (ex: 192.168.1.254) et être configurée pour transférer (forward) les paquets
sudo echo "1" > /proc/sys/net/ipv4/ip_forward
tes VM: 192.168.1.1 et 192.168.1.2
sur chacune d'elle configurer les passerelles par défaut
ip r add default via 192.168.1.254 dev eth0
Pour terminer, il faut configurer ton firewall (sur la machine hôte) pour faire du NAT (ici, cela dépend de ton firewall)
Il n'y a pas de mauvais outils, il n'y a que de mauvais ouvriers
- papy -
Personnellement, je crois que faire des procès est un signe que les affaires vont mal. Je ne dis pas que Microsoft va mal, ce n'est qu'un signe, pas un indicateur...
- Linus Torvalds -
Hors ligne
#8 Le 23/11/2011, à 11:03
- Sicabol
Re : [Résolu] Créer un sous-réseau sur sa propre machine
Merci pour ta réponse redo_fr… Mais je ne m'en sors toujours pas !
J'avoue avoir des problèmes avec la notion d'IP virtuelles… Actuellement mon ordi est connecté à ma Freebox via ethernet. La freebox a pour IP 192.168.0.254, mon ordi 192.168.0.19 (IP fixe) et a pour passerelle la freebox.
Le réseau interne à mon ordi où doivent être les deux VMs est au format 192.168.1.X. J'ai indiqué sous VirtualBox que chaque machine est sous le mode "réseau privé hôte" avec pour nom de réseau "vboxnet0". J'ai édité /etc/network/interfaces pour afficher ceci (les deux serveurs ayant comme IP 192.168.1.4 et 192.168.1.5) :
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.5
broadcast 192.168.1.255
netmask 255.255.255.0
gateway 192.168.1.6
J'ai bien lancé la commande suivante sur mon ordi :
sudo echo "1" > /proc/sys/net/ipv4/ip_forward
Maintenant je bute sur le paramétrage de l'IP virtuelle. Je pensais qu'il suffisait d'ajouter une IP à ma connection filaire eth0 dans les paramètres de connexions, mais cela fait foirer ma connexion internet ;-)
Merci pour toute info !
Hors ligne
#9 Le 23/11/2011, à 11:31
- Sicabol
Re : [Résolu] Créer un sous-réseau sur sa propre machine
Bon, j'avance ;-)
Finalement je ne pense pas que l'histoire de l'IP virtuelle soit nécessaire. En effet, en passant par le mode "Réseau privé hôte" cela crée une carte réseau virtuelle sur l'ordi hôte (vboxnet0) avec son adresse IP à 192.168.56.1. J'ai donc juste modifié les /etc/network/interfaces des deux VMs pour avoir ceci :
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.56.2
broadcast 192.168.56.255
netmask 255.255.255.0
gateway 192.168.56.1
Dorénavant les trois machines (l'hôte et les 2 VMs) se voient. Par contre, les deux VMs n'ont pas accès à l'extérieur du réseau… Merci pour toute aide !
Hors ligne
#10 Le 23/11/2011, à 13:04
- redo_fr
Re : [Résolu] Créer un sous-réseau sur sa propre machine
Vérifies les routes par défaut de tes VMs
Tu devrais avoir quelque chose comme cela
ip r
default via 192.168.56.1 dev eth0
Sinon, configure la à la main
sudo ip r add default via 192.168.56.1
Il n'y a pas de mauvais outils, il n'y a que de mauvais ouvriers
- papy -
Personnellement, je crois que faire des procès est un signe que les affaires vont mal. Je ne dis pas que Microsoft va mal, ce n'est qu'un signe, pas un indicateur...
- Linus Torvalds -
Hors ligne
#11 Le 23/11/2011, à 17:59
- src
Re : [Résolu] Créer un sous-réseau sur sa propre machine
Les deux machines ont bien accès à l'extérieur vu que ton hote est spécifié comme passerelle, et que tu as activé l'ip forwarding. En revanche, lorsque l'extérieur tente de répondre, il ne connait pas comment joindre tes machines. Il faut que tu active le NAT sur l'hote (avec iptables). Comme ça les requetes adressées à l'extérieur sont envoyées au nom de l'hote (meme si ce n'est pas lui) et il reçoit également les réponses qu'il transmettra aux VM.
J'ai pas de Linux sous la main, domage car j'avais la commande pour faire ça. Chercher "nat prerouting masquerade" normalement ça tient en 1 ligne.
Actuellement sur Manjaro Xfce (amd64)
Hors ligne
#12 Le 23/11/2011, à 20:41
- Sicabol
Re : [Résolu] Créer un sous-réseau sur sa propre machine
Comme un benêt, j'ai voulu suivre les explications données sur un site : http://ilconnettivo.wordpress.com/2011/ … etworking/
Je ne sais pas si j'ai fait une mauvaise manip' ou pas, ou si c'est à cause de la mise à jour du noyau Linux d'aujourd'hui, mais depuis que j'ai fait les modifs Ubuntu lance des messages d'erreur au lancement de LightDM et ne me donne pas la main (je suis obligé de passer par le mode dépannage). Mais ça c'est une autre histoire ;-)
Le coup des iptables est vraiment flou pour moi, j'ai du mal à trouver des infos claires là-dessus (et faire des copier-coller à l'aveugle comme j'ai pu faire juste avant, je ne referai plus ;-)).
En tout cas merci de m'aider ! (je vais poster mon problème de démarrage sur le bon forum)
Hors ligne
#13 Le 23/11/2011, à 23:39
- redo_fr
Re : [Résolu] Créer un sous-réseau sur sa propre machine
Voici les deux règles iptables pour le NAT
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface eth1 -j ACCEPT
eth0 et eth1 sont à adapter en fonction des tes paramètres perso.
eth0 doit correspondre à la carte physique de ton serveur hôte
eth1 doit être la carte virtuelle que VirtualBox a crée pour le réseau interne
Enfin, il faudra placer ces deux règles dans un script lancé au démarrage ou lorsque tu lances VirtualBox.
Il n'y a pas de mauvais outils, il n'y a que de mauvais ouvriers
- papy -
Personnellement, je crois que faire des procès est un signe que les affaires vont mal. Je ne dis pas que Microsoft va mal, ce n'est qu'un signe, pas un indicateur...
- Linus Torvalds -
Hors ligne
#14 Le 09/12/2011, à 18:20
- Sicabol
Re : [Résolu] Créer un sous-réseau sur sa propre machine
Bonjour,
après quelques déboires avec mon ordi, j'avais mis de côté mes essais de paramétrage du réseau des machines virtuelles… Me revoila donc en force ;-)
Je récapitule ainsi tout ce que j'ai fait :
Dans VirtualBox, pour chaque machine virtuelle, j'ai choisi le mode d'accès "Réseau privé hôte". Cela crée donc la carte virtuelle vboxnet0 sur ma propre machine. L'adresse IP fournie par défaut par Virtualbox à ma machine hôte est 192.168.56.1.
Sous chaque machine virtuelle, j'ai modifié /etc/network/interfaces pour indiquer des adresses IP fixes dans le sous-réseau 192.168.56.X :
auto eth0
iface eth0 inet static
address 192.168.56.2
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
gateway 192.168.56.1
La passerelle est bien ma machine hôte.
J'ai activé l'IP forwarding sur ma machine hôte en modifiant /etc/sysctl.conf et en décommentant la ligne
net.ipv4.ip_forward = 1
Après avoir redémarré ma machine, les serveurs virtuels ont accès à internet si je lance sur la machine hôte les deux lignes suivantes :
sudo iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
sudo iptables --append FORWARD --in-interface vboxnet0 -j ACCEPT
Merci pour toutes les infos !
Dernière modification par Sicabol (Le 29/08/2012, à 09:50)
Hors ligne
#15 Le 29/08/2012, à 09:45
- Sicabol
Re : [Résolu] Créer un sous-réseau sur sa propre machine
Petit ajout en passant…
Si le serveur n'a pas accès au web (du moins pas par les noms d'hôtes), il peut être utile d'ajouter des serveurs DNS à /etc/network/interfaces (sous gateway par exemple). Ici avec les serveurs DNS de Free :
dns-nameservers 212.27.40.240 212.27.40.241
Dernière modification par Sicabol (Le 29/08/2012, à 09:53)
Hors ligne