« Virtualbox : Créer un Réseau Local Virtuel » : différence entre les versions
mAucun résumé des modifications |
m (Suppression catégorie "Logiciels" (inappropriée)) |
||
(26 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
'' | ''Cette page est une adaptation du postage sur le [https://www.debian-fr.xyz/viewtopic.php?p=21676#p21676 forum]'' | ||
== But == | == But == | ||
Ligne 24 : | Ligne 23 : | ||
C'est à dire que l'on rajoute une interface réseau (virtuelle) à notre PC. | C'est à dire que l'on rajoute une interface réseau (virtuelle) à notre PC. | ||
Cette nouvelle interface va être utilisée pour | Cette nouvelle interface va être utilisée pour connecter le PC aux machines virtuelles<br> | ||
qui auront été configurées pour ce réseau local virtuel. | qui auront été configurées pour ce réseau local virtuel. | ||
Ligne 32 : | Ligne 31 : | ||
''Cela reste à tester, mais il doit être possible de créer plusieurs réseaux virtuels distincts,<br> | ''Cela reste à tester, mais il doit être possible de créer plusieurs réseaux virtuels distincts,<br> | ||
car Virtualbox supporte la création de plusieurs de ces | car Virtualbox supporte la création de plusieurs de ces interfaces virtuelles.'' | ||
== Mise en pratique == | == Mise en pratique == | ||
Ligne 43 : | Ligne 41 : | ||
'''Voici le réseau qui va être mis en place :''' | '''Voici le réseau qui va être mis en place :''' | ||
http://pix.toile-libre.org/upload/img/1576011133.png< | [http://pix.toile-libre.org/upload/img/1576011133.png Schéma : Réseau local virtuel (virtualbox) composé de l'hôte (10.0.0.1) utilisant l'interface vboxnet0 connecté à 2 machines virtuelles VM1 (10.0.0.2) et VM2 (10.0.0.3) connectées via leurs interfaces enp0s8] | ||
'' | |||
=== Création de l'interface virtuelle sur le PC (hôte) === | |||
'''Dans l'interface graphique de Virtualbox''' | |||
Ouvrir le '''Gestionnaire de réseau hôte''' (<code><nowiki>[Ctrl+H]</nowiki></code>) => bouton : '''"Créer"''' | |||
Si c'est la 1ère interface créée, elle est nommée : <code>vboxnet0</code> | |||
Cocher : '''Configurer manuellement''' | |||
et configurer comme suit : | |||
'''Interface''' | |||
* IPv4 : <code>10.0.0.1</code> | |||
* Masque IPv4 : <code>255.255.255.0</code> | |||
* IPv6 : ''laisser la valeur pré-assignée'' | |||
* longueur préfixe : <code>64</code> | |||
'''Server DHCP''' | |||
* Cocher <code>Activer</code> | |||
* Adresse serveur : <code>10.0.0.100</code> | |||
* Masque serveur : <code>255.255.255.0</code> | |||
* Limite inférieure : <code>10.0.0.101</code> | |||
* Limite supérieure : <code>10.0.0.254</code> | |||
'' | puis '''"Appliquer"''' | ||
ce qui donne les captures suivantes : | |||
[http://pix.toile-libre.org/upload/img/1576012302.png Capture : Virtualbox Gestionnaire de réseau hôte Créer interface vboxnet0 et configuration] | |||
[http://pix.toile-libre.org/upload/original/1576012412.png Capture : Virtualbox Gestionnaire de réseau hôte config DHCP interface vboxnet0] | |||
à ce stade l'interface est créée,<br> | à ce stade l'interface est créée,<br> | ||
les commandes : | les commandes : | ||
< | |||
et | <pre>$ sudo ifconfig -a</pre> | ||
< | |||
montre bien : < | et | ||
<pre>ls /proc/net/dev_snmp6/</pre> | |||
montre bien : <pre>vboxnet0</pre> | |||
< | |||
< | === Ajouter les VM au réseau === | ||
Ici les 2 VM (serveurs web) ont déjà été créées | |||
La configuration se fait par l' | * <code>debwebserv1</code> | ||
* <code>debwebserv2</code> | |||
sélectionnée | |||
'''VM arrêtée''' | |||
La configuration se fait par l''''interface de configuration de la machine sélectionnée dans la liste des VM''' : | |||
déjà configurée en < | '''Configuration''' ( <code><nowiki>[Ctrl+S]</nowiki></code> ) >> '''Réseau''' | ||
==== Interface 1 ==== | |||
Par défaut est déjà configurée en : <code>Réseau NAT</code> ; ''elle permet l'accès à Internet'' | |||
[http://pix.toile-libre.org/upload/img/1576000449.png Capture : VM - Configuration : Réseau > Interface 1 : Réseau NAT] | |||
Normalement cela fonctionne dès la création de la VM,<br> | Normalement cela fonctionne dès la création de la VM,<br> | ||
donc on | donc on ne devrait pas y toucher. | ||
==== Interface 2 ==== | |||
réseau virtuel basé sur < | |||
Va servir d''''Accès au réseau virtuel''' basé sur : <code>vboxnet0</code> | |||
pour cela : | pour cela : | ||
* Cocher : <code>Activer</code> | |||
* Sélectionner le mode : <code>Réseau privé</code> | |||
* dans ce mode on choisit ''(Nom)'' : <code>vboxnet0</code> | |||
* Type d'interface : <code>PCnet-FAST III</code> ''(recommandée pour Linux ; mais les autres types doivent aussi fonctionner)'' | |||
* Promiscuité : ''indifférente (à vérifier)'' | |||
* '''MAC''' : ''par défaut ou nouvelle aléatoire si nécessaire'' | |||
* Câble branché : '''coché''' | |||
mais les autres types doivent aussi fonctionner | |||
ça donne : | |||
vérifier) | |||
[http://pix.toile-libre.org/upload/original/1576000873.png Capture : VM - Configuration : Réseau > Interface 2 : Réseau privé hôte : vboxnet0] | |||
Les 2 VM sont configurées à l'identique '''avec des MAC différentes''' | |||
ça donne : | ==== VM configuration "interfaces" ==== | ||
'''Lancer la VM 1'''<br> | |||
et<br> | |||
configurer les interfaces réseau avec p.ex : | |||
<pre>$ sudo nano /etc/network/interfaces</pre> | |||
configurer | pour obtenir quelque-chose dans ce genre : | ||
< | |||
pour obtenir quelque-chose dans ce genre : | <pre> | ||
# This file describes the network interfaces available on your system | |||
<pre> | |||
# and how to activate them. For more information, see interfaces(5). | # and how to activate them. For more information, see interfaces(5). | ||
Ligne 170 : | Ligne 163 : | ||
address 10.0.0.2 | address 10.0.0.2 | ||
netmask 255.255.255.0 | netmask 255.255.255.0 | ||
</pre> | |||
la commande : | la commande : | ||
< | |||
permet de vérifier le nom des interfaces existantes. | <pre>ls /proc/net/dev_snmp6/</pre> | ||
Dans le schéma du réseau joint au début de cet exemple les IP du | |||
réseau sont : | permet de vérifier le nom des interfaces existantes. | ||
Dans le schéma du réseau joint au début de cet exemple les IP du réseau sont : | |||
<ul> | <ul> | ||
<li><span class="c2">10.0.0.1</span> pour le PC → <span class= | <li><span class="c2">10.0.0.1</span> pour le PC → <span class= | ||
Ligne 185 : | Ligne 181 : | ||
"c2">debwebserv2</span></li> | "c2">debwebserv2</span></li> | ||
</ul> | </ul> | ||
Ici | |||
Ici on a opté pour des '''IP static''' car c'est ce qui semble le plus simple d'utilisation. | |||
Une fois le fichier < | |||
enregistré,<br> | Une fois le fichier <code>/etc/network/interfaces</code> enregistré,<br> | ||
il faudra redémarrer le service réseau pour que la config soit | il faudra redémarrer le service réseau pour que la config soit | ||
prise en compte,<br> | prise en compte,<br> | ||
avec : | avec : | ||
< | |||
networking.service</ | <code>$ sudo systemctl restart networking.service</code> | ||
On refait la même opération sur la | |||
2 | |||
On refait la même opération sur la '''VM 2''' en lui assignant : <code>10.0.0.3</code> | |||
Maintenant, si tout s'est bien passé,<br> | Maintenant, si tout s'est bien passé,<br> | ||
les VM devraient être accessibles depuis le PC avec respectivement | les VM devraient être accessibles depuis le PC avec respectivement : | ||
: | |||
* <code>10.0.0.2</code> pour la VM 1 → <code>debwebserv1</code> | |||
< | * <code>10.0.0.3</code> pour la VM 2 → <code>debwebserv2</code> | ||
< | p.ex avec : | ||
<code>$ ssh toto@10.0.0.2</code> | |||
p.ex : < | |||
ou | ou | ||
à condition que le | <code>$ lynx 10.0.0.3</code> | ||
soit fonctionnel sur | |||
et qu'un | à condition que le '''serveur SSH''' soit fonctionnel sur '''VM 1'''<br> | ||
opérationnel sur | et qu'un '''serveur HTTP''' soit opérationnel sur '''VM 2''' | ||
Pour finir | |||
les VM | ==== Accès aux sites web sur VM ==== | ||
alors sur le PC | Pour finir, si on veut pouvoir accéder depuis un navigateur du PC <br> | ||
aux sites web servis par les VM, | |||
en ajoutant des lignes correspondant aux domaines des sites | |||
alors on pourra éditer sur le PC : <code>/etc/hosts</code> | |||
en ajoutant des lignes correspondant aux domaines des sites,<br> | |||
p.ex : | |||
<pre> | |||
<pre> | |||
# VM de VirtualBox | |||
# Utiliser 10.0.0.2 pour tous les domaines sur debwebserv1 | # Utiliser 10.0.0.2 pour tous les domaines sur debwebserv1 | ||
10.0.0.2 debwebserv1.virt debwebserv1 | 10.0.0.2 debwebserv1.virt debwebserv1 | ||
Ligne 231 : | Ligne 231 : | ||
10.0.0.3 debwebserv2.virt debwebserv2 | 10.0.0.3 debwebserv2.virt debwebserv2 | ||
10.0.0.3 site-perso.virt site-perso | 10.0.0.3 site-perso.virt site-perso | ||
</pre> | |||
Ce qui permet de passer ces adresses directement dans le navigateur | Ce qui permet de passer ces adresses directement dans le navigateur,<br> | ||
p.ex:<br> | p.ex:<br> | ||
< | <pre>$ lynx http://site-perso.virt</pre> | ||
pour avoir un aperçu du résultat de notre site perso en projet. | |||
< | |||
== Problèmes == | |||
=== Interface virtuelle inactive === | |||
''Si tout ce qui précède a été fait correctement,<br> | |||
et malgré cela, on ne parvient pas à connecter le PC sur le réseau virtuel.'' | |||
L'interface virtuelle <code>vboxnet0</code> n'est peut-être pas active. | |||
'''Vérification''' | |||
Si : | |||
<pre>$ sudo ifconfig -a</pre> | |||
affiche une section correspondant à <code>vboxnet0</code> — ''où le N° peut être autre que 0 selon le cas particulier''<br> | |||
(sinon chercher ailleurs la cause du problème). | |||
et que : | |||
<pre>$ sudo ifconfig</pre> | |||
ne l'affiche pas,<br> | |||
c'est que l''''interface n'est pas active'''. | |||
Passer la commande : | |||
<pre> $ sudo ifconfig vboxnet0 up</pre> | |||
pour l'activer. | |||
Maintenant ça devrait fonctionner. | |||
[[ | [[Catégorie:Virtualisation]] | ||
Dernière version du 26 janvier 2020 à 12:17
Cette page est une adaptation du postage sur le forum
But
Créer un réseau local virtuel
entre l'Hôte (notre PC qui fait tourner Virtualbox)
et les VM (machines virtuelles)
Cela p.ex pour utiliser des VM "serveur"
afin de simuler un hébergement distant
pour développer des sites web
dans des conditions assez similaires à la réalité
— sur un vrai serveur (distant) connecté à Internet.
Principe de la mise en place du réseau
ATTENTION : Cette notion est capitale !
Virtualbox (plateforme de virtualisation)
permet de créer sur le PC (hôte) physique des cartes réseau virtuelles.
C'est à dire que l'on rajoute une interface réseau (virtuelle) à notre PC.
Cette nouvelle interface va être utilisée pour connecter le PC aux machines virtuelles
qui auront été configurées pour ce réseau local virtuel.
Le réseau virtuel est donc composé du PC et d'au moins une VM
Voilà pour le principe de base.
Cela reste à tester, mais il doit être possible de créer plusieurs réseaux virtuels distincts,
car Virtualbox supporte la création de plusieurs de ces interfaces virtuelles.
Mise en pratique
Tout ce qui suit, sera réalisé dans l'interface graphique de Virtualbox
mais cela doit être également réalisable en ligne de commande.
Voici le réseau qui va être mis en place :
Création de l'interface virtuelle sur le PC (hôte)
Dans l'interface graphique de Virtualbox
Ouvrir le Gestionnaire de réseau hôte ([Ctrl+H]
) => bouton : "Créer"
Si c'est la 1ère interface créée, elle est nommée : vboxnet0
Cocher : Configurer manuellement
et configurer comme suit :
Interface
- IPv4 :
10.0.0.1
- Masque IPv4 :
255.255.255.0
- IPv6 : laisser la valeur pré-assignée
- longueur préfixe :
64
Server DHCP
- Cocher
Activer
- Adresse serveur :
10.0.0.100
- Masque serveur :
255.255.255.0
- Limite inférieure :
10.0.0.101
- Limite supérieure :
10.0.0.254
puis "Appliquer"
ce qui donne les captures suivantes :
Capture : Virtualbox Gestionnaire de réseau hôte Créer interface vboxnet0 et configuration
Capture : Virtualbox Gestionnaire de réseau hôte config DHCP interface vboxnet0
à ce stade l'interface est créée,
les commandes :
$ sudo ifconfig -a
et
ls /proc/net/dev_snmp6/
montre bien :
vboxnet0
Ajouter les VM au réseau
Ici les 2 VM (serveurs web) ont déjà été créées
debwebserv1
debwebserv2
VM arrêtée
La configuration se fait par l'interface de configuration de la machine sélectionnée dans la liste des VM :
Configuration ( [Ctrl+S]
) >> Réseau
Interface 1
Par défaut est déjà configurée en : Réseau NAT
; elle permet l'accès à Internet
Capture : VM - Configuration : Réseau > Interface 1 : Réseau NAT
Normalement cela fonctionne dès la création de la VM,
donc on ne devrait pas y toucher.
Interface 2
Va servir d'Accès au réseau virtuel basé sur : vboxnet0
pour cela :
- Cocher :
Activer
- Sélectionner le mode :
Réseau privé
- dans ce mode on choisit (Nom) :
vboxnet0
- Type d'interface :
PCnet-FAST III
(recommandée pour Linux ; mais les autres types doivent aussi fonctionner) - Promiscuité : indifférente (à vérifier)
- MAC : par défaut ou nouvelle aléatoire si nécessaire
- Câble branché : coché
ça donne :
Capture : VM - Configuration : Réseau > Interface 2 : Réseau privé hôte : vboxnet0
Les 2 VM sont configurées à l'identique avec des MAC différentes
VM configuration "interfaces"
Lancer la VM 1
et
configurer les interfaces réseau avec p.ex :
$ sudo nano /etc/network/interfaces
pour obtenir quelque-chose dans ce genre :
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug enp0s3 iface enp0s3 inet dhcp # Carte réseau N°2 activée par toto auto enp0s8 iface enp0s8 inet static address 10.0.0.2 netmask 255.255.255.0
la commande :
ls /proc/net/dev_snmp6/
permet de vérifier le nom des interfaces existantes.
Dans le schéma du réseau joint au début de cet exemple les IP du réseau sont :
- 10.0.0.1 pour le PC → vboxnet0
- 10.0.0.2 pour la VM 1 → debwebserv1
- 10.0.0.3 pour la VM 2 → debwebserv2
Ici on a opté pour des IP static car c'est ce qui semble le plus simple d'utilisation.
Une fois le fichier /etc/network/interfaces
enregistré,
il faudra redémarrer le service réseau pour que la config soit
prise en compte,
avec :
$ sudo systemctl restart networking.service
On refait la même opération sur la VM 2 en lui assignant : 10.0.0.3
Maintenant, si tout s'est bien passé,
les VM devraient être accessibles depuis le PC avec respectivement :
10.0.0.2
pour la VM 1 →debwebserv1
10.0.0.3
pour la VM 2 →debwebserv2
p.ex avec :
$ ssh toto@10.0.0.2
ou
$ lynx 10.0.0.3
à condition que le serveur SSH soit fonctionnel sur VM 1
et qu'un serveur HTTP soit opérationnel sur VM 2
Accès aux sites web sur VM
Pour finir, si on veut pouvoir accéder depuis un navigateur du PC
aux sites web servis par les VM,
alors on pourra éditer sur le PC : /etc/hosts
en ajoutant des lignes correspondant aux domaines des sites,
p.ex :
# VM de VirtualBox # Utiliser 10.0.0.2 pour tous les domaines sur debwebserv1 10.0.0.2 debwebserv1.virt debwebserv1 10.0.0.2 forum1.virt forum1 10.0.0.2 forum2.virt forum2 # Utiliser 10.0.0.3 pour tous les domaines sur debwebserv2 10.0.0.3 debwebserv2.virt debwebserv2 10.0.0.3 site-perso.virt site-perso
Ce qui permet de passer ces adresses directement dans le navigateur,
p.ex:
$ lynx http://site-perso.virt
pour avoir un aperçu du résultat de notre site perso en projet.
Problèmes
Interface virtuelle inactive
Si tout ce qui précède a été fait correctement,
et malgré cela, on ne parvient pas à connecter le PC sur le réseau virtuel.
L'interface virtuelle vboxnet0
n'est peut-être pas active.
Vérification
Si :
$ sudo ifconfig -a
affiche une section correspondant à vboxnet0
— où le N° peut être autre que 0 selon le cas particulier
(sinon chercher ailleurs la cause du problème).
et que :
$ sudo ifconfig
ne l'affiche pas,
c'est que l'interface n'est pas active.
Passer la commande :
$ sudo ifconfig vboxnet0 up
pour l'activer.
Maintenant ça devrait fonctionner.