[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: iptables + xen + Verbindung interne IP -> extern wirkendes Portforwarding



Zusammenfassung:

DomU1 schickt an Dom0 (über die Bridge) folgendes Paket:
P(10.0.0.3-->211.211.211.211:80)

das Paket wird per dnat geändert in:
P(10.0.0.3-->10.0.0.3:80)

Server auf 10.0.0.3 nimmt Paket an und schickt folgendes Antwort Paket ab:
P(10.0.0.3-->10.0.0.3)

hier würde sich jetzt DomU1 Client wundern weil er ja Antwort von 211.211.211.211 erwartet und droppen, DESWEGEN mach ich also hier ein SNAT und passe die quelladresse an so das aus dem Paket folgendes wird:
P(211.211.211.211-->10.0.0.3)

So weit so gut, und hier die Umsetzung:


iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING

# NAT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

# 1. port forwarding von intern
iptables -A PREROUTING -t nat -p tcp -i xeninternbr0 -d 211.211.211.211 --dport 80 -j DNAT --to 10.0.0.3:80
# 2. snat für portforwarding von intern
iptables -A POSTROUTING -t nat -p tcp -d 10.0.0.3 --dport 80 -j SNAT --to-source 211.211.211.211
# 3. port forwarding von extern
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 80 -j DNAT --to 10.0.0.3:80

Es funktioniert jetzt erst einmal alles so wie es soll. Frage ist, gibt es Verbesserungen ? Sollte ich bei Regel "2." eventuell noch -o <interface> mit angeben ? und wenn ja welches ? Irgendwie hab ich da kein passendes gefunden. Egal welches ich versuche, nix funktioniert.






Stefan Bauer schrieb:
Stefan Bauer schrieb:
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 80 -j DNAT --to 10.0.0.3:80
-i hier dein Interface, welches im 10.8.0.0-Netz hängt, sollte helfen.

Nachtrag: Wenn du mit einer DNAT-Regel den Empfänger des Paketes
veränderst, musst du auch den Absender verändern, da sonst der
ursprüngliche Absender, das Paket, welches er empfängt verwirft, da
der Absender nicht der ist, mit dem er ursprünglich gesprochen hat.

http://jengelh.medozas.de/images/dnat-mistake.png



Reply to: