[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