[linux-ileri] Re: iptables ve tc

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Serdar KÖYLÜ (serdarkoylu@fisek.com.tr)
Date: Fri 10 Sep 2004 - 10:46:52 EEST


Selamlar..

> merhaba arkadaslar,
> oncelikle egerli zamaniniz icin ozur diliyorum.
> benim sorunum, iptables ve tc ile bandwidth kisitlamasi ile ilgili.
> "iptables" ile paketleri isaretlemek ve "tc" il de bu paketlere band
> genisligi siniri koymak mumkun bildigim kadariyla.
> webde bayagi bir gezdim. genelde FORWARD chaini uzerinden paketler
> isaretleniyor. ben de ayni sekilde INPUT ve OUTPUT chainlerinden
> paketleri isaretlemeya calistim:

http://seminer.linux.org.tr/seminer-notlari/inettr-2002/advroute.sxi
http://seminer.linux.org.tr/seminer-notlari/iptables-051002.sxi

Bu notlari incelerseniz, paketlerin routing bilesenlerine ugramak uzere
gectigi yolu daha iyi anlayabilirsiniz. FORWARD zincirinde yapacaginiz
mark islemi, routing islevinde etkisiz olacaktir. Bu sonucta sadece
classless (TBF gibi) kuyruk yonetimlerinin uygulanabilmesi anlamini
tasir. Kisaca ve kabaca giden toplam bantgenisligini ayarlayabilirsiniz.

Eger paketleri prerouting zincirinde isaretlerseniz, advanced router
bunu isleyip classfull kuyruklara gosterebilecektir.

> iptables -t mangle -A INPUT -p tcp --sport 21 -j MARK --set-mark 4
> iptables -t mangle -A OUTPUT -p tcp --dport 21 -j MARK --set-mark 3
>
> tc qdisc add dev eth0 root handle 10: cbq bandwidth 100Mbit avpkt 1000
> mpu 64
> tc class add dev eth0 parent 10:0 classid 10:1 cbq rate 32Kbit weight
> 3Kbit allot 1514 prio 1 avpkt 1000 bounded
> tc filter add dev eth0 parent 10:0 protocol ip handle 3 fw flowid 10:1
>
> muhtemelen tc ile ilgili bir sorunum var ama "tc"yi hic bilmiyorum. bu
> satirlari da zaten webden kopyala yapistirla aldim.

Sanirim ftp'den gelen datayi 32kbit ile sinirlamak istiyorsunuz. Bu gibi
basit islemler icin cbq yerine htb kullanmak daha dogru olacaktir.
100Mbit/32kbit gibi bir oranda cbq yeterli hassasiyeti saglamakta
zorlanir.

# tc qdisc add dev eth0 root handle 1: htb default 10

# tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit burst 15k

# tc class add dev eth0 parent 1:1 classid 1:10 htb rate 99mbit ceil 100mbit burst 15k
# tc class add dev eth0 parent 1:1 classid 1:20 htb rate 32kbit burst 15k

# tc filter add dev eth0 parent 1:0 protocol ip handle 3 fw flowid 1:20

Gibi satirlar mumkundur..

Ayrica, bu satirlardan soyle bir ongorude bulunabiliyorum. Yerel aginiz
eth0'a bagli. Siz eth1 (veya ppp0, veya fr0 vs. bir baska interface'den)
internet baglantisi aliyorsunuz. Bu kurallariniz da yerel agin ftp
erisimini kisitlamak uzere mevcut. Bu durumda INPUT ve OUTPUT
chainlerinde yapacaginiz iptables tanimlari da bir ise yaramiyor
elbette.

Bu boyle degilde, siz ayni makinenin uzerinde qos setting yapmak
istiyorsaniz, bu pek mumkun degil. 'dev eth0' gibi bir tarif sadece
sizden giden paketler icin gecerli olur, size gelen paketlere duzenleme
yapamazsiniz. Bu durumda IMQ veya ingress device'lerle calismaniz
gerekir.

Diger yandan asil bir dertte, ftp'nin 21. Portu kullanmamasidir.
PASSIVE/ACTIVE durumuna gore, 20. veya baska bir bilinmeyen portu
kullanabilir. Kisaca, siz 21. Port icin bandwith limitleme yapsaniz bile
bu ftp down/uploadlari etkilemeyebilir.

Goreceginiz gibi bu isin puf noktasi bir hayli fazla. O yuzden,
oncelikle tam olarak network yapinizi ve istediklerinizi bir not edin.
Bu kadarini yaptiginiza gore yeterince arastirma yapamamissiniz. Fakat,
bu konuda yeterince kaynak bulabilmek gercekten guc. En azindan boyle
maillere 10K cevaplar yazariz, belki biri arsivler, SSS'e koyar filan
da, az bucuk bir kaynak olusur..

Saygi ve sevgiler..


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.