Na maioria dos casos, a menos que você precise de isolamento real de grupos de máquinas, não precisará fazer nada especial. A abordagem padrão de usar uma interface de ponte para conectar máquinas virtuais à rede host funciona muito bem na maioria dos casos, mesmo sem precisar de hardware de rede real no host. Na verdade, a interface de ponte nesta configuração padrão existe somente para que o gerenciador de máquina virtual tenha algo para conectar as interfaces de rede virtual das máquinas virtuais, porque é difícil expor diretamente uma VM à rede sem algum tipo de intermediário camada.
Como um exemplo mais concreto, aqui está um trecho da saída de ip link show
em um dos meus sistemas em que executo várias máquinas virtuais:
6: br0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether fe:20:b5:bd:42:4b brd ff:ff:ff:ff:ff:ff
7: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast aster br0 state UNKNOWN mode DEFAULT group default qlen 1000
link/ether fe:98:c5:54:95:2a brd ff:ff:ff:ff:ff:ff
8: tap1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast aster br0 state UNKNOWN mode DEFAULT group default qlen 1000
link/ether fe:97:56:bf:0c:81 brd ff:ff:ff:ff:ff:ff
Neste sistema, a interface de ponte de software br0
serve como um segmento de rede ao qual todas as VMs se conectam, fornecendo funcionalidade equivalente a um comutador de rede de hardware. Cada uma das interfaces tap
é criada automaticamente pelo QEMU para cada máquina virtual que eu executo (listei apenas duas dessas interfaces aqui, mas tenho regularmente pelo menos uma dúzia) quando uso a opção -net bridge
para o QEMU e age como o cabo que conecta a NIC (virtual) na VM à interface da bridge. Neste caso em particular, eu realmente não tenho nenhum hardware físico conectado a essa interface de ponte (então é o que às vezes é chamado de ponte 'flutuante' ou 'virtual') e, em vez disso, uso regras de roteamento no sistema host para fornecer acesso de rede externo para as máquinas virtuais. Se eu quisesse isolar algumas VMs do resto, poderia facilmente criar uma nova interface de ponte e dizer ao QEMU para conectá-las a ela em vez de br0
.
No seu caso, com base nas tags da pergunta, você parece querer usar o VirtualBox, que tem uma funcionalidade semelhante a isso com seus adaptadores 'Rede Interna' e 'Somente Host'. O primeiro funciona da mesma forma que a configuração de bridge que eu mencionei acima, exceto que o próprio VirtualBox fornece a bridge ao invés do sistema operacional, e fornece a opção de agir como um servidor DHCP. O segundo é literalmente um link ponto-a-ponto entre a VM e o sistema host. não é muito útil para experimentos de configuração de baixo nível, mas é maravilhosamente útil para experimentar com VPNs (porque o link só vai para o host, você pode estar certo de que quaisquer duas VMs estão falando apenas através de um link VPN).
Agora, enquanto tudo isso funcionará bem para experimentar a configuração de rede, não é exatamente a opção mais eficiente. Dependendo das especificidades exatas do tipo de experimentação que você deseja fazer, você pode descobrir que Open vSwitch ou ns-3 são melhores para o que você quer fazer.