Configurações de Rede em uma Máquina Virtual
Este pequeno guia detalha os modos de rede utilizados no Virtual Box, mas é bem similar ao encontrado em outros sistemas de virtualização. Combinando bem os modos é possível criar cenários bastante complexos.
Eis uma tabela resumo com os modos e informações mais essenciais, seguida de uma breve explicação de todos os modos disponíveis.
* É possível configurar um "port forwarding" para, por exemplo, viabilizar um acesso SSH.
NAT (Network Address Translation)
O IP do guest é reconvertido no host usando NAT. Não dá pra acessar a VM guest de fora, nem mesmo do host. Apenas a VM guest acessa o que está fora (na Internet). É a configuração padrão para testar um sistema de forma isolada da máquina host.
NAT Network
As VMs fazem parte de uma mesma rede e acessam redes externas (Internet inclusive). Mas assim como no modo NAT, a máquina host e as demais máquinas da mesma rede local real não enxergam as máquinas da rede NAT. É possível nomear e definir configurações da rede NAT.
Bridged networking
A VM guest se comporta como uma máquina fisica na rede. Ela acessa a placa de rede do host. Se o host trocar entre rede cabeada e wireless é necessário reconfigurar. Muito útil para virtualizar um servidor e acessar no mesmo host, ou na mesma rede.
Internal Networking
Rede interna ao sistema de virtualização. Não conecta ao host e nem à Internet. Precisa IP fixo, ou um DHCP dentro da rede interna (que pode ser configurado automaticamente). Permite múltiplas redes internas e configuração de roteamento.
Host-only Adapter
Similar ao Internal Networking, porém a máquina host participa da rede. Assim é possível usar um navegador, ou clientes SSH. Mas as máquinas dentro da rede host only não acessam redes externas (nem Internet).
Generic Driver
Segundo a dcoumentação "um modo raramente usado". A documentação relata como exemplo a configuração de um tunel UDP para a conexão direta entre duas VMs executadas em diferentes hosts.
Not attached
Desconectado. Bom, talvez uma rede de dormir ajude...
Observação importante! É possível ter mais de uma placa de rede na máquina virtual e elas podem estar configuradas para diferentes modos! Por exemplo, uma configuração com rede interna ou host only pode ter uma máquina com uma placa extra em modo NAT para conectar à Internet.
Potencial problema com IPs duplicados em máquinas clonadas e solução (clique para ler).
PROBLEMA:
Em máquinas clonadas, mais de uma máquina/interface têm o mesmo IP atribuído por DHCP, mesmo com MAC Addresses diferentes!
Não adianta desconectar e reconectar interface, derrubar o link usando ip link set, reiniciar serviços de rede, ou mesmo reiniciar a máquina...
O problema foi detectado no VirtualBox, mas potencialmente acontece em qualquer hipervisor (achei comentários sobre VMware e HyperV também). O problema deve ocorrer com Ubuntu, Debian e derivados.
CAUSA:
A identificação da máquina foi clonada junto e é usada pelo Netplan na solicitação do DHCP. Você pode verificar o id da máquina com hostnamectl.
SOLUÇÃO:
Nas máquinas clonadas rodar os comandos a seguir para "zerar" o machine-id:
echo "" | sudo tee /etc/machine-id
echo "" | sudo tee /var/lib/dbus/machine-id
E reiniciar a máquina para que automaticamente seja gerado um novo machine-id. A rede passará a funcionar.
É possível verificar os IPs atribuídos pelo DHCP do VirtualBox nos arquivos "nome da rede nat"-Dhcpd.leases. Por exemplo:
No Linux:
/home/usuario/.config/VirtualBox/NatNetwork-Dhcpd.leases
No Windows:
C:/Users/usuario/.VirtualBox/NatNetwork-Dhcpd.leases
SOLUÇÃO ALTERNATIVA:
Se você acrescentar no arquivo YAML de configuração da rede (Netplan) a linha abaixo irá resolver a consulta do DNS, mas os clones continuarão com o mesmo id. Acrescente abaixo e no mesmo alinhamento de "dhcp4: true" a seguinte linha:
dhcp-identifier: mac
Referências:
https://www.virtualbox.org/manual/ch06.html#networkingmodes
https://blogs.oracle.com/fatbloke/entry/networking_in_virtualbox1
Voltar para o texto inicial: Máquinas Virtuais e Containers.