![]()
From: R. Tolga KORKUNCKAYA (tolga@mavibilgisayar.com)
Date: Thu 06 May 2004 - 14:47:18 EEST
Selamlar,
Benzer coklu baglanti sorunlari olanlar icin,
Daha once sirketimiz icin yazmis oldugum programcigi yolluyorum. Yeterli
bilgi iceride var, ayrica referanslar da koydum. Bundan sonrasi size
ait. Kolay gelsin.
==========================================================================
#!/bin/bash
#
# MultiRoute.sh
#
# Birden cok ve farkli baglantilari balanslariz,
# ayni anda kullanimini saglariz, hatta connection
# tracking yapariz.
#
# (C) 2003 R. Tolga KORKUNCKAYA
# tolga@mavibilgisayar.com
#
# ________
# +------------+ /
# | | |
# +-------------+ Provider 1 +-------
# __ | | | /
# ___/ \_ +------+-------+ +------------+ |
# _/ \__ | if1 | /
# / \ | | |
#| Local network -----+ Linux router | | Internet
# \_ __/ | | |
# \__ __/ | if2 | \
# \___/ +------+-------+ +------------+ |
# | | | \
# +-------------+ Provider 2 +-------
# | | |
# +------------+ \________
#
# Benim sistemimde sunlar mevcut:
# eth0 : Symetric DSL - MarketWeb 1024k/1024k
# eth2 : ttNet aSymetric DSL 512k/2048k
# eth1 : Yerel Ag
#
# bunlarin disinda ek baglantilari ekleyebilirsiniz.
# Sadece asagidaki scripti ve referans belgeleri okumaniz yeterli olacaktir.
#
# 80'inci port istekleri Squid'e yonlendirilmis bir iptables
# nat, CBQ Bandwidth management, ve 2.4 serisi bir kernel var
# - RedHat 9 uzerinde...
#
# degiskenler
IFI="eth1" # Yerel ag ayarlari
IPI="192.168.1.1" #
NMI="255.255.255.0" #
NWI="192.168.1.0"
IFE1="eth0" # SDSL Baglanti ayarlari
IPE1="212.45.77.242" # IPADDRESS
NWE1="212.45.77.240" # NETWORK
NME1="28" # eg. 192.168.1.0/24 <-- kisim
BRD1="212.45.77.255" # BROADCAST
GWE1="212.45.77.241" # GATEWAY
IFE2="eth2" # aDSL baglanti...
IPE2="192.168.2.2" # IPADRESS
NWE2="192.168.2.0" # NETWORK
NME2="24" # eg. 192.168.1.0/24
BRD2="192.168.1.255" # BROADCAST
GWE2="192.168.2.1" # GATEWAY
######################################################################
# IPTABLES dalgalari
#
# bunlar gerekli, uzun uzun anlatmayacagim. routerda onceden kurulmus
# ve calisan bir iptables nat oldugunu varsayiyoruz. Asagidaki kurallar
# Connection takibi icin gerekli minimum seti olusturuyor.
# ornek vermek gerekirse dis bacaklardan eth2 uzerinden bir connection
# kurdugunuzda, karsilikli konusmalarda sizin cevaplarinizin karsiya
# surekli ayni rotadan gitmesi gerekir, bunu nasil saglariz...
#
# Eger belirli bir porta cikan isteklerinizi sadece belirli bir baglantiya
# yonlendirmeniz gerekiyorsa, ornegin VPN veya uzak sunuculariniza ulasir
# ken bir statik ip gerektiriyorsa, iptables'in paketleri MARK edebilme
# ozelligini kullanmaniz gerekir.
#
iptables -t nat -A POSTROUTING -o $IFE1 -s $NWI/$NMI -j SNAT --to $IPE1
echo 2
iptables -t nat -A POSTROUTING -o $IFE2 -s $NWI/$NMI -j SNAT --to $IPE2
# Eger ISP (veya ISPlerden biri) PPPoE gibi bir protokol kullaniyor
# ve sabit ip vermiyor ise yukaridakiler yerine asagidakileri kullanin,
#
#iptables -t nat -A POSTROUTING -o $IFE1 -s $NWI/$NMI -j MASQUERADE
#iptables -t nat -A POSTROUTING -o $IFE2 -s $NWI/$NMI -j MASQUERADE
iptables -t filter -N keep_state
iptables -t filter -A keep_state -m state --state RELATED,ESTABLISHED -j
ACCEPT
iptables -t filter -A keep_state -j RETURN
iptables -t nat -N keep_state
iptables -t nat -A keep_state -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A keep_state -j RETURN
iptables -t nat -A PREROUTING -j keep_state
iptables -t nat -A POSTROUTING -j keep_state
iptables -t nat -A OUTPUT -j keep_state
iptables -t filter -A INPUT -j keep_state
iptables -t filter -A FORWARD -j keep_state
iptables -t filter -A OUTPUT -j keep_state
#######################################################################
# loopback device kuruluyor.
ip link set $IFI up
ip addr add $IPI/$NMI brd + dev $IFI
ip rule add prio 50 table main
# Var olan gecerli routing tablosunu bir silelim hele
ip route del default table main
ip link set $IFE1 up
ip addr flush dev $IFE1
ip addr add $IPE1/$NME1 brd $BRD1 dev $IFE1
ip link set $IFE2 up
ip addr flush dev $IFE2
ip addr add $IPE2/$NME2 brd $BRD2 dev $IFE2
ip rule add prio 201 from $NWE1/$NME1 table 201
ip route add default via $GWE1 dev $IFE1 src $IPE1 proto static table 201
ip route append prohibit default table 201 metric 1 proto static
ip rule add prio 202 from $NWE2/$NME2 table 202
ip route add default via $GWE2 dev $IFE2 src $IPE2 proto static table 202
ip route append prohibit default table 202 metric 1 proto static
# Asagidaki weight degerleri ile oynayarak farkli bant genisliklerine
# sahip olan hatlarin bir arada kullanimini saglayabilirsiniz.
# Burada dikkat edilmesi gereken nokta sudur, weight degerlerini 200 / 100
# gibi verirseniz, baglantilar once 200 kere birinci hatta sonra 100 kere
# diger hatta gideceginden verim alamazsiniz.
# Yani bu bir oran degil siralama onceligidir.
# Bu sebeple mumkun olan en dusuk degerleri vermelisiniz. 2 / 1 veya 5 /
1 gibi...
# Ornegin %20 icin 100 / 20 vermek yerine 5 / 1 vermelisiniz.
ip rule add prio 222 table 222
ip route add default proto static nexthop via 212.45.77.241 dev eth0
weight 1 nexthop via 192.168.2.1 dev eth2 weight 100
#ip route add default table 222 proto static nexthop via $GWE1 dev $IFE1
nexthop via $GWE2 dev $IFE2
# Yukaridaki scripti duzenleyerek eklemeler yaparak 2 den fazla hatti
baglaya
# bilirsiniz.
#
# kolay gelsin...
#
# Kaynaklar:
#
#
#
# http://www.ssl.bg/~ja/
# http://muse.linuxmafia.org/netsane/
# http://lartc.org/howto/lartc.rpdb.multiple-links.html
#
http://www.ibiblio.org/pub/Linux/docs/HOWTO/ADSL-Bandwidth-Management-HOWTO
# http://www.ibiblio.org/pub/Linux/docs/HOWTO/Bandwidth-Limiting-HOWTO
A. Selman İnanç wrote:
> Biraz daha a=E7mam gerekirse
>
> LL IP Adress : 193.192.10.10
> LL Netmast : 255.255.255.248
> LL LOCAL GW: 10.21.19.9
> LL DNS: 193.192.100.100
>
> ADSL IP ADRESS : Degisken
> ADSL GW : 10.21.19.9
> ADSL DNS 1 : 212.156.4.6
> ADSL DNS 2 : 212.156.4.7
>
> LINUX SERVER
>
> Eth 1 : LL : 193.192.10.10
> Eth 2 : ADSL : 10.21.19.9
> Eth 3 : LAN ETHERNET : 10.21.19.254
>
> =DDstedigim oncelikle eth1 i default gw olarak kullanarak internete =
> cikmaya
> calissin kullanicilar eger basarili olmazsa default gw olarak eth2 yi
> kullansinlar
>
>
> Tesekkurler
>
>
>
> ______________________
>
> A. Selman =DDNAN=C7
> IT MANAGER
> =20
> =DDHLAS HOLD=DDNG =DDN=DEAAT GRUBU
> Mobile 1 : +90 (536) 282 92 92=20
> Mobile 2 : +90 (505) 386 09 19
> Phone : +90 (212) 454 38 52
> Fax : +90 (212) 454 45 60
>
> =20
>
> -----Original Message-----
> From: linux-network-bounce@liste.linux.org.tr
> [mailto:linux-network-bounce@liste.linux.org.tr] On Behalf Of Aytan =
> KIZILTAN
> Sent: Thursday, May 06, 2004 2:05 PM
> To: linux-network@liste.linux.org.tr
> Subject: [linux-network] Re: ADSL + LL ayni anda kullanma
>
> WAN LL dedi=F0iniz bir internet ba=F0lant=FDs=FD m=FD? =DEube =
> ba=F0lant=FDs=FD m=FD?
> ----- Original Message -----=20
> From: "A. Selman =DDnan=E7" <selmaninanc@ihlas.net.tr>
> To: <linux-network@liste.linux.org.tr>
> Sent: Wednesday, May 05, 2004 4:34 PM
> Subject: [linux-network] ADSL + LL ayni anda kullanma
>
>
>
>>Arkadaslar;
>>
>>
>>Linux 7.3 Makinede 3 Adet Ethernet Var
>>
>>
>>
>>eth0 : 10.21.19.0------------LAN
>>
>>eth1 : 193.192.10.10------WAN LL
>>
>>eth2 : 81.215.19.162------WAN ADSL
>>
>>
>>
>>Olsun..
>>
>>
>>
>>Network : 10.21.19.x/24
>>
>>
>>
>>Yapmak istedi=F0im Clientlar (10.21.19.x/24) =F6ncelikle eth2 =
>
> uzerinden
>
>>internete ciksinlar yani default gateway leri eth2 olsun eger eth2
>>calismazsa yani oradan internete cikamazlarsa eth1'i kullansinlar.
>>
>>
>>
>>Bunu default gateway eklerken metric belirterek yani eth2 1 metric =
>
> eth1
> ise
>
>>5 metric olsun gibi soylediler nasil yapidigini bilen veya nasil
>>yapabilecegim konusunda yardimci olabilecek arkadaslar varsa cok =
>
> sevinirim
>
>>
>>
>>Tesekkurler
>>
>>
>>
>>
>>
>>______________________
>>
>>A. Selman =DDNAN=C7
>>
>>IT MANAGER
>>
>>
>>
>>=DDHLAS HOLD=DDNG =DDN=DEAAT GRUBU
>>
>>Mobile 1 : +90 (536) 282 92 92
>>
>>Mobile 2 : +90 (505) 386 09 19
>>
>>Phone : +90 (212) 454 38 52
>>Fax : +90 (212) 454 45 60
>>
>>
>>
>>
>>
>>
>>
>
>
>
>
>
![]()