On Thu, Sep 02, 2010 at 02:58:22PM +0200, Mariusz Kruk wrote:
> Już pisałem, w tym setupie dzieje się tak:
>  - komputer wysyła pakiet 10.0.10.0:23756 (powiedzmy) -> $EXT_IP:80
> - router łapie to na DNAT w preroutingu i zamienia na 10.0.10.0:23756-
> >10.0.0.4:80
> - router przekierowuje pakiet do wyjścia na $INT_IF
> - router wysyła 10.0.10.0:23756->10.0.0.4:80 przez interfejs wewnętrzny
> - serwer dostaje pakiet 10.0.10.0:23756->10.0.0.4:80
> - serwer odpowiada 10.0.0.4:80->10.0.10.0:23756 bezpośrednio do sieci, do 
> której jest przyłączony
> - komputer ignoruje pakiet, bo nie nawiązywał połączenia z 10.0.0.4:80, tylko 
> z $EXT_IP:80.
> Żeby to działało potrzebujesz jeszcze na routerze SNAT z sieci wewnętrznej na 
> $INT_IP

Nie trzeba SNAT, tylko serwer musi routować odpowiedzi dla sieci
lokalnej tak jak dostał czyli przez router. Coś w tym rodzaju:

router:

iptables -t nat -A PREROUTING -p tcp -i $INT_IF -d $EXT_IP --dport 80 -j DNAT 
--to-destination 10.0.0.4:80

sewer:

echo 1 WWW_LOCAL >> /etc/iproute2/rt_tables
ip rule add from all fwmark 1 table WWW_LOCAL
ip route add default via $IP_BRAMA dev eth0 table WWW_LOCAL
iptables -I OUTPUT -t mangle -d $LOCAL_NET -p tcp --sport 80 -j MARK --set-mark 
1


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: 
http://lists.debian.org/[email protected]

Odpowiedź listem elektroniczym