# [RESEAU] VirtualBox et DHCP (résolu)

## Viannoche

Hello amis Gentooïstes !

Je m'interroge depuis quelques jours sur le sujet suivant : 

Une de mes machines "héberge" deux machines virtuelles. Cette machine est connectée sur un LAN qui possède un serveur DHCP (une box).

Jusqu'ici tout fonctionne. Chaque machine possède une IP sur le LAN.

Maintenant, avec cette même configuration, je souhaiterai savoir s'il est possible d'avoir la même chose mais sans que la machine hôte soit connectée à un réseau physique.

Ce que je souhaiterai c'est que la machine hôte distribue les IP à mes machines virtuelles.

En fait le cas est simple, j'ai une maquette sur mon portable perso et je souhaite la présenter au taff mais pour des raisons de sécurité je ne préfère pas me connecter au réseau d'entreprise.

Bon, au pire je trimbale aussi un netbook qui fera serveur DHCP mais bon, un peut lourd niveau logistique.

Alors j'avoue quand même que je n'ai pas envore vraiment cherché de solution, mais j'aimerai savoir si c'est réalisable avant de creuser comme un fou. :-)

Merci pour vos réponses/suggestions.Last edited by Viannoche on Wed Apr 01, 2009 7:45 pm; edited 1 time in total

----------

## Viannoche

J'ai fait quelques recherches, voilà où j'en suis :

La configuration VirtualBox n'a pas changé, ma VM possède une interface attachée à eth0 en mode "Host Interface".

Mon interface eth0 est configurée comme suit : 

```
config_eth0=("10.1.1.1 netmask 255.255.255.0")
```

J'ai installé dhcpd avec la configuration suivante, je lui demande d'écouter sur eth0 :

```
default-lease-time 600;

max-lease-time 7200;

ddns-update-style none;

ignore client-updates;

log-facility local7;

subnet 10.1.1.0 netmask 255.255.255.0 {

  range 10.1.1.2 10.1.1.10;

  option domain-name "home";

  option domain-name-servers 10.1.1.1;

  option routers 10.1.1.1;

}

```

Au démarrage de la VM (qui est configurée en DHCP) on voit bien la communication avec le serveur DHCP :

```

Mar 31 18:24:27 gazoline dhcpd: DHCPDISCOVER from 08:00:27:d9:9e:33 via eth0

Mar 31 18:24:28 gazoline dhcpd: DHCPOFFER on 10.1.1.2 to 08:00:27:d9:9e:33 (fender) via eth0

```

Mais ensuite plus rien. A priori la communication se fait dans un sens mais pas dans l'autre.

Je ne suis pas contre l'avis de quelqu'un qui maitrise le réseau.

Merci d'avance  :Smile: 

----------

## loopx

Je pense avoir compris plus ou moins ou tu veux en venir, à savoir :

- se connecter physiquement à un réseau

- mais rendre l'os principal "non accessible"

- permettre au VM d'avoir un accès au réseau physique

L'idée est pas mal en fait  :Smile: 

En y pensant, je ferais ainsi (ca fait un moment que j'ai plus fait de VirtualBox, mais ca devrait être faisable) :

- créer une tap par VM

- régler la VM pour utiliser la TAP

- 2 VM => tap0 et tap1

- ta carte réseau (filaire ou wifi), ne rêve pas, elle sera "physiquement" connecté (via cable ou non), ca ne fait aucun doute

- mais, ton OS principal n'a pas besoin d'avoir une ip  :Wink: 

- crée un "pont" br0 et ajoute y tap0 et tap1

- avec ce pont, les VM pourront faire des demandes DHCP directement sur le réseau (via eth0), même si l'OS principal n'a pas réellement le net (oui, il sera connecté (pourra envoyer/recevoir) mais n'aura pas d'ip!

Avec cette technique, tes VM devrait être accessible (le "br0" serait égal à un switch/hub physique qui relierais le LAN (eth0) au carte des VM (tap0 et 1). N'oublie donc pas de ne pas mettre d'ip sur ta machine, mais tu te dois d'activer quand même eth0 (ifconfig eth0 up)  :Wink: 

----------

## Viannoche

Merci loopx pour ta réponse.

En cherchant un peut sur le net je suis effectivement tombé sur la notion de pont. Mais depuis la version 2.1 il n'est plus nécessaire de configurer tout ceci.

Enfin c'est ce que je comprend et dans les faits c'est ce qui se passe :

Even though TAP is no longer necessary on Linux with the new Host Interface Networking of VirtualBox 2.1, you can still use TAP interfaces for certain advanced setups, since you can connect a VM to any host interface -- which could also be a TAP interface.

With the new mechanism, to enable Host Interface Networking, all you need to do is to open the Settings dialog of a virtual machine, go to the "Network" page and select "Host Interface" in the drop down list for the "Attached to" field. Finally, select desired host interface from the list at the bottom of the page, which contains the physical network interfaces of your systems. On a typical MacBook, for example, this will allow you to select between "en1: AirPort" (which is the wireless interface) and "en0: Ethernet", which represents the interface with a network cable.

Ta remarque est interressante, je vais essayer cette configuration pour l'adapter à mon besoin, vu que ça reste possible pour un "advanced setup" (ça fait pro ^^)

Mais vu que tu me dis que ma carte réseau (filaire ou wifi), ne rêve pas, elle sera "physiquement" connecté (via cable ou non), ca ne fait aucun doute, la tu me mines le moral !!  :Smile: 

Car ce que je veux en réalité c'est un PC déconnecté de tout réseau physique et des VM qui communiquent entre elles et avec leur hôte. 

Dans tous les cas, merci !!!  :Smile: 

----------

## loopx

ah lol, mais si tu veux, tu peux débrancher le cable  :Smile:      dans ce cas, tu te retrouve en reso local de 2 PC ... (via le br0) et il te faudra donner une ip manuellement ou installer un dhcp sur l'une ou l'autre des VM ou sur l'OS principal.

En fait, utiliser "tap", c'est pour les trucs avancé comme indiqué car ca permet d'avoir l'interface de la VM relié à une "vrai" interface dans l'OS principal, à savoir Linux. Grace à ca, tu peux faire tout les trucs possible et imaginable que tu ferais avec une interface simple. Je te laisse imaginer  :Wink: 

Maintenant, tout dépend généralement de ce que tu veux. J'y ai aussi réfléchi et c'est ainsi que j'en suis arrivé au tap et au pont, de cette manière, ma VM est considérée comme une vrai machine qui serait connecté sur un hub/switch avec le PC (OS principal) et le LAN. Bon après, tu peux encore faire moulte chose avec et tout mélanger, VPN, routage, tunal SSh etc etc etc  :Smile:  vraiment amusant  :Very Happy: 

Avec les "tap", tu peux faire en sorte que une de tes machines virtuelle soit "connecté à un LAN distant", ton PC étant carément dans un autre pays .. Le tout se fait très simplement : sur ton PC (qui serait portable), tu aurais eth0 pour la connexion internet, tap0 pour le VPN et tap1 pour la VM ... tu met tap0 et tap1 dans un br0 et coté serveur VPN, tu met la tap utilisée avec l'interface connecté au LAN (un autre br0 quoi). Voilà, ton LAN s'étend sur l'internet et ta VM sera comme une machine présente sur le LAN avec même ip etc etc  :Very Happy: 

hihihi.. bon je go dodo :p

----------

## Viannoche

Cooooool !!! Je kiff !!! :D

Bon, j'essaye tout ça, et je posterai ma configuration pour ceux qui ont envie comme moi de s'éclater avec leur carte réseau... Rhooo.... Mais de quoi on parle ??  oO

Good night !  ;-)

----------

## Viannoche

Ca fonctionne au poil !!

Voici la conf :

/etc/conf.d/net

```

config_eth0=( "null" )

tuntap_vbox0="tap"

tuntap_vbox1="tap"

config_vbox0=("null")

config_vbox1=("null")

tunctl_vbox0="-u viannoche"

tunctl_vbox1="-u viannoche"

config_br0=( "192.168.1.1 netmask 255.255.255.0" )

routes_br0=( "default via 192.168.1.1" ) 

bridge_br0="eth0 vbox0 vbox1"

depend_br0() 

{

        need net.eth0

        need net.vbox0

        need net.vbox1

}

```

```
 /etc/init.d/net.br0 start
```

/etc/dhcp/dhcpd.conf

```

default-lease-time 600;

max-lease-time 7200;

ddns-update-style none;

ignore client-updates;

log-facility local7;

subnet 192.168.1.0 netmask 255.255.255.0 {

  range 192.168.1.10 192.168.1.20;

  option domain-name "home";

 option routers 192.168.1.1;

}

```

Lancement du serveur DHCP sur l'hôte:

```
/etc/init.d/dhcpd start
```

Configurer chaque VM pour utiliser respectivement les interfaces vbox0 et vbox1.

Configurer l'OS des VM avec un client DHCP.

Lancement des VM et c'est le paaaaaraaaaaadiiiiiii !!!  :Smile: 

Sachant que lorsque je veux rebrancher le câble pour retrouver une configuration normale je passe br0 en dhcp.

Merci beaucoup pour le coup de main !

----------

## loopx

Super, tu gère  :Smile: 

Content de voir que tu t'en es sorti rapidement  :Wink: 

----------

