Como mapear um adaptador de rede VPN (tun0) no host Ubuntu para um convidado do VirtualBox Windows?

3

Eu tenho um Ubuntu 10.04 executando o Oracle VirtualBox 3.2.6 com um convidado do Windows XP. Eu uso uma VPN que gostaria de ser acessada pela VM convidada, em um ifconfig mostrado como:

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:5.192.10.99  P-t-P:5.192.10.99  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1362  Metric:1
          RX packets:14151 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19860 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:4415271 (4.4 MB)  TX bytes:17949982 (17.9 MB)

Usar adaptadores NAT ou Bridge na VM apenas me fornece o adaptador não-vpn. Como posso mapear o adaptador tun0 para o VirtualBox?

    
por Mashimom 06.08.2010 / 14:43

2 respostas

1

Você provavelmente pode fazer isso, mas eu recomendaria contra isso.

A maneira de fazer isso é fazer com que a VM estabeleça sua própria conexão VPN com o servidor / rede de destino.

Agora, se você realmente quiser fazer isso, precisará criar outra ponte no host e criar a interface do túnel como uma interface estática (isto é, não criado pela VPN quando é iniciado) e adicioná-lo à ponte. Só então esse túnel se torna disponível para a máquina virtual. O VirtualBox pode então ser instruído para virtualizar essa interface, o que a torna disponível para a VM.
A parte da qual não tenho certeza é se um túnel pode ou não ser criado fora do cliente VPN e depois disponibilizado para o cliente para uso. Pode ser necessário procurar dispositivos de toque em vez de dispositivos de tun.
Isso pode ficar bastante complicado e resultará em uma situação em que o cliente da VM talvez não tenha nenhuma rede se a VPN não estiver ativa (a menos que você também virtualize a outra bridge). Como disse, eu recomendaria contra isso.

    
por 06.08.2010 / 15:29
-1

Definindo /etc/sysctl.conf :

net.ipv4.ip_forward=1

Em seguida, execute:

sudo sysctl -p

(não deve ser necessário, mas) eu reiniciei depois disso e achei funcionando.

    
por 07.08.2010 / 02:05