2 votes

VirtualBox - IP statique public pour un invité Debian sur un serveur dédié

Objectif :
Je veux exécuter un invité Debian-squeeze dans VirtualBox et lui donner sa propre adresse IP publique statique. J'ai trouvé des tonnes de fils de discussion sur ce sujet, mais dans l'ensemble, j'essaie maintenant depuis 10 heures (en lisant le manuel, les forums, en essayant d'apprendre les concepts et les commandes de réseau) pour donner à un Invité sa propre adresse IP publique statique (de sorte que l'Invité soit similaire à un vServer que vous pouvez commander auprès d'une société d'hébergement), mais je n'ai pas réussi.

Étant donné que je suis un grand débutant en ce qui concerne les choses de réseau, je fais probablement quelque chose de mal. (s'il vous plaît soyez indulgent avec moi :-) )

Situation :
VirtualBox 4.0.10 (sans interface graphique) fonctionne sur un serveur Debian dédié, l'OS Invité est également Debian.

Le serveur a une adresse IP statique et j'ai commandé une adresse IP supplémentaire pour une machine virtuelle.

Description du problème :
Jusqu'à présent, j'ai pu utiliser le NAT pour accéder à la machine virtuelle depuis l'extérieur et mettre en place un réseau interne entre plusieurs Invités, et tout cela a très bien fonctionné.

Lorsque j'ai configuré la NIC 1 en mode ponté et configuré une adresse IP publique statique sur l'invité, l'invité était injoignable (ni depuis l'extérieur, ni depuis l'hôte). Je pouvais me connecter à l'invité via le réseau interne, depuis un autre VM cependant. ( VBoxManage controlvm VMGuest nic1 bridged eth0 ) ( la tentative de configuration de l'adresse IP statique sur l'invité '/etc/network/interfaces' est ci-dessous)

Merci de me dire ce que je fais de travers, ou ce que je peux essayer pour que cela fonctionne, ou si vous avez besoin de plus d'informations.

Je crois avoir lu qu'avec une version récente de VirtualBox pour le mode ponté, aucune configuration spéciale de l'hôte n'est nécessaire, est-ce exact, ou cela pourrait-il être le problème ?


Informations supplémentaires
Informations que j'ai reçues de la société d'hébergement concernant l'adresse IP supplémentaire

  Veuillez noter que vous ne pouvez utiliser l'adresse IP que pour ce serveur.

  IP : 46.4.xx.xx
  Passerelle : 46.4.xx.xx
  Masque : 255.255.255.248 

VBoxManage showvminfo VMGuest |moins

 ...
NIC 1 :           MAC : 080027D72F7B, Attachement : Interface Pontée 'eth0', Câble connecté : activé, Trace : désactivé (fichier : aucun), Type : 82540EM, Vitesse signalée : 0 Mbps, Priorité de démarrage : 0
NIC 2 :           MAC : 080027B03B75, Attache : Réseau Interne 'InterneNet1', Câble connecté : activé, Trace : désactivé (fichier : aucun), Type : Am79C973, Vitesse signalée : 0 Mbps, Priorité de démarrage : 0
NIC 3 :           désactivé
(...reste désactivé) 

cat /etc/network/interfaces sur la machine hôte

 # Périphérique de bouclage :
auto lo
iface lo inet boucle

# périphérique : eth0
auto  eth0
iface eth0 inet statique
  adresse   46.4.xx.xx
  diffusion 46.4.xx.xx
  masque   255.255.255.224
  passerelle   46.4.xx.xx
  post-up mii-tool -F 100baseTx-FD eth0

# route par défaut pour accéder au sous-réseau
up route add -net 46.4.xx.xx netmask 255.255.255.224 gw 46.4.xx.xx eth0 

cat /etc/network/interfaces sur l'Invité-VM

# Ce fichier décrit les interfaces réseau disponibles sur votre système
# et comment les activer. Pour plus d'informations, consultez interfaces(5).

# L'interface de bouclage
auto lo
iface lo inet boucle

# L'interface réseau principale
allow-hotplug eth0
auto  eth0
iface eth0 inet statique
  adresse 46.4.xx.xx
  masque 255.255.255.248
  passerelle 46.4.xx.xx

auto eth1
iface eth1 inet dhcp

ifconfig -a sur l'Invité affiche la bonne adresse IP statique pour eth0 mais l'Invité est injoignable "via eth0"

eth0      Lien encap:Ethernet  Adresse HW 08:00:27:d7:2f:7b
          Adresse IP:46.4.xx.xx  Diffusion:46.4.xx.xx  Masque:255.255.255.248
          Adresse IPv6: fe80::a00:27ff:fed7:2f7b/64 Portée: Liaison
          ACTIF DIFFUSION FONCTIONNE MULTICAST  MTU:1500  Métrique:1
          Paquets RX:21 erreurs:0 pertes:0 dépassements:0 trames:0
          Paquets TX:69 erreurs:0 pertes:0 dépassements:0 porteur:0
          collisions:0 longueur de file d'attente de transmission:1000
          Octets RX:1260 (1.2 Kio)  Octets TX:3114 (3.0 Kio)

eth1      Lien encap:Ethernet  Adresse HW 08:00:27:b0:3b:75
          Adresse IP:192.168.10.3  Diffusion:192.168.10.255  Masque:255.255.255.0
          Adresse IPv6: fe80::a00:27ff:feb0:3b75/64 Portée: Liaison
          ACTIF DIFFUSION FONCTIONNE MULTICAST  MTU:1500  Métrique:1
          Paquets RX:142 erreurs:0 pertes:0 dépassements:0 trames:0
          Paquets TX:92 erreurs:0 pertes:0 dépassements:0 porteur:0
          collisions:0 longueur de file d'attente de transmission:1000
          Octets RX:15962 (15.5 Kio)  Octets TX:14540 (14.1 Kio)
          Interruption:16 Adresse de base:0xd240

lo        Lien encap:Boucle locale
          Adresse IP:127.0.0.1  Masque:255.0.0.0
          Adresse IPv6: ::1/128 Portée:Hôte
          ACTIF FONCTIONNE BOUCLE LOCALE  MTU:16436  Métrique:1
          Paquets RX:123 erreurs:0 pertes:0 dépassements:0 trames:0
          Paquets TX:123 erreurs:0 pertes:0 dépassements:0 porteur:0
          collisions:0 longueur de file d'attente de transmission:0
          Octets RX:25156 (24.5 Kio)  Octets TX:25156 (24.5 Kio)

1voto

banana Points 7

J'ai toujours fait ça en créant une interface de pont sur l'hôte de sorte que cela ressemble à ceci :

brctl show

bridge name     bridge id               STP enabled     interfaces
br0             8000.0025b3bafc61       no              eth0

ifconfig eth0

eth0  Link encap:Ethernet  HWaddr 00:25:B3:BA:FC:61
      inet6 addr: fe80::225:b3ff:feba:fc61/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:12199478 errors:0 dropped:0 overruns:0 frame:0
      TX packets:1121494 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:1101744530 (1.0 GiB)  TX bytes:396467719 (378.1 MiB)
      Interrupt:51

ifconfig br0

br0   Link encap:Ethernet  HWaddr 00:25:B3:BA:FC:61
      inet addr:10.16.21.55  Bcast:10.16.21.255  Mask:255.255.255.0
      inet6 addr: fe80::225:b3ff:feba:fc61/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:1280420 errors:0 dropped:0 overruns:0 frame:0
      TX packets:1098325 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:334957389 (319.4 MiB)  TX bytes:394733263 (376.4 MiB)

Exécuter "VBoxManage showvminfo | grep NIC" devrait afficher quelque chose comme :

NIC 1:           MAC: 080027D96DFB, Attachment: Bridged Interface 'br0',
       Cable connected: on, Trace: off (file: none), Type: 82540EM,
       Reported speed: 0 Mbps, Boot priority: 0

Je ne sais pas si vous pouvez indiquer à VirtualBox de se connecter directement avec eth0, sans avoir à configurer br0 d'abord. Vous semblez supposer que c'est possible, et cela pourrait être la cause de vos problèmes. Notez également le mot-clé Bridged. Si vous l'aviez précédemment en NAT, cela pourrait être le problème.

0voto

Mutant Points 952

J'ai utilisé ce script pour créer une machine virtuelle avec Virtual Box sans interface graphique :

#!/bin/bash

VMNAME="OpenBSD"

VBoxManage createvm --name $VMNAME --ostype OpenBSD --register
VBoxManage createhd --filename ~/"VirtualBox VMs"/$VMNAME/$VMNAME --size 100000
VBoxManage storagectl $VMNAME --name "IDE Controller" --add ide --controller PIIX4 --hostiocache on --bootable on
VBoxManage storageattach $VMNAME --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium ~/"VirtualBox VMs"/$VMNAME/$VMNAME.vdi
VBoxManage storageattach $VMNAME --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium ~/iso/install49.iso --passthrough off
VBoxManage modifyvm $VMNAME --memory 512 --vrde on --acpi on --rtcuseutc on
VBoxManage modifyvm $VMNAME --nic1 bridged --bridgeadapter1 eth0
VBoxManage modifyvm $VMNAME --nic2 bridged --bridgeadapter2 eth1
VBoxManage modifyvm $VMNAME --nic3 bridged --bridgeadapter3 eth2

Et ça marche bien. Une des interfaces virtuelles a une adresse IP publique, les autres interfaces ont une adresse IP interne.

0voto

user48838 Points 7385

"Veuillez noter que vous ne pouvez utiliser l'adresse IP que pour ce serveur."

Cela peut indiquer que la société d'hébergement a mis en place une sécurité de couche 2 au niveau de la commutation, donc si l'adresse MAC ne correspond pas, elle ne sera pas autorisée sur le réseau commuté.

0voto

Kamarey Points 4416

Merci à tous ceux qui ont répondu!

Le tutoriel allemand suivant a enfin apporté la solution (la partie réseau). Mon adresse IP hôte et l'adresse IP supplémentaire n'étaient pas sur le même sous-réseau :
http://www.kitesurfer1404.de/klartext/eq6_setup

0. Informations de mon entreprise d'hébergement concernant l'adresse IP supplémentaire et l'adresse MAC

Adresse IP hôte :       _hostIP_
IP supplémentaire : _additionalIP_
Passerelle :       _gatewayIP_
Masque :         255.255.255.248

Votre IP _additionalIP_ a la Mac-adresse séparée suivante à des fins de virtualisation :

Adresse MAC pour la carte réseau : _macaddress_

1. Sur l'hôte

iptables -P FORWARD ACCEPT
sysctl -w net.ipv4.ip_forward=1

# Ajoutez la passerelle en tant qu'adresse IP sur l'hôte, de la manière suivante (pas l'IP supplémentaire réelle) :
ip addr add _gatewayIP_/255.255.255.248 dev eth0

# Ajoutez une route pour la 2ème adresse IP supplémentaire de la manière suivante
route add -host _additionalIP_ gw _additionalIP_

# Rendez les modifications persistantes - cette partie n'est pas testée !

emacs /etc/network/interfaces
# ----------------------------------------
# Dispositif de bouclage :
auto lo
iface lo inet loopback

# dispositif : eth0
auto  eth0
iface eth0 inet static
  address   _hostIP_
  broadcast _broadcast_
  netmask   255.255.255.224
  gateway   _gateway_
  post-up mii-tool -F 100baseTx-FD eth0

# route par défaut pour accéder au sous-réseau
up route add -net 46.4.xx.xx netmask 255.255.255.224 gw 46.4.xx.xx eth0

up ip addr add _gatewayIP_/255.255.255.248 dev eth0
up route add -host _additionalIP_ gw _additionalIP_
# ----------------------------------------

2. Sur l'hôte - modifier les paramètres du client

# définir l'adresse MAC de la carte réseau du client sur l'adresse MAC virtuelle que nous avons reçue pour notre IP supplémentaire
# bridgeadapter1 est la carte réseau de l'hôte qui doit être utilisée pour le bridge
VBoxManage modifyvm VMGuest  --nic1 bridged --bridgeadapter1 eth0      --nictype1 Am79C973   --macaddress1 _macaddress_
VBoxHeadless -startvm VMGuest 

3. Dans le client

# se connecter via le réseau interne et modifier la configuration réseau

emacs /etc/network/interfaces
# --------------------------------------------------
# Ce fichier décrit les interfaces réseau disponibles sur votre système
# et comment les activer. Pour plus d'informations, consultez interfaces(5).

# L'interface réseau de loopback
auto lo
iface lo inet loopback

# L'interface réseau principale
allow-hotplug eth0
auto  eth0
iface eth0 inet static
  address _additionalIP_
  netmask 255.255.255.248
  gateway _gatewayIP_

allow-hotplug eth1
auto eth1
iface eth1 inet dhcp
# --------------------------------------------------

shutdown -r now

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X