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: