Re: CBQ - przykłady kształtowania łącza SDI
neuron
neuron w box43.pl
Wto, 11 Lut 2003, 08:59:28 CET
Użytkownik "Adam Piatyszek" <ediap w ET.PUT.Poznan.PL> napisał w
wiadomości news:20030210080419.GA2272 w lespaul...
> Mam dwa interfejsy: eth0 - sieć lokalna z 4 kompami i ppp0 - internet
> przez SDI. Chcę rozdzielić pasmo na trzy klasy. Najmniejszą ok. 5% dla SSH,
> Telneta i DNS z najwyższym priorytetem. Drugą ok. 60% łącza dla WWW, SMTP,
> FTP, POP3, IMAP, GaduGadu z średnim priorytetem i resztę na takie śmieci jak
> Kazaa. Chciałbym też, żeby trzecia klasa mogła pożyczać resztę pasma dla
> klasy drugiej. Tak wygląda pomysł.
> Może macie jakieś doświadczenia w tej kwestii, ewentualne sugestie co
> może wyglądać inaczej.
Wysylam na grupe, bo moze komus innemu tez sie przyda i bedzie mogl
wygrzebac to w archiwum ;) a sam wygrzebalem to gdzies na www.
Podzial pasma przy pomocy HBQ ze scholastycznym dzieleniem SFQ i malym
bonusem dla admina ;) Siec lokalna na 10Mbit lacze internetowe SDI,
podzial dla 4 uzytkownikow.
Skrypt ten dzieli lacze dla kazdego uzytkownika bez ustawiania
priorytetow na uslugi. Poprostu jak ktos sciaga cos z Internetu to
zapycha lacze samemu sobie, np. kazza i nie moze sciagna przez to
poczty ;). Wczesniej testowalem podzial lacza w oparciu o uslugi
ustawiajac najwyzszy priorytet kolejno: SSH, pop3, smtp, ntp, www i
reszta - zuplenie nie sprawdzalo sie to na takim lacza jakim jest SDI.
Ten skryp ponizej sprawuje sie calkiem niezle.
#!/bin/sh
#kolejka roota to nam tworz galazki 1:2, 1:3, 1:4, 1:5
tc qdisc add dev eth0 root handle 1:0 cbq bandwidth 10Mbit rate 112.5Kbit avpkt 1000
#
# Polecenie to zaklada glowny filtr oraz tworzy galazki: 1:2, 1:3, 1:4, 1:5
tc filter add dev eth0 parent 1:0 prio 10 protocol ip u32 divisor 16
#
#
# dla admina :) 192.168.0.2 ///////////////////////
# *********************************************************************
tc class add dev eth0 parent 1:0 classid 1:3 cbq bandwidth 10Mbit rate
28Kbit weight 1 prio 5 allot 1514 maxburst 20 avpkt 1000 borrow isolated
#
# SFQ sprawiedliwy podzial
tc qdisc add dev eth0 parent 1:3 sfq perturb 10
# filtry na IP
tc filter add dev eth0 parent 1:0 prio 10 u32 match ip dst 192.168.0.2 flowid 1:3
tc filter add dev eth0 parent 1:0 prio 10 u32 match ip src 192.168.0.1 flowid 1:3
#
# 192.168.0.3 /////////////////
# glowna klasa z porzyczaniem lacza 1,8Kb start a pozniej pozycza
tc class add dev eth0 parent 1:0 classid 1:2 cbq bandwidth 10Mbit rate
28Kbit weight 1 prio 5 allot 1514 maxburst 20 avpkt 1000 bounded sharing
# SFQ czyli sprawiedliwy podzial lacza
tc qdisc add dev eth0 parent 1:2 sfq perturb 10
#
# filtry decyduja co zrobic
tc filter add dev eth0 parent 1:0 prio 10 u32 match ip dst 192.168.0.3 flowid 1:2
tc filter add dev eth0 parent 1:0 prio 10 u32 match ip src 192.168.0.1 flowid 1:2
#
# 192.168.0.4 ///////////////////////
# glowna klasa z porzyczaniem lacza 1,8Kb start a pozniej pozycza
tc class add dev eth0 parent 1:0 classid 1:4 cbq bandwidth 10Mbit rate
28Kbit weight 1 prio 5 allot 1514 maxburst 20 avpkt 1000 bounded sharing
# SFQ czyli sprawiedliwy podzial lacza
tc qdisc add dev eth0 parent 1:4 sfq perturb 10
#
# filtry decyduja co zrobic
tc filter add dev eth0 parent 1:0 prio 10 u32 match ip dst 192.168.0.4 flowid 1:4
tc filter add dev eth0 parent 1:0 prio 10 u32 match ip src 192.168.0.1 flowid 1:4
#
# 192.168.0.5 i ///////////////////////
# glowna klasa z porzyczaniem lacza 1,8Kb start a pozniej pozycza
tc class add dev eth0 parent 1:0 classid 1:5 cbq bandwidth 10Mbit rate
28Kbit weight 1 prio 5 allot 1514 maxburst 20 avpkt 1000 bounded sharing
# SFQ czyli sprawiedliwy podzial lacza
tc qdisc add dev eth0 parent 1:5 sfq perturb 10
#
# filtry decyduja co zrobic
tc filter add dev eth0 parent 1:0 prio 10 u32 match ip dst 192.168.0.5 flowid 1:5
tc filter add dev eth0 parent 1:0 prio 10 u32 match ip src 192.168.0.1 flowid 1:5
Więcej informacji o liście dyskusyjnej pld-users-pl