Rotear o tráfego da rede local para o adaptador somente para host do VirtualBox

9

Para um teste, preciso permitir o roteamento da minha rede local para um convidado dentro de um VirtualBox. O hóspede já tem acesso externo.

Até agora, ativei o encaminhamento de IP na minha máquina local (OSX 10.9) e adicionei uma rota à rede somente host na máquina na rede local.

route add -net 192.168.59.0 netmask 255.255.255.0 gw 192.168.0.107
sysctl -w net.ipv4.ip_forward=1

A rede é assim.

Local network 192.168.0.104 -> [Wireless 192.168.0.0/24] -> MacOSX 192.168.0.107 (Wifi) & 192.168.59.3 (VboxHost) -> [VBox 192.168.59/24] -> 192.168.59.103

A menos que o VirtualBox esteja descartando propositalmente pacotes de fora, isso deve funcionar.

Meu objetivo seria 192.168.0.104conectar-me 192.168.59.103. Até agora, só posso fazer ping 192.168.59.3nele.

Além disso, meu convidado já tem outro adaptador com um gw padrão que permite o acesso ao wifi.

Que rota ou configuração de rede eu poderia estar perdendo?

Também pude entender o pacote recebendo o meu convidado, mas o hóspede não pode responder, no entanto, tcpdump não mostra nenhum paquet para chegar ao convidado se, por exemplo, eu fizer ping na máquina. Além disso, nenhum firewall está sendo executado em qualquer lugar.

Tabela de roteamento no meu Mac

Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.0.1        UGSc           42        1     en0
127                127.0.0.1          UCS             0        0     lo0
127.0.0.1          127.0.0.1          UH              6  2943735     lo0
169.254            link#4             UCS             0        0     en0
192.168.0          link#4             UCS             3        0     en0
192.168.0.1        9c:d6:43:c8:cf:e8  UHLWIir        43    21647     en0   1199
192.168.0.104      8:0:27:c2:fc:68    UHLWI           0        7     en0   1068
192.168.0.106      0:15:99:77:73:ed   UHLWI           0       82     en0    845
192.168.0.107      127.0.0.1          UHS             2     9114     lo0
192.168.59         link#9             UC              3        0 vboxnet
192.168.59.3       a:0:27:0:0:0       UHLWI           0    69759     lo0
192.168.59.103     link#9             UHRLWIi         2    31866 vboxnet     1
kkx
fonte
3
Por algum motivo, você não pode simplesmente configurar o adaptador de rede da sua VM como ponte em vez de somente host? Você está efetivamente recebendo o mesmo comportamento.
heavyd
O mesmo? O adaptador somente host é uma rede separada, enquanto o AFAIK em ponte vincula o host à minha rede real. Que inconveniente porque o IP muda de escritório, de casa etc.
kkx:
Eu sou um cara da VMware, mas como o @heavyd mencionado, você deve poder configurar uma LAN privada ou "somente host" com o Virtual Box da mesma forma que com o VMware Fusion ou Workstation.
SaxDaddy
@SaxDaddy É exatamente o que estou usando, mas estou tentando direcionar o tráfego para ele para um teste. No entanto, como eu disse, não está funcionando como deveria / deseja (ou na verdade está fazendo um bom trabalho). O adaptador somente host parece estar perdendo tráfego externo, mesmo que o roteamento esteja correto ou algo no MacOSX não esteja encaminhando o tráfego corretamente.
Kkx
4
Estou surpreso que ninguém tenha notado o erro nessa configuração, pois é tão óbvio: no comando route add , a rede somente host foi configurada para usar como gateway um PC fora da rede somente host. Isso não pode funcionar. A rota correta deveria ter usado como gw o endereço IP da interface do Mac no adaptador host-only, não seu padrão LAN. Existem outros erros (por que lo tem um endereço 192.168.59.3 na tabela de roteamento ???), mas com o erro na rota, não é possível progredir. Deixo esta nota para todos os leitores.
MariusMatutiae

Respostas:

1

O modo de rede somente host não pode ser usado para rotear o tráfego da rede local para os hosts da VM. Você deve usar o Bridged, NAT ou rede NAT. Com os dois últimos, você precisa de um encaminhamento de porta.

Referências:

[1] https://www.virtualbox.org/manual/ch06.html#networkingmodes (consulte a tabela no final da seção 6.2) [2] https://www.virtualbox.org/manual/ch06.html# network_hostonly

Marcelo Roberto Jimenez
fonte
Desculpe, isso não é verdade. Eu acho que a documentação pode ser enganosa. A rede somente host é como uma LAN independente, mas as LANs podem ter gateways e não há nada para impedir que o host (ou mesmo um dos convidados) atue como roteador. Faço isso o tempo todo no Linux, não vejo por que não deveria ser possível no OS-X. Ponte e roteamento são duas coisas diferentes.
Rodney
Observe que estamos usando termos definidos pelo Virtualbox, não senso comum. Fiquei enganado com as palavras, por isso apontei para a tabela na documentação.
Marcelo Roberto Jimenez