iptables und NAT/Portweiterleitung funktionieren nach Serverneustart nicht

iptables und NAT/Portweiterleitung funktionieren nach Serverneustart nicht

Ich bin neu bei NAT und iptables. Auf meinem physischen Server läuft CentOS 6 mit installiertem KVM, 2 weitere Linux-Boxen sind als VM gestartet – VM2 und VM3, und ihre IPs sind dementsprechend 192.168.122.2 und 192.168.122.3. Da ich nur eine echte IP habe, wird NAT für die Portweiterleitung externer Anfragen an die VM-Anwendung verwendet, z. B. Port 30022 an VM3s SSH (Port 22). Nach der Einrichtung funktioniert alles einwandfrei, es läuft bereits seit einem Monat, aber nachdem ich ein RAM-Upgrade und einen Serverneustart durchgeführt habe, funktioniert NAT/Portweiterleitung nicht mehr.

Mehr Informationen:

  • Iptables läuft auf dem Host-Betriebssystem, aber NICHT auf Gast-Betriebssystemen.
  • Das Host-Betriebssystem iptables hat NAT wie folgt konfiguriert:
Ziel Schutz Option Quelle Ziel
DNAT tcp -- überall überall tcp dpt:30022 bis:192.168.122.3:22
DNAT tcp -- überall überall tcp dpt:20022 bis:192.168.122.2:22(22)
  • Ergebnis des Befehls iptables -t nat -L -v -n:
Pakete Bytes Ziel Schutz Opt-in Out Quelle Ziel
6 304 LOG tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:30022 LOG-Flags 0 Ebene 4 Präfix ROUTE APP3
6 304 DNAT tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:30022 bis:192.168.122.3:22
3 152 DNAT tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:20022 bis:192.168.122.2:22
  • Das bedeutet, dass das Paket von der NAT-Regel behandelt wird, während ich versuche, von meinem lokalen PC (separates Netzwerk) aus eine Telnet-Verbindung mit 30022 herzustellen.

Ich kämpfe seit ein paar Tagen... irgendjemand Hilfe?

Antwort1

Sie sollten mit überprüfen, ob die IP-Weiterleitung auf Ihrem Host aktiviert ist cat /proc/sys/net/ipv4/ip_forward. Dieser Befehl sollte ausgeben 1. Wenn sie nicht aktiviert ist, sollten Sie sie mit aktivieren echo 1 > /proc/sys/net/ipv4/ip_forward.

verwandte Informationen