VirtualBox - IP Estático Público para um Convidado Debian em um Servidor Dedicado

2

Meta:
Eu quero rodar um Debian-squeeze-Guest no VirtualBox e dar ao convidado seu próprio ip público estático. Eu encontrei toneladas de tópicos sobre este tópico, mas agora estou tentando por 10 horas (lendo o manual, os fóruns, tentando aprender sobre conceitos de rede e comandos) para dar ao Visitante seu próprio ip público estático (então que o Guest é semelhante a um vServer que você pode encomendar de uma empresa de hospedagem), mas não conseguiu.

Desde que eu sou um grande noob no que diz respeito a coisas de networking, eu provavelmente estou fazendo algo errado (por favor, fique comigo :-))

Situação:
 O VirtualBox 4.0.10 (headless no gui) está sendo executado em um servidor Debian dedicado, o sistema operacional convidado também é Debian.

O servidor tem um ip estático e eu pedi um ip adicional para uma VM.

Descrição do problema:
Até agora eu era capaz de usar NAT para acessar a VM do lado de fora e para configurar uma rede interna entre vários convidados e tudo isso funcionou muito bem.

Ao definir a NIC 1 como ponte e configurar um IP estático público no convidado, o convidado não pôde ser exibido. (nem de fora, nem do host) eu poderia me conectar ao convidado através da rede interna, de outra VM, no entanto. (VBoxManage controverm VMGuest nic1 em ponte eth0) (a tentativa de configuração do IP estático no guest '/ etc / network / interfaces' está abaixo)

Por favor, deixe-me saber o que estou fazendo de errado ou o que posso tentar fazer com que funcione, ou se você precisar de mais informações.

Acho que li isso com uma versão atual do VirtualBox para rede em ponte, não é necessária nenhuma configuração especial de host, isso é preciso ou pode ser o problema?

Informações adicionais
Informações que recebi da empresa de hospedagem sobre o IP adicional

  Please note that you can use the IP address only for this server.

  IP: 46.4.xx.xx
  Gateway: 46.4.xx.xx
  Mask: 255.255.255.248 

VBoxManage showvminfo VMGuest | menos

 ...
NIC 1:           MAC: 080027D72F7B, Attachment: Bridged Interface 'eth0', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0
NIC 2:           MAC: 080027B03B75, Attachment: Internal Network 'InternalNet1', Cable connected: on, Trace: off (file: none), Type: Am79C973, Reported speed: 0 Mbps, Boot priority: 0
NIC 3:           disabled
(...rest is disabled) 

cat / etc / network / interfaces na máquina host

 # Loopback device:
auto lo
iface lo inet loopback

# device: eth0
auto  eth0
iface eth0 inet static
  address   46.4.xx.xx
  broadcast 46.4.xx.xx
  netmask   255.255.255.224
  gateway   46.4.xx.xx
  post-up mii-tool -F 100baseTx-FD eth0

# default route to access subnet
up route add -net 46.4.xx.xx netmask 255.255.255.224 gw 46.4.xx.xx eth0 

cat / etc / network / interfaces no Guest-VM

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
auto  eth0
iface eth0 inet static
  address 46.4.xx.xx
  netmask 255.255.255.248
  gateway 46.4.xx.xx

auto eth1
iface eth1 inet dhcp

ifconfig -a no Guest mostra o ip estático correto para eth0, mas o Guest está inacessível "over eth0"

eth0      Link encap:Ethernet  HWaddr 08:00:27:d7:2f:7b
          inet addr:46.4.xx.xx  Bcast:46.4.xx.xx  Mask:255.255.255.248
          inet6 addr: fe80::a00:27ff:fed7:2f7b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:21 errors:0 dropped:0 overruns:0 frame:0
          TX packets:69 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1260 (1.2 KiB)  TX bytes:3114 (3.0 KiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:b0:3b:75
          inet addr:192.168.10.3  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:feb0:3b75/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:142 errors:0 dropped:0 overruns:0 frame:0
          TX packets:92 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:15962 (15.5 KiB)  TX bytes:14540 (14.1 KiB)
          Interrupt:16 Base address:0xd240

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:16436  Metric:1
          RX packets:123 errors:0 dropped:0 overruns:0 frame:0
          TX packets:123 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:25156 (24.5 KiB)  TX bytes:25156 (24.5 KiB) 
    
por user86296 01.07.2011 / 02:48

4 respostas

0

Obrigado a todos que responderam!

O seguinte tutorial em alemão finalmente trouxe a solução (a parte da rede). Meu Host-IP e IP adicional não estavam na mesma sub-rede: link

0. Informações da minha empresa de hospedagem sobre o endereço IP adicional e o endereço Mac

Host-IP:       _hostIP_
Additional IP: _additionalIP_
Gateway:       _gatewayIP_
Maske:         255.255.255.248

Your IP _additionalIP_ has the following separate MAC-adress for virtualisation purposes:

Mac-address for the nic: _macaddress_

1. No host

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

# Add the Gateway as an IP-address on the host, in the following way (not the actual additional IP):
ip addr add _gatewayIP_/255.255.255.248 dev eth0

# Add a route for the 2nd additional ip in the following way
route add -host _additionalIP_ gw _additionalIP_


# make the changes persistent - this part is not tested!

emacs /etc/network/interfaces
# ----------------------------------------
# Loopback device:
auto lo
iface lo inet loopback

# device: 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

# default route to access subnet
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. No host: altere as configurações de convidado

# set the mac-address of the guests nic to the virtual mac-address we got for our additional ip
# bridgeadapter1 is the network card from the Host that should be used for the bridge
VBoxManage modifyvm VMGuest  --nic1 bridged --bridgeadapter1 eth0      --nictype1 Am79C973   --macaddress1 _macaddress_
VBoxHeadless -startvm VMGuest 

3. No convidado

# connect via internal network and edit the network-configuration

emacs /etc/network/interfaces
# --------------------------------------------------
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
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
    
por 09.07.2011 / 22:13
1

Sempre fiz isso criando uma interface de ponte no host para que fique assim:

show de brctl

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)

A execução de "VBoxManage showvminfo | grep NIC" deve mostrar algo como:

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

Eu não sei se você pode dizer ao VirtualBox para fazer a ponte com o eth0 diretamente, sem ter que configurar o br0 primeiro. Você parece supor que isso é possível e pode ser a causa de seus problemas. Observe também a palavra-chave Bridged . Se você já teve NATted, este poderia ser o problema.

    
por 01.07.2011 / 06:11
0

Eu usei esse script para criar a VM com o Virtual Box sem GUI:

#!/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

E isso funciona bem. Uma interface virtual possui ip público, outras interfaces possuem ip interno.

    
por 01.07.2011 / 09:08
0

"Por favor, note que você pode usar o endereço IP apenas para este servidor."

Isso pode ser uma indicação de que a empresa de hospedagem implementou a Segurança da Camada 2 no nível de comutação, portanto, se o MAC não corresponder, ela não será permitida na rede comutada.

    
por 01.07.2011 / 20:08