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

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: