Eu tenho duas máquinas host executando o VirtualBox. Preciso fazer com que as VMs em cada host conversem com as VMs no mesmo e no outro host. A solução mais simples seria usar redes em bridge, e as restrições de segurança em nossa LAN da empresa proíbem isso.
Eu tentei seguir a descrição de Jeff Warren dada como resposta a esta pergunta (muito similar) aqui: Virtualbox: conectando redes somente host em hosts separados
Infelizmente, o link para a documentação da Microsoft sobre "Configurar vários gateways de rede" parece estar quebrado. Eu segui o melhor que pude.
Eu tenho os dois hosts ("host1" e "host"), cada um configurado com sua rede "somente host" do VirtualBox (aquela no host1 usando o intervalo de endereços IP 192.168.33.0/24, aquele no host2 usando 192.168.34.0/24). Além disso, em cada host, adicionei uma rota à outra rede do VirtualBox. Agora eu posso pingar os hosts através do endereço IP que eles têm na rede host-only respectiva, ou seja, no host1, eu posso ping com sucesso 192.168.34.1 e no host2, eu posso ping 192.168.33.1, mas não consigo pingar qualquer VM dentro a rede somente host no respectivo outro host. Acredito que as entradas de rota locais adequadas (ou seja, entre o host e a rede somente host do host) já existam, por exemplo, no host1, "route print" mostra as seguintes entradas para essa rede somente host do VB do host
192.168.33.0 255.255.255.0 On-link 192.168.33.1 276
192.168.33.1 255.255.255.255 On-link 192.168.33.1 276
192.168.33.255 255.255.255.255 On-link 192.168.33.1 276
Se eu leio isso corretamente, a primeira regra envia quaisquer solicitações para um IP na rede 192.168.33.0/24 para a minha interface somente de host, a segunda é específica para o endereço do host dentro da própria rede, e a última é é para transmissões. Aparentemente, meu host não está roteando corretamente as solicitações, mas somente aceita solicitações (também) sob seu IP na respectiva rede host-only local.
Alguma idéia do que poderia estar faltando? O "Roteamento e Acesso Remoto" está sendo executado em ambas as máquinas (se eu pará-lo, o ping para o endereço IP na rede "somente host" não funcionaria, então está realmente fazendo alguma coisa).
Também ativei o roteamento IP conforme descrito aqui link
configurando HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parâmetros \ IPEnableRouter para 1 e reinicializar as duas máquinas, mas isso não ajudou.
UPDATE Depois de adicionar rotas a todas as VMs, agora posso executar o ping com êxito em VMs em hosts diferentes. Ai, agora eu tenho o problema que quando eu agora ping entre VMs no host1 (que é uma máquina Win7) recebo respostas de ping duplicado, como este:
[root@centos1 network-scripts]# ping 192.168.33.203
PING 192.168.33.203 (192.168.33.203) 56(84) bytes of data.
From 192.168.33.1 icmp_seq=1 Redirect Network(New nexthop: 192.168.33.203)
From 192.168.33.1: icmp_seq=1 Redirect Network(New nexthop: 192.168.33.203)
64 bytes from 192.168.33.203: icmp_seq=1 ttl=64 time=0.363 ms
64 bytes from 192.168.33.203: icmp_seq=1 ttl=64 time=0.368 ms (DUP!)
64 bytes from 192.168.33.203: icmp_seq=1 ttl=63 time=0.566 ms (DUP!)
64 bytes from 192.168.33.203: icmp_seq=1 ttl=63 time=0.571 ms (DUP!)
O Wireshark mostra que, aparentemente, o próprio host está enviando mensagens de "redirecionamento de ICMP para a rede" para todas as minhas VMs o tempo todo (sem nenhum comando "ping" sendo executado dentro da VM). Eu encontrei alguns relatos de um comportamento semelhante, e desligar o serviço "Roteamento e Acesso Remoto" "resolve" isso, mas, infelizmente, esse é o serviço que eu preciso para o roteamento entre hosts. Alguma idéia?
O problema NÃO existe no host2 (que é uma caixa do Win10), tentei descobrir se o roteamento é diferente nos dois hosts, mas não é.
UPDATE 2:
A atualização do VirtualBox de 5.1.18 para 5.2.4 resolveu este problema.
Tags virtualbox routing