Como exatamente o roteador sabe que, para acessar uma VM, ele precisa primeiro acessar meu computador? O VirtualBox altera o ARP da rede local?
Algumas pessoas dizem que você precisa definir o modo promíscuo para que a ponte funcione, para que ele possa capturar pacotes com o endereço MAC da VM, mas como você pode fazer isso com Ethernet se todo o tráfego vai diretamente para a máquina de destino e a VM não pode cheirar como em Wi-Fi?
Na Ethernet: O roteador não precisa saber. As pontes são transparentes – os pacotes não são direcionados especificamente ao endereço MAC de uma ponte; eles podem ser enviados diretamente para o endereço MAC do sistema de destino e, se houver alguma ponte entre eles, é sua função encaminhar os pacotes pela porta correta.
Portanto, quando o roteador faz pela primeira vez uma consulta ARP para o endereço IP da VM, a ponte VirtualBox do seu host a encaminha sem modificação e permite que a VM responda com seu próprio endereço MAC.
Tudo isso funciona exatamente como se você tivesse um switch Ethernet com vários dispositivos por trás dele.
No Wi-Fi: A ponte VirtualBox reescreve todos os pacotes para que pareçam vir do endereço MAC do host. (Ou seja, faz NAT para endereços MAC.)
Considere primeiro o que faz o tráfego ir diretamente para a máquina de destino. As pontes funcionam aprendendo a localização dos endereços MAC a partir do tráfego gerado pela própria máquina – por exemplo, quando um switch recebe um pacote da origem Y através da porta 3, ele aprende que os pacotes para o destino Y também devem ser enviados através da porta 3.
Assim, quando sua VM gera tráfego a partir de seu próprio endereço MAC, todas as pontes Ethernet ao longo do caminho aprenderão sua localização e o tráfego para o endereço MAC da VM será automaticamente direcionado de volta pelo mesmo caminho – não há necessidade de “farejar” nada porque os pacotes serão entregues diretamente na interface Ethernet do host.
Ao colocar a NIC física em modo promíscuo, a VM é capaz de receber solicitações ARP para seu endereço IP, às quais responde com seu endereço MAC virtual. Portanto, a tabela ARP do roteador contém uma entrada para o endereço IP da VM, mapeada para o endereço MAC virtual da VM, assim como teria para um sistema operacional executado em bare metal em qualquer outro computador.
Quaisquer switches intermediários verão o tráfego proveniente do endereço MAC virtual da VM e aprenderão que esse endereço MAC pode ser alcançado por essa porta do switch e atualizarão a tabela CAM do switch (tabela de ponte de qual endereço MAC está em qual porta) de acordo.