J'essaie de configurer un ensemble d'invités dans VirtualBox, de sorte que chacun d'entre eux puisse accéder à Internet tout en étant visible pour l'autre et pour l'hôte. Je veux aussi que les invités aient des adresses IP statiques.
Voici la procédure que j'ai suivie jusqu'à présent:
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet static address 192.168.56.1 netmask 255.255.255.0 network 192.168.56.0 broadcast 192.168.56.255 gateway 192.168.56.254 dns-search cloudspace.local dns-nameservers 8.8.8.8 8.8.4.4
Lorsque l'invité redémarre, la mise en réseau de l'hôte uniquement fonctionne correctement. Les paires de machines hôte/invité et invité/invité peuvent s'interroger, mais Internet ne fonctionne pas car apt-get
échoue.
Si je lance ensuite une commande service networking restart
, la mise en réseau commence à fonctionner comme il se doit.
Qu'est-ce que je fais mal?
J'ai essayé de changer l'ordre d'affichage des cartes réseau dans le fichier /etc/network/interfaces
. J'ai également échangé le réseau NAT/hôte uniquement entre les deux cartes réseau. Rien n'a fonctionné.
L'hôte est Windows 8.1 et l'invité est Ubuntu Server 13.10. J'ai essayé la même chose sur Mac OS X avec des résultats similaires.
J'apprécierais grandement toute aide dans ce domaine.
Mise à jour:
J'ai inclus ci-dessous le résultat des commandes suivantes, pour faciliter le diagnostic:
$ cat /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet static address 192.168.56.1 netmask 255.255.255.0 network 192.168.56.0 broadcast 192.168.56.255 gateway 192.168.56.254 $ ifconfig -a eth0 Link encap:Ethernet HWaddr 08:00:27:75:47:64 inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe75:4764/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2 errors:0 dropped:0 overruns:0 frame:0 TX packets:10 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1180 (1.1 KB) TX bytes:1332 (1.3 KB) eth1 Link encap:Ethernet HWaddr 08:00:27:93:98:d8 inet addr:192.168.56.1 Bcast:192.168.56.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe93:98d8/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:140 errors:0 dropped:0 overruns:0 frame:0 TX packets:225 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:14418 (14.4 KB) TX bytes:27378 (27.3 KB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:16 errors:0 dropped:0 overruns:0 frame:0 TX packets:16 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1184 (1.1 KB) TX bytes:1184 (1.1 KB) $ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.56.254 0.0.0.0 UG 0 0 0 eth1 10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Mise à jour 2:
Après avoir exécuté Sudo service networking restart
, le résultat de route -n
devient:
$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0 10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Alors, comment puis-je assurer cette configuration au démarrage?
Il serait plus facile de résoudre votre problème si vous publiez les résultats obtenus lorsque vous essayez d'envoyer une requête ping à une adresse externe (telle que les serveurs DNS Google que vous utilisez), aux paramètres réseau actuels et à votre table de routage.
/sbin/ifconfig -a
/sbin/route -n
Sans en savoir plus, c’est un coup dans le noir, mais j’imagine que soit a) vous n’obtenez pas d’adresse DHCP sur eth0, soit b) vos paramètres de passerelle pour eth1 jouent avec la route par défaut attribuée par DHCP.
Si vous n'obtenez pas d'adresse DHCP pour eth0, il s'agit probablement d'une mauvaise configuration dans VirtualBox (par exemple, l'inversion des adaptateurs).
Quoi qu'il en soit, vous n'avez pas besoin d'une passerelle ou de paramètres DNS spécifiquement assignés à eth1, car ceux-ci seront attribués par DHCP sur eth0. Je supprimerai donc les lignes gateway, dns-search et dns-nameservers de votre configuration. Vos machines virtuelles pourront toujours communiquer sans paramètre de passerelle si elles sont sur le même réseau et si VirtualBox est configuré correctement.
Edit: Pour vous assurer de ne pas avoir de passerelle sur eth1 après un redémarrage, supprimez les lignes de votre bloc eth1 afin qu'il ressemble à ceci:
auto eth1
iface eth1 inet static
address 192.168.56.1
netmask 255.255.255.0
Une fois que vous avez terminé, vous n’avez plus de lignes de passerelle dans votre fichier d’interfaces.
Je suis venu avec cette solution, qui est la même que la réponse de @ jkt123, et la question de @ Umar, mais plus courte. J'apprécierais vos commentaires à ce sujet!
Dans virtualbox, active les réseaux NAT et les hôtes uniquement. (BTW: Cela fonctionne sur mon hôte Win7. Je ne sais pas comment faire cela dans l'hôte Linux).
Sur l'hôte - recherche l'ip de l'interface "hôte uniquement"
ipconfig /all # for windows Host
ifconfig -a # for linux Host
Dans l'invité, éditez/etc/network/interfaces. L'astuce était en inversant l'ordre eth1 (hôte uniquement) vient AVANT eth0 (internet/dhcp). Je ne sais pas pourquoi.
auto lo # keep the original loopback settings
iface lo ... # yeah, i don't remember, just keep it.
# ----> Ok, this is my addition <-----
auto eth1
allow-hotplug eth1 # i think hotplug it helps. not sure.
iface eth1 inet static
address 192.168.56.100 # arbitrary IP address between 2 and 254
auto eth0 # This is the original content
iface eth0 inet dhcp # of this file, now at the end.
redémarrer.