![]()
From: Serdar KOYLU (serdar@uludag.org.tr)
Date: Fri 02 Apr 2004 - 08:31:58 EST
Selamlar...
> Bir sistemin sadece 1 tane DEFAULT gateway'i olabilir.
Boyle bir kaide nereden cikti ki?
> Yazdiklariniza gore makineye birden fazla default gateway girmissiniz.
Elbette, gayette makuldur. Ama bundan makul bir sonuc beklemeyin cogu
zaman.
Dilediginiz kadar gateway verebilirsiniz ama QOS saglayamazsiniz ornek
sorunda. Cunku, gateway'larin paylasimi kuyruk doluluk oranina gore
yapilir.
Yapmaniz gereken aslen son derece basit ve gerekli bir durumdur. Once
biraz teori. Eger siz modem gibi limitli CPU/RAM (Buffer) kaynaklari
olan bir alete kuyruk yonetimi yuklerseniz aleti bogarsiniz,
performansiniz duser. Ornegin 28.800 bagli bir modeme yukluce 115.200
baglantiyla ile yuklenirseniz, modemin bufferi yetmez ve de icinde
olusturdugu kuyruk yonetimi icin ekstra efor harcar. Sonucta paket kaybi
yukselir ve performans gereksiz yere duser. Bir DSL modem (LL hattinizda
aslen SDSL/HDSL) icin upload hizindan daha yuksek bir DTE upload girisi
olursa o modem de ayni soruna muhatap kalir. Dahasi, sizin sisteminiz
modemin nasil bir kuyruk yonetimi yaptigini vs. bilemez. Sonucta iki
gateway icin kuyruklar iki ethernet uzerinden hep bos olur (nerdeyse) ve
bir tur round robin duzenegi gerceklesir. Her iki modem esit upload
kosullarina sahip olmadigi icin (genel olarak 128K SDSL+FR, 256K
ADSL+PPPoE den daha verimlidir) tam olarak performans almaniz guclesir.
Bu sorunun giderilmesi icin oncelikle kuyruklama islemi icin Host PC'yi
kullanmak daha makuldur. Modeme gidecek verileri modemin upload hizindan
daha dusuk, ama sadece biraz dusuk bir hizda ayarlamak yeterli olur.
Boylece modem kuyruk yonetimi vs. ugrasmaz, daha verimli calisir.
Peki bu tur bir upload sinirlama mekanizmasi koymazsaniz ne olur? Hic
bir sey. Gereksiz Paket kaybinin getirecegi performans kaybindan baska
pek bir sorun olmaz. Bu sistemin durumuna ve yukune gore %1 de olabilir,
%70'te..
Iki gateway olmasi durumunda yapilacak sey, her iki gateway'i sisteme
eklemektir oncelikle.
# ip route add default via adsl.ip.adresi dev eth0
# ip route add default via fr.ip.adresi dev eth1
Legacy "route" komutunu kullanmaktan kacinin. Zarari yoktur ama bu tur
karisik networkler icin iproute2 paketi daha etkilidir.
Simdi geri kalan sey ise, bunlar icin bant limitini ayarlamaktir. SDSL
(FR-LL) ile ADSL ayri interface'ler (ethernet) uzerinde oldugu icin
yapilacak sey cok kolay. Bir suru kuyruk algoritmasi vardir ama TBF,
Tocken Bucket Filter basit ve CPU/RAM dostu son derece kullanisli bir
kuyruk olur bu durumda.
FR (LL) icin:
# tc qdisc add dev eth0 root tbf rate 127kbit latency 50ms burst 1540
ADSL icin:
# tc qdisc add dev eth1 root tbf rate 250kbit latency 100ms burst 1540
Artik daha precise bir kuyruga sahibiz. Boylece bufferleri dolu oldugu
halde modemlere al yolla diyerek paket zorlamaya devam etme durumundan
kurtuluyoruz.
Bu ekstra duzenegi yapinca artik Linux'u gateway olarak kullanan herkes
interface'ler uzerinden internete cikabilir. Bir sorun uygun
masquerading/NAT ayarlarini yapmak olabilir:
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Fakat ilk sualde soyle bir sorundan bahsediliyor:
>Bazı makinalar her iki baglantıyıda kullanmak zorunda bazıları ise
sadece
interneti kullanmaları yeterli
Simdi ben bunu pek anlamadim. Burada amaclanan tam olarak aciklanirsa,
her tur islem yapilabilir. Mesela, bazi makineler her zaman internete
ADSL uzerinden ciksin, tum http istekleri ADSL uzerinden yapilsin, su
makine her zaman LL uzerinden ciksin vs. gibi bir suru islev yerine
getirilebilir. Ornek olarak:
Yukaridaki ip satirlari yerine sunlari yazin:
# ip route add default via adsl.ip.adres dev eth0 table 200
# ip route add default via ll.ip.adres dev eth1
# ip rule add fwmark 0x1000 table 200
Simdi, 0x1000 olarak isaretlenen paketler, adsl uzerinden gidecektir.
Digerleri ise FR uzerinden.
# iptables -t mangle -A PREROUTING -s 1.2.3.4 -j MARK --set-mark 0x1000
1.2.3.4 adresinden gelenler her zaman adsl uzerinden ciksin.
# iptables -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark
0x1000
Web baglantilari her zaman ADSL uzerinden yapilsin..
gibi bir suru istek yerine getirilebilir bu sekilde. Eger tam olarak
istenenleri soylerseniz, policy routing vs. gerekenleri bulabiliriz
saniyorum..
Saygi ve sevgiler..
![]()