Que tipo de rede do VirtualBox é mais adequado para se conectar de e para vários SOs da VM e o SO do HOST

0

Estou executando uma VM do VirtualBox Ubuntu ( coding ) em um Windows 10 host para gravar um python app que é executado em um ambiente Windows. Eu uso este Ubuntu VM como meu caixa de desenvolvimento primário, para escrever código ee testar no Windows 10 HOST.

Eu uso o Putty instalado no meu Windows 10 host para conectar ao meu Ubuntu ( coding ) Convidado OS usando SSH e ter um servidor OpenSSH rodando em ambos os meus Ubuntu ( coding ) VM, bem como o meu Windows 10 host . Eu tenho usado um NAT Networking no meu Ubuntu ( coding ) VM e encaminhado porta 22 do Ubuntu ( coding ) VM para o Windows 10 host . Esta configuração funciona bem para conectar o formulário a VM do Ubuntu ( coding ) para o Windows 10 host .

Agora, preciso configurar alguns testes de integração para meu app . Para fazer isso, preciso para implantar várias VMs (Windows 10 ( ipython ) VM e FreeNAS ( network-file-server ) VM) de tal forma que eles podem falar uns com os outros como eles são colegas em uma rede.

Eu apenas me referirei a essas 3 VM como ipython VM, coding VM. network-file-server VM e o sistema operacional Windows 10 HOST como host para simplificar coisas

Estes são os requisitos:

  1. A coding VM, a ipython VM e a network-file-server VM deve ser capaz de acessar e conversar entre si como se tivessem IP independente endereços e estão em uma rede.

  2. Eu deveria poder acessar a linha de comando no sistema operacional Windows HOST de o coding VM

  3. Eu deveria poder acessar a linha de comando no ipython VM do coding VM

  4. A network-file-server VM deve estar visível para o ipython VM como um compartilhamento de arquivos de rede via \FileServer , bem como pelo endereço IP \192.135.34.44 Eu deveria ser capaz de ssh na network-file-server VM do coding VM.

Enquanto no modo NAT Networking em todas as VMs, eu mudei a porta usada pelo Windows 10 SSH Server para 26 e tentei o seguinte:

  1. ssh [email protected] -p 26

  2. ssh [email protected] -p 26

  3. ssh [email protected] -p 26

  4. ssh [email protected] -p 26

Destes # 1 não funcionou, mas o resto funcionou. Então eu sou capaz de se conectar de alguma forma o Windows host do meu coding VM e do meu Windows host ao meu coding VM pelo SSH, usando apenas portas diferentes para se conectar.

Em seguida, tentei executar o ping do meu ipython VM do meu coding VM e do meu host . Mas isso não funcionou. Minha próxima hipótese depois de ler muitos artigos sobre Brdige vs rede NAT é que, porque eu estou tentando executar minhas VMs como um servidor e configuração do cliente é melhor usar o Bridge Networking para atender a requisitos: link .

Com base nas informações de: link

Mudei para esta rede interligada e defina Promiscuous Mode para Allow On .

agora não posso usar nenhum desses ssh [email protected] -p 26 e ssh [email protected] -p 26 . Espero que agora todos os ips sejam visíveis para uns aos outros, mas agora eu não posso ssh para o Windows HOST em tudo.

Eu me pergunto por que isso está acontecendo?

Para alcançar os requisitos postados na seção acima, devo usar uma rede em ponte ou existe uma configuração melhor?

Editar:

Depois de mudar de NAT para bridge, o endereço IP da minha VM mudou de 10.0.2.2 como um gateway para 10.15.44.22 no coding VM e 10.15.44.23 no ipython VM. Isso indica que eles são pares, mesmo estando atrás de um firewall. Agora, tentei o seguinte:

  1. pingando de host para coding VM e vice-versa

  2. fazendo ping da coding VM para a ipython VM e vice-versa

  3. com ping da coding VM para a host

Resultado:

Pining do coding VM para host e vice-versa funciona bem Ping de ipython VM para o coding VM e para o host funciona bem O ping da coding VM para a ipython VM não funciona O ping do host para o ipython VM não funciona

Hipótese: Existe um firewall bloqueando a conexão com base em: link

Editar2:

Agora posso fazer ping de host para ipython VM para coding VM e vice-versa. Parece que o Firewall do Windows bloqueia echos de entrada de ping , e é por isso que consegui fazer ping no host e coding VM do ipython VM, mas não de volta.

Estas são as tarefas que eu ainda preciso descobrir:

  1. obtenha acesso SSH / telnet às VMs, é importante que eu precise de acesso SSH / telnet o coding VM para o host , para o ipython VM e para o network-folder VM
  2. É necessário configurar o network-file-server VM de modo que fique visível para o ipython VM como \FileServer
  3. Precisa descobrir como inicializar as VMs a partir de um script, atribuir ips estáticos a estas VMs

Se algum de vocês que está lendo isso tiver problemas com sua configuração, fique à vontade para comentar, eu vai tentar ajudar com o que aprendi até agora.

    
por alpha_989 26.02.2018 / 20:16

2 respostas

2

Em primeiro lugar, você tem muita coisa acontecendo neste post e provavelmente deve ser duas perguntas separadas.

Para começar com a pergunta principal sobre qual opção de rede escolher, vamos revisar o que o VirtualBox tem a oferecer primeiro. Estas são as opções que você pode configurar na seção Rede da VM:

  1. Não anexado - Não há uma NIC para o sistema operacional conversar.
  2. NAT - Isso permite que o VirtualBox execute uma minirrede para a VM, mas o segrega do restante da rede à qual o host está conectado. Com alguma configuração, você pode fazer o encaminhamento NAT para acessar a VM a partir da rede host
  3. NAT Network - permite que você defina toda uma rede segmentada por NAT para várias VMs para compartilhar. O acesso ao HOST é configurável.
  4. Adaptador em ponte - Permite que o convidado se una à rede existente como se fosse apenas uma máquina na rede. Isso permite que todos os outros dispositivos na rede host falem diretamente com essa máquina.
  5. Rede interna - Semelhante à rede NAT acima, mas não é permitido sair da rede local, a menos que você tenha criado especificamente um host de gateway; não há DHCP ou gateway padrão.
  6. Host Only Adapter - A máquina host é o único outro item visível na 'rede'
  7. Driver Genérico - Configurável com adaptadores de driver virtual específicos. Além do escopo desta questão.

Dados seus requisitos, mas dependendo do ambiente, o adaptador em ponte pode ser a melhor escolha; especialmente se você está apenas em casa, ou mesmo no trabalho (dependendo das políticas). Isso permite que a VM exista como se fosse apenas uma máquina ao lado de você em sua mesa.

Como alternativa, a próxima melhor opção pode ser usar a opção NAT Network. Isso criaria uma mini-rede através do VirtualBox e permitiria que as máquinas falassem sozinhas. Obter o host configurado para também bater papo com eles é possível, mas não com 127.0.0.1 . o localhost name e o IP ( 127.0.0.1 ) tem um significado especial; comece aqui: link

Para conhecer as etapas da criação de uma rede NAT do VirtualBox, confira aqui: link .

Depois de configurá-lo, você não precisaria alterar as portas de cada sistema, bastaria apenas SSH para esse IP de host diretamente. Você precisará revisar as regras de firewall para todos os servidores para garantir que eles não estejam bloqueando o tráfego desses serviços.

    
por 26.02.2018 / 20:39
1

O que faço para ensinar uma classe de "serviços de rede com linux" é primeiro criar uma VM de roteador que possua interfaces em um NAT (não "Rede NAT"), uma interface em Somente host (para que sua máquina possa conversar com ele) e um em "Rede Interna". Sim, 3 adaptadores. Em seguida, basta configurar o encaminhamento IP na caixa do roteador entre todos os 3, definir uma rota estática em sua máquina host para percorrer a rede somente host para alcançar a rede interna e você está definido. Construa o que quiser na Rede Interna e divirta-se

    
por 27.02.2018 / 01:09