Re: iptables + xen + Verbindung interne IP -> extern wirkendes Portforwarding
Am Sonntag 19 Juli 2009 schrieb Robert Bude:
> 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)
korrekt, das ist dieses Dreiecksproblem.
> # 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
eigentlich ist Regel 1 unnötig.
sollte auch wie folgt gehen:
# 3. port forwarding von extern
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 80 -j DNAT --to
10.0.0.3:80
# 2. snat nur für pakete aus dem LAN zu DNATed Ports der $ExternenIP
(ACHTUNG: hier -d $externeIP)
iptables -A POSTROUTING -t nat -p tcp -o xeninternbr0 -d 211.211.211.211
--dport 80 -j SNAT --to-source 211.211.211.211
Es werden also alle Pakete die aus deinem Lan herausgehen wollen (-o
xeninternbr0) und als Ziel deine externe IP besitzen (und deshalb bei -i
eth0 DNATed werden) SNATed auf deine eigene externe IP, dabei werden
dann die entsprechenden Masquerading Einträge erzeugt, damit das Paket
auch den korrekten Rückweg nimmt.
In der Filter Table gibt es hoffentlich keine weiteren Einschränkungen
(Policy = Accept), sonst muss dort noch "ACCEPTED" werden?
msc
Reply to: