Eu tenho algumas VMs em meu pequeno cluster KVM. Estas VMs estão interligadas via uma rede privada com NAT, isto é, as podem falar entre si e para acessar a Internet o KVM fornece a elas um gateway. Contudo da minha rede local, eu não consigo acessá-las.
O KVM me oferece algumas opções:
- Converter a rede privada em uma rede privada roteável e assim acessar as VMs que desejo;
- Usar o iptables no host e criar encaminhamentos para os IPs privados;
- Usar vnc para acessar as máquinas;
- Usar rdp para acessar as VMs.
Neste post vou mostrar como fazer a quarta opção.
O primeiro passo é habilitar o RDP no seu computador.
Se ele for um Ubuntu (mais novo) o processo é relativamente simples. Abra a janela de configurações (Settings), selecione a opção de compartilhamento (sharing) na lista à esquerda, indica na figura abaixo como (1).
Você precisa ativar o compartilhamento (2) e então selecionar a opção de acesso remoto (3). Com isto uma tela semelhante a mostrada na image abaixo será mostrada. Selecionando (4), você permite que um cliente remoto (utilizando as credenciais em 6) possa ver o conteúdo da tela. Para que ele possa interagir com a tela, é necessário ativar também a opção (5).
Pronto. Sua estação está com RDP ativado.
Agora você precisa alterar o domínio XML da VM que você ativou o RDP.
Você pode fazer isto utilizando o comando
Você pode fazer isto utilizando o comando
sudo virsh edit <nome da vm>
ou se possuir o programa virt-manager instalado, fazer a alteração utilizando a interface gráfica.
Vou mostrar a segunda opção, contudo as linhas a serem inseridas são as mesmas via virsh edit.
Como você vai editar o XML é preciso habilitar esta opção no virt-manager, pois por dafault ela fica desabilitada para evitar que cometamos algum erro sem querer. Recomendo que depois da alteração você desabilite a edição novamente.
Selecione a opção de preferencias no menu (como indicado abaixo) e na tela de preferência habilite a edição.
Selecione a VM e clique em mostrar detalhes do hardware virtual (botão em azul com "i" no toolbar).
Note que à direita existem duas abas. Vamos editar diretamente na aba XML.
A primeira coisa a fazer é acrescentar uma definição de esquema ao domínio (XML namespace).
A linha original é:
<domain type='kvm'>
e vamos trocá-la para:
<domain xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0' type='kvm'>
IMPORTANTE: Isto não acrescenta nenhum risco de segurança ao seu ambiente. A única diferença é que agora novas tags (que pertencem ao qemu) podem ser inseridas na configuração.
Acrescentamos agora ao final do arquivo de configuração as linhas que permitem o redirecionamento das portas
<qemu:commandline> <qemu:arg value='-netdev'/> <qemu:arg value='user,id=mynet.0,net=10.0.10.0/24,hostfwd=tcp::22222-:22,hostfwd=tcp::3389-:3389'/> <qemu:arg value='-device'/> <qemu:arg value='e1000,netdev=mynet.0'/> </qemu:commandline>
Estas linhas fazem dois redirecionamentos:
- a porta SSH (22) da VM é redirecionada para a porta 22222 do host
- a porta RDP (3389) da VM é redirecionada para a porta 3389 do host
Assim se o host (computador onde as VMs estão rodando) tem o endereço 192.168.10.10, você pode acessar a VM usando
Perceba que a configuração de rede da VM não é importante. Por exemplo, neste caso a VM em questão tem a seguinte configuração:
Outra abordagem
Pode ser o caso que ao tentar fazer as alterações da forma indicada acima o virsh não aceite as alterações. Ao tentar adicionar o namespace na tag de dominio, quando o xml é gravado, o namespace não é inserido.
Neste caso, mantive a tag original do domínio, isto é,
<domain type='kvm'>
e acrescentei as linhas finais com a definição do esquema na tag de commandline
<commandline xmlns="http://libvirt.org/schemas/domain/qemu/1.0"> <arg value='-netdev'/> <arg value='user,id=mynet.0,net=10.0.10.0/24,hostfwd=tcp::22222-:22,hostfwd=tcp::3389-:3389'/> <arg value='-device'/> <arg value='e1000,netdev=mynet.0'/> </commandline>
Ao tentar gravar desta forma, funcionou.
Comentários
Postar um comentário