Re: problem z NAT
On Thursday, 2 of September 2010, Maciej Koska wrote:
> > 1. Maskujesz tylko pakiety, ktore fizycznie opuszczaja interfejs
> > zewnetrzny.
>
> Czyli:
>
> $IPTABLES -t nat -A POSTROUTING -o $EXT_IF -j SNAT --to-source $EXT_IP
>
> -----------------------
>
> > 2. DNAT do serwera www dla pakietow wpadajacych z zewnatrz na adres ip
> > zewnetrzny
>
> Czyli:
>
> $IPTABLES -t nat -A PREROUTING -p tcp -i $EXT_IF -d $EXT_IP --dport 80 -j
> DNAT --to-destination 10.0.0.4:80
>
> ----------------------
>
> > 3. DNAT do serwera www dla pakietow kierowanych na ip zewnetrzne ale
> > przychodzace na interfejs wewnetrzny.
>
> Czyli:
>
> $IPTABLES -t nat -A PREROUTING -p tcp -i $INT_IF -d $EXT_IP --dport 80 -j
> DNAT --to-destination 10.0.0.4:80
>
> -----------------------
>
> No i żeby nie było, że tu jest problem to dla porządku:
>
> $IPTABLES -A FORWARD -p tcp --dport 80 -j ACCEPT
>
>
> Taki setup przetestowałem i z zewnątrz nie ma problemu, ale z wewnątrz jak
> był tak jest, poprawcie mnie jeśli gdzieś się pomyliłem
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
--
/\-\/\-\/\-\/\-\/\-\/\-\/\
\ Kruk@epsilon.eu.org /
/ http://epsilon.eu.org/ \
\/-/\/-/\/-/\/-/\/-/\/-/\/
Reply to: