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

Re: problem z NAT



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


Reply to: