Wie kann ich Datenverkehr an einen natted kvm-Gast weiterleiten, wenn Clients eine Verbindung zum Host mit Firewall herstellen?

410
Mella

Ich habe einen CentOS 7 kvm Gast bei 192.168.122.7. Zur Fehlerbehebung ist Selinux deaktiviert. Auf Port 9000 wird eine Anwendung überwacht, und in der Firewall auf dem Gast und auf dem Host ist Port 9000 / tcp geöffnet. Die Standardzone ist die einzige Zone, die verwendet wird.

Auf dem Host-Server (auch CentOS 7) habe ich die folgenden zwei Befehle ausgeführt, die meiner Meinung nach ausreichen sollten, um diese Funktion auszuführen:

# firewall-cmd --add-masquerade

# firewall-cmd --add-forward-port=port=9000:proto=tcp:toport=9000:toaddr=192.168.122.7

Das Ziel besteht darin, dass ein Client eine Verbindung zur IP des kvm-Hosts anfordert, die Verbindung jedoch mit dem kvm-Gast hergestellt werden muss und der Host lediglich den Datenverkehr zwischen Client und vm hin- und herleitet.

Die Anwendung selbst wurde als Ursache für das Problem ausgeschlossen, da sie einwandfrei funktioniert, wenn ich den nat-Adapter durch einen überbrückten Adapter ersetze, und ich mit dem Gast auf seiner kvm-nat-IP-Adresse kommunizieren kann, ansonsten ohne Probleme. Und ich weiß, dass ein überbrückter Adapter anstelle des nat funktionieren würde, aber das ist eine Option für den letzten Ausweg. Ich möchte alle meine vms auf das kvm nat beschränken, wenn überhaupt möglich.

Und schließlich brauche ich dies mit firewalld und nicht mit iptables.

Soweit ich das beurteilen kann, hätten diese beiden Befehle funktionieren sollen, was aber nicht der Fall war. Ich habe nur die Verbindung abgelehnt, wenn ich eine Verbindung herstellen wollte. Ich sehe nicht, was ich hier falsch gemacht habe. Verpasse ich einen Schritt? Habe ich den Befehl falsch formatiert? Oder was?

0

0 Antworten auf die Frage