LANs virtuais na memória de várias máquinas virtuais em um host

0

Suponha que eu tenha uma máquina host sem NIC.

Eu gostaria de rodar várias máquinas virtuais e conectá-las com LANs totalmente virtuais. Eu quero muitas máquinas e muitas LANs.

Gostaria de experimentar as configurações de rede dessa maneira.

Quais ferramentas permitem que eu faça isso?

    
por Dims 11.01.2018 / 16:45

2 respostas

1

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.

    
por 11.01.2018 / 20:56
1

O VirtualBox fará isso muito bem. Você desejará usar o tipo de rede "somente host" ou "somente interno".

Somente host - cria uma NIC virtual em sua máquina, anexa-a a um comutador virtual ao qual as VMs também se conectam. Você pode ter múltiplos em diferentes sub-redes, etc.

Somente interno - cria um comutador virtual ao qual as VMs se conectam. Nenhuma conexão com seu host. Você pode criar vários e eles não estão conectados uns aos outros, pode ser a mesma sub-rede ou sub-redes diferentes.

O que eu recomendaria é uma VM com 2+ interfaces, uma em uma rede somente host (para que a sua área de trabalho / laptop possa se conectar a ela) e as outras em diferentes redes internas. Configure a VM como um roteador / ponte entre o host e a (s) rede (s) interna (s), crie várias máquinas em cada rede interna.

Eu fiz isso (usando uma interface de bridge em vez de host apenas para que minhas redes privadas pudessem usar internet) e tive 12 vms acontecendo em 3 sub-redes diferentes com roteamento entre todos eles e DNS falso e e-mail e ... configuração. Ótima maneira de aprender e experimentar.

    
por 11.01.2018 / 21:20