У меня один гость CentOS 7 квм на 192.168.122.7. В целях устранения неполадок selinux выключен. Существует приложение, прослушивающее порт 9000, и порт 9000/tcp открыт на брандмауэре гостя и хоста. Зона по умолчанию - единственная используемая зона.
На хост-сервере (также CentOS 7) я выполнил следующие две команды, которые, по моему мнению, должно быть достаточно для этой работы:
# firewall-cmd --add-masquerade
# firewall-cmd --add-forward-port=port=9000:proto=tcp:toport=9000:toaddr=192.168.122.7
Цель состоит в том, чтобы клиент запросил соединение с IP-адресом хоста kvm, но установил соединение с гостем kvm, а хост просто передавал трафик назад и вперед между клиентом и виртуальной машиной.
Само приложение было исключено как причина проблемы, так как оно работает нормально, если я заменяю адаптер nat мостовым адаптером, и я могу без проблем взаимодействовать с гостем на его kvm nat IP. И я знаю, что мостовой адаптер вместо nat будет работать, но это последний вариант. Я хочу, чтобы все мои vms были ограничены kvm nat, если это вообще возможно.
И, наконец, мне нужно, чтобы это было сделано с firewalld, а не iptables.
Насколько я могу судить, эти две команды должны были работать, но они не работали - я просто получаю отказ в соединении при попытке соединения. Я не вижу, что я здесь сделал неправильно. Я пропускаю шаг? Я неправильно отформатировал команду? Или что?