O host tem um único IP externo disponível, então eu configurei meus convidados KVM com NAT.
Como configurar um encaminhamento de porta para encaminhar alguns dos pedidos de fora para os convidados?
Não encontrei nenhuma documentação sobre isso. A resposta mais próxima é provavelmente essa resposta , mas também é mencionado que há uma maneira mais fácil de fazer isso no libvirt 0.8.3. Alguém sabe de uma maneira mais atual de fazer isso?
Respostas:
Aqui está uma maneira melhor de configurar o encaminhamento de porta, usando um script de gancho ( origem ).
Em
/etc/libvirt/hooks/qemu
:Você deve definir as quatro variáveis na parte superior para ajustar sua configuração de libvirt.
Você precisará reiniciar o libvirt-bin, o que no ubuntu é feito com:
então você precisará reiniciar o convidado. No Ubuntu, você precisará ajustar
/etc/apparmor.d/usr.sbin.libvirtd
para permitir que o script hook seja executado:Ao lado de
acrescentar
Em seguida, recarregue o apparmor:
Provavelmente existe uma maneira de configurar automaticamente
$GUEST_IPADDR
usando virsh / dumpxml / iface-dumpxml, mas não o encontrei. Como alternativa, o IP pode ser definido estaticamente na rede xml: documentation .Tanto quanto sei, os filtros de rede podem ser usados apenas para restringir o que acontece na rede virtual e não são úteis para o encaminhamento de portas.
fonte
/etc/libvirt/hooks/** rmix,
no arquivo de configuração do apparmor por padrão, e parece ter o mesmo efeito. Eu poderia executar o script sem modificar a configuração do apparmor.Eu estou em uma situação semelhante. Eu tenho um Windows Server em execução no KVM na rede NAT nativa que está conectada no host por meio da interface virbr0. Quero acessar a VM pela área de trabalho remota. Portanto, eu tenho que encaminhar o tráfego para a porta 3389 (RDP) para a porta VM 3389. Consegui isso com algumas regras de tabela de ipables.
É claro que o HOST-IP, VM-IP e VM-NET devem ser adotados. No entanto, mexer com iptables e libvirt é complicado. No momento, estou procurando uma solução para obter acesso à Internet na minha VM que perdi devido a mexer com as regras do iptable :-(
fonte
Acredito que a resposta que você faz referência ainda mostra as regras apropriadas do iptables. No entanto, agora você pode usar um gancho de script para criar e destruir regras quando as máquinas virtuais são iniciadas e paradas. Como Isaac disse na resposta anterior, também existem filtros de rede na libvirt atual, mas não tenho certeza de como ou mesmo se eles podem ser usados para abrir portas para convidados com NAT.
fonte
como é configurada a rede de convidados? se estiver em ponte, tudo o que você precisa fazer é encaminhar as portas para os IPs dos convidados. Se seus convidados estão atrás de outro NAT, o libvirt é configurado, então fica complicado
mas, de qualquer forma, aqui você simplesmente trata as VMs como trataria uma máquina física
fonte