Eu tenho um convidado do CentOS 7 kvm em 192.168.122.7. Para fins de solução de problemas, o selinux está desativado. Há um aplicativo escutando na porta 9000, e a porta 9000 / tcp está aberta no firewall no convidado e no host. A zona padrão é a única zona em uso.
No servidor host (também no CentOS 7), executei os dois comandos a seguir, que achei que deveriam ser suficientes para fazer isso funcionar:
# firewall-cmd --add-masquerade
# firewall-cmd --add-forward-port=port=9000:proto=tcp:toport=9000:toaddr=192.168.122.7
O objetivo é que um cliente solicite uma conexão com o IP do host kvm, mas tenha a conexão estabelecida com o convidado kvm com o host simplesmente passando o tráfego de um lado para outro entre o cliente e a VM.
O aplicativo em si foi descartado como a causa do problema, sendo que ele funciona muito bem se eu substituir o adaptador nat por um adaptador em ponte, e eu posso interagir com o convidado em seu kvm nat IP sem problemas. E eu sei que um adaptador em ponte em vez do nat funcionaria , mas essa é uma opção de último recurso. Eu quero manter todos os meus vms restritos ao kvm nat, se possível.
E finalmente, eu preciso que isso seja feito com o firewalld e não com o iptables.
Até onde eu sei, esses dois comandos deveriam ter funcionado, mas eles não funcionaram - acabei de ter conexão recusada ao tentar conectar. Eu não vejo o que eu fiz de errado aqui. Estou faltando um passo? Eu formatei o comando incorretamente? Ou o que?