Eu finalmente consegui trabalhar: -)
Minha solução de trabalho envolve:
-
Parallels VM (o "roteador"): rede "somente host", com o intervalo de IP definido por padrão pelo Parallels (eu poderia mudar isso no Parallels - Preferências - Rede - Somente host). Configure nat com iptables com
wlan0
(wifi) como interface de saída. -
Virtualbox VM (o "cliente"): rede "bridge", usando o adaptador virtual Parallel
vnic1
criado para sua rede "somente host". Eu tive que desabilitar o dhcpserver do Virtualbox para que o convidado não obtivesse um ip indesejado. Eu dei um ip na mesma faixa que a vm do Parallel. Configure a rota padrão para o "roteador".
Observação: eu poderia fazer com que o Virtualbox usasse o vnic1
do Parallel no modo bridge. No entanto, todos os meus testes falharam ao tentar fazer com que o Parallels usasse a interface vboxnet0
do Virtualbox ou mesmo bridge0
do OS X quando tentei fazer isso. Parece que o Parallels só conecta adaptadores físicos, não virtuais.
E é sobre isso. Agora, os detalhes:
VM paralela - "o roteador" Usando o dhcpserver padrão do Parallel (nenhuma configuração necessária, a menos que você queira alterar as informações de ip / netmask padrão). Precisamos ativar o encaminhamento de pacotes e configurar o nat com o iptables.
root@router:~# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.37.129.7 netmask 255.255.192.0 broadcast 10.37.129.255
ether 08:00:27:2a:20:8e txqueuelen 1000 (Ethernet)
RX packets 35 bytes 10016 (9.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 873 bytes 62313 (60.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
root@router:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.37.129.2 0.0.0.0 UG 100 0 0 eth0
10.37.129.0 0.0.0.0 255.255.192.0 U 100 0 0 eth0
root@router:~# sysctl -w net.ipv4.ip_forward = 1
root@router:~# iptables -t nat -A POSTROUTING --out-interface wlan0 -j MASQUERADE
root@router:~# iptables -A FORWARD --in-interface eth0 -j ACCEPT
Virtualbox vm ("o cliente"):
Adaptador 1 como ponte com vnic1
(nota: talvez seja necessário executar primeiro a vm do Parallel para que vnic1
seja criado). Eu preciso adicionar o ip do roteador ( 10.37.129.7
) como o gateway padrão:
root@client:/home/user# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:a2:10:ba
inet addr:10.37.129.9 Bcast:10.37.129.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1292 (1.2 KiB) TX bytes:684 (684.0 B)
Interrupt:19 Base address:0xd000
root@host:/home/user# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.37.129.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
root@client:/home/user# route add default gw 10.37.129.7
root@client:/home/user# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.37.129.7 0.0.0.0 UG 0 0 0 eth0
10.37.129.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
E é isso. Isso funcionou para mim. Agora eu posso acessar a internet do cliente (Virtualbox) através de uma placa wireless conectada diretamente ao roteador (Parallels) sem a intervenção do host (OS X).