Como conectar redes neste caso de virtualização aninhado?

0

Este é um follow-up para minha pergunta anterior . Com base no feedback de Daniel B e Deltic, mudei do VirtualBox para o QEMU, que pode manipular convidados de 64 bits em uma VM como host (Hyper-V, no meu caso) - um cenário conhecido como virtualização aninhada .

Depois de instalar o QEMU e ler algumas documentações, converti com sucesso a imagem OVA fornecida em um formato QCOW2 (nativo para o QEMU). Notei que a imagem resultante é muito maior que a original (6.4G vs. 1.3G), mas, talvez, isso seja normal. Então aprendi como iniciar uma VM usando o QEMU e tentei fazer exatamente isso:

qemu -nographic -hda <IMAGE_NAME>.qcow2 &

Em seguida, percebi (e mais tarde confirmado por outras leituras da documentação do QEMU) que o esquema de rede padrão implica falta de ponte entre os sistemas operacionais host e guest. Minha tentativa de ativar a ponte, da seguinte forma, falhou (com base em esta postagem do blog ):

qemu -nographic -net bridge:br0 -hda <IMAGE_NAME>.qcow2 &

Estou hesitante em usar o método, com base no uso de bridge-utils , descrito aqui , pois ele pode atrapalhar a rede para o sistema operacional host. Além disso, com base em este documento , tentei redirecionar as portas (veja abaixo), mas isso não aconteceu trabalho para mim também. Se interfaces TAP é a solução, então como devo aplicá-la à minha situação?

Minha situação é que a VM convidada inicia um aplicativo Web, que pode ser acessado em um modo local, navegando até a URL http://192.168.xx.yy/<APPLICATION_NAME> . Basicamente, eu preciso expor o aplicativo (em execução no modo de virtualização aninhado) para o mundo. Então, minha pergunta é dupla:

1) qual é a melhor (e, esperamos, a maneira mais fácil) para ativar a ponte de rede na minha situação;

2) devo e, se sim, como exatamente posso redirecionar as portas para permitir que os usuários acessem o aplicativo em https://<FQDN of the host VM>/<APPLICATION_NAME> , de preferência, através de portas não padrão?

    
por Aleksandr Blekh 15.07.2016 / 08:09

1 resposta

1

Seu host em si já é uma máquina virtual e parece que você não tem acesso ao servidor físico ou à rede. Dependendo do seu provedor de hospedagem, a ponte pode ou não funcionar.

Pré-requisitos de ponte

Uma máquina virtual conectada a uma ponte precisa ser capaz de obter seu próprio endereço IP, bem como usar seu próprio endereço MAC exclusivo . Você precisaria verificar com seu provedor de hospedagem para ver quais endereços MAC e restrições de endereço IP sua máquina virtual Hyper-V possui.

endereços MAC

Particularmente, se o seu provedor de hospedagem impedir a falsificação do endereço MAC (geralmente para impedir o seqüestro de redes de outras máquinas virtuais), talvez você não consiga usar a ponte sem o suporte especial do seu provedor de hospedagem.

Endereços IP

Se você conseguir superar esse obstáculo, sua máquina virtual aninhada precisará obter um endereço IP. Você pode fazer isso se seu provedor de hospedagem lhe atribuir mais de um endereço IP ou um intervalo de endereços IP.

Alternativa: NAT

Se você não puder atender a ambos os pré-requisitos para bridging, poderá configurar o NAT e depois encaminhar as portas necessárias da máquina virtual aninhada pela única rota de rede do host.

É um pouco confuso avançar, mas definitivamente factível. Eu usei com sucesso as instruções da libvirt antes.

Construindo a Ponte

Existem várias maneiras de construir uma ponte , mas como você está no Debian, eu darei você tem uma configuração /etc/network/interfaces da amostra que implementa a ponte na inicialização:

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
        address 192.168.0.111
        netmask 255.255.255.0
        gateway 192.168.0.1
        metric 0
        bridge_ports eth0
        bridge_stp on
        bridge_fd 0
        bridge_maxwait 0
        dns-nameservers 8.8.8.8 8.8.4.4
iface br0 inet6 dhcp

A configuração acima assume que a interface escravizada é eth0 e seu host é 192.168.0.111 na sub-rede 192.168.0.0/24 .

O ideal é que você possa configurar uma ponte como essa e sua máquina virtual aninhada tenha liberdade para usar outro endereço nessa sub-rede.

Suponho que você tenha uma rede IP privada / fixa porque, na sua pergunta, você escreveu " 192.168.xx.yy ", então tudo o que resta para tornar sua máquina virtual aninhada acessível ao mundo externo é anexar um público / endereço IP flutuante para esse endereço IP privado / fixo.

Novamente, se você tiver apenas um endereço IP e / ou um endereço MAC para trabalhar, talvez seja necessário optar pelo NAT e pelo encaminhamento de porta. Caso contrário, você deve ser capaz de moldar esta configuração de rede para se ajustar à sua rede e configurar a ponte como você queria.

    
por 15.07.2016 / 12:38