Como posso ligar uma VM a uma rede remota?

1

Eu tenho um sistema executando o QEMU / KVM (via libvirt). Uma de suas VMs precisa estar presente em uma sub-rede que não é local para o host da VM. Eu tenho um sistema Linux na sub-rede remota. Existe uma maneira de configurar algum tipo de ponte encapsulada para fazer com que a VM apareça presente no sistema remoto? Esta será uma situação temporária (esperamos que só até o proprietário da VM poder configurar o sistema) e o desempenho da rede e a manutenção a longo prazo não sejam realmente problemas.

Para fornecer algumas informações mais concretas:

Meu host da VM tem o endereço IP 192.168.54.155/24. A VM tem o endereço IP 192.168.65.71/24. Eu tenho um sistema remoto em 192.168.65.254/24. O host da VM e o sistema remoto estão executando o Scientific Linux 6.5. Eu não controlo a rede ou o roteamento entre o host da VM e o sistema remoto. Eu não tenho acesso ao sistema operacional convidado na VM. Eu gostaria que o tráfego para o endereço IP da VM acabasse na VM, mesmo que seu host não esteja diretamente conectado à rede apropriada.

Eu tentei usar o tunelamento de iproute2 , mas o Linux não me permite adicionar um túnel a uma ponte. Eu considerei usar algum tipo de iptables mangling para direcionar o tráfego através do túnel e fazer a VM pensar que está na rede certa, mas não tenho certeza se há abordagens melhores. Qual é a melhor maneira de realizar esse truque?

    
por asciiphil 31.07.2014 / 18:08

1 resposta

2

Você tem algumas opções, mas ambas são uma dor no traseiro.

Para te ajudar um pouco, você está procurando por um 'túnel de camada 2' (saber o que procurar é metade da batalha!)

Opção 1: use um túnel 'gretap'. Isto é suportado ingenuamente na maioria das distribuições linux modernas.

Opção 2: Instale o openvswitch no host e configure túneis GRE entre os hosts. Provavelmente você pode configurar o openvswitch para fazer isso, mas a maneira mais fácil é usar um controlador OpenFlow (como o Ryu, que vem com um módulo de chave simples) para uni-los em um grande comutador virtual.

Eu fiz a opção 2, mas a opção 1 seria a maneira mais fácil (embora eu nunca tenha funcionado devido a outras restrições).

    
por 23.08.2014 / 02:37