Regeln für die Virtualisierung von IPTables

Regeln für die Virtualisierung von IPTables

Ich konnte bisher keine Lösung dafür finden. Ich habe nicht viel Erfahrung mit IPTables, daher wäre ich für jede Unterstützung dankbar, die Sie mir geben können.

Ich habe einen Server mit ein paar VMs darauf. Der Hauptknoten hat eine Remote-IP und ein Subnetz. Jede VM wird mithilfe von Linux-Virtualisierung und einem gerouteten Netzwerk erstellt und erhält eine lokale IP. Dann verwende ich IP-Tabellen, um ihnen eine Remote-IP zuzuweisen, indem ich den gesamten Datenverkehr von ihrer dedizierten Remote-IP an ihre lokale IP weiterleite. Das scheint größtenteils zu funktionieren, aber es scheint, dass der gesamte Datenverkehr, der von jeder VM gesendet wird, von der primären IP des Knotens kommt und nicht von der Remote-IP, die ich an die VM weitergeleitet habe.

Hier sind meine IPTables-Regeln:

iptables -t nat -A POSTROUTING -s 192.168.123.0/24 ! -d 192.168.123.0/24 -j MASQUERADE

iptables -A FORWARD -d 192.168.123.0/24 -o virbr1 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -s 192.168.123.0/24 -i virbr1 -j ACCEPT iptables -A FORWARD -i virbr1 -o virbr1 -j ACCEPT

Und dann für jede VM:

iptables -t nat -A PREROUTING -d {Their-remote-IP} -j DNAT --to-destination 192.168.123.3
iptables -A FORWARD -p tcp -d 192.168.123.3 -m state --state NEW,ESTABLISHED,RELATED -j   ACCEPT
iptables -A FORWARD -m udp -p udp -d 192.168.123.3 -j ACCEPT
iptables -A FORWARD -m icmp -p icmp -d 192.168.123.3 -j ACCEPT

Beispiel-Setup

Primary Node IP: X.X.X.172
Additional IP X.X.X.173 1 (NATed to VM 1) to local address 192.168.123.2
Additional IP X.X.X.174 1 (NATed to VM 2) to local address 192.168.123.3
Additional IP X.X.X.175 1 (NATed to VM 3) to local address 192.168.123.4

Der gesamte ausgehende Datenverkehr der VMs erfolgt jedoch über XXX172

Wir sind für alle Vorschläge sehr dankbar.

Antwort1

Und genau das MASQUERADEpassiert: Es überschreibt die ursprüngliche Quelladresse mit der Adresse der Schnittstelle, über die das Paket gesendet werden soll. Wenn Sie die ursprüngliche Adresse behalten möchten, verwenden Sie kein Masquerading.

verwandte Informationen