[linux] Re: dvaja ISP a port forward do vnutornej siete

Peter Hudec hudecof na hudecof.net
Čtvrtek Červenec 31 15:02:08 CEST 2003


ahoj,

pozri sa ako mas nastavene
/proc/sys/net/ipv4/conf/(eth?|all)/rp_filter
mal by sa tam mat 0,.
Ak tam je 1 tak ti to urcite nepojde

         hudecof

Rybarik, Michal wrote:
> hello all,
> 
> mam do linux routera pripojenych dvoch providerov a nedokazem ho nastavit tak,
> aby mi fungovali ingoing connections, ktore sa maju forwardovat na server v LANke.
> vysvetlim:
> 
> bol linux router s jednym internet providerom a verejnou ipckou. spojenia na 
> verejny interface routera na porty 25, 80 a 110 sa NATovali na server dnu v LAN.
> vsetky stroje v LAN su maskaradovane. toto chodilo bez problemov.
> 
> teraz pribudla druha linka na ineho internet providera, ktora je len na 
> outgoing connections (je rychlejsia ale nema verejnu IP). zamer je taky,
> aby ISP1 bol pouzivany na ingoing connections a na outgoing do jednej 
> C-ckovej siete u toho providera, a ISP2 na vsetko ostatne.
> 
>   ISP1 (gw 195.x.x.65)
>   -------------------------------------+
>                          195.x.x.66/29 | eth1
>                                  +-----+----+
>                                  |  LINUX   | eth0 10.23.23.5/8
>                                  |  ROUTER  +------+
>                                  +-----+----+      |
>                          172.16.26.2/8 | eth2      |
>   -------------------------------------+           |
>   ISP2-DSL (gw 172.16.26.1)                        |
>                                                    |
>                              +-------------+       |
>                              | SMTP/POP3/  +-------+---------> LAN
>                              | HTTP SERVER |
>                              +-------------+
>                                10.23.23.1
> 
> pripojil som druheho providera, nastavil som interface, routovanie (prikazom
> "route"), pricom default routa bola na ISP2, a na ISP1 bola nastavena jedna 
> staticka routa. outgoing fungoval ok, routoval ma presne tam kam som chcel, ale
> ingoing spojenia nefungovali vobec, ani na forwardovane porty, ani priamo na
> port 22 routera. tcpdumpovanim som zistil ze SYN prisiel od ISP1, SYN+ACK ale 
> chcel odchadzat cez default route (ISP2), co bolo zle.
> 
> zrusil som teda cele toto routovanie na nastavil som ho cez iproute2 (prikaz 
> "ip route"), tak ako je popisane v 
> http://lartc.org/howto/lartc.rpdb.multiple-links.html (vratane doplnenia od roda 
> roarka), plus som pridal vlasnu staticku routu jedneho C-cka na ISP1. v takomto 
> stave funguju outgoing spojenia a aj ingoing cez ISP1 na port 22 routera. nechodia
> a vytrvalo odolavaju porty 25, 80 a 110, ktore maju byt forwardovane dnu do LAN.
> skusal som zrusit iptables-ovy DNAT a vyriesit ingoing z internetu do LAN na dva
> kroky, teda spojenim na router a spojenim z routra do LAN (tieto samostatne funguju).
> spravil som v xinetd na routeri service smtp, ktory sa spoji na port 25 v LAN.
> priamo z routera to funguje, z internetu vsak nie. teraz stahujem na router gcc a 
> idem nakompilovat redir, ale nie som si isty vysledkom. 
> 
> mate niekto nejaku ideu ako rozchodit tie spojenia zvonku do LAN??
> 
> este prikladam konfiguraciu (iproute2 settings je chodivy, iptables su stare a po 
> pridani druheho ISP nechodia):
> 
> 
> echo 1 > /proc/sys/net/ipv4/ip_forward
> 
> IF0=eth0
> IP0=10.23.23.5
> P0_NET=10.0.0.0/8
> 
> IF1=eth1
> IP1=195.x.x.66
> P1=195.x.x.65
> P1_NET=195.x.x.64/29
> 
> IF2=eth2
> IP2=172.16.26.2
> P2=172.16.26.1
> P2_NET=172.0.0.0/8
> 
> ip route add $P1_NET dev $IF1 src $IP1 table T1
> ip route add default via $P1 table T1
> ip route add $P2_NET dev $IF2 src $IP2 table T2
> ip route add default via $P2 table T2
> ip route add $P1_NET dev $IF1 src $IP1
> ip route add $P2_NET dev $IF2 src $IP2
> ip rule add from $IP1 table T1
> ip rule add from $IP2 table T2
> ip route add $P0_NET dev $IF0 table T1
> ip route add $P2_NET dev $IF2 table T1
> ip route add 127.0.0.0/8 dev lo table T1
> ip route add $P0_NET dev $IF0 table T2
> ip route add $P1_NET dev $IF1 table T2
> ip route add 127.0.0.0/8 dev lo table T2
> 
> ip route add default via $P1  # len docasne aby mohli ludia robit, ma byt P2
> ip route add 195.x.x.0/24 via $P1
> 
> # stare nastavenie cez route, s nim nechodili ziadne ingoing spojenia, bolo nahradene iproute2
> #/sbin/route add -net 195.x.x.0 netmask 255.255.255.0 gw 195.x.x.66
> #/sbin/route add default gw 172.16.26.1
> 
> /sbin/iptables -t nat -A POSTROUTING -o eth1 -s 10.0.0.0/8 -j SNAT --to 195.x.x.66
> /sbin/iptables -t nat -A POSTROUTING -o eth2 -s 10.0.0.0/8 -j SNAT --to 172.16.26.2
> 
> # forwarding portov 25,80,110 zvonku na novell
> /sbin/iptables -A PREROUTING -t nat -p tcp -d 195.x.x.66 --dport 25 -j DNAT --to 10.23.23.1:25
> /sbin/iptables -A PREROUTING -t nat -p tcp -d 195.x.x.66 --dport 80 -j DNAT --to 10.23.23.1:80
> /sbin/iptables -A PREROUTING -t nat -p tcp -d 195.x.x.66 --dport 110 -j DNAT --to 10.23.23.1:110
> 
> # aby isli pakety z vnutornej siete smerovane na forwardovane porty
> /sbin/iptables -A POSTROUTING -t nat -s 10.0.0.0/8 -d 10.0.0.0/8 -j SNAT --to 195.x.x.66
> 
> # aby isli pakety ktore vznikli na tomto stroji na forwardovane porty
> /sbin/iptables -A OUTPUT -t nat -p tcp -d 195.x.x.66 -j DNAT --to 10.23.23.1
> 
> za kazdu pomoc vopred dakujem.
> 
> michal rybarik


-- 
mail: [hudecof na hudecof.net]     www: [http://hudecof.net]
cellular: [+421 905 703541]     icq: [99518783]
gpg: [http://hudecof.net/data/hudecof.gpg]





Další informace o konferenci linux