Rozdelenie linky pomocou CBQ.init

04.11.2003 12:04 | blackhole

Mame doma malu siet s niekolkymi pocitacmi a routerom, ktorym sme napr. cez wifi napojeny na internet...

Situacia:
Mame doma malu siet s niekolkymi pocitacmi a routerom, ktorym sme napr. cez wifi napojeny na internet. Rutrovanie nastavene mame, ak nie nastavime podla clanku ktory som pisal minule. Najvecsim problemom tejto siete bude asi to, ze vy chcete hrat po nete counter-strike a vas sused si v pohode stahuje. Nie je na tom nic zle iba ten ping je nejaky divny;) V nasledujucich riadkoch sa dozvieme ako si rozdelit linku. Pouzil som nie prilis najjednoduchejsi sposob, ale vysledok stoji za to.

Teoria:
V prvom rade si treba uvedomit, ze nie sme schopny obmedzit ake data a hlavne ake mnozstvo dat nam z internetu pride. Technologia shapovanie spociva v tom, ze server zacne posielat data klientov co najvecsou moznou rychlostou. Pakety sa rutia linkou, no bohuzial niektore sa stratia a je nutne poslat ich znova a pretoze servru nechodia potvrdzovacie pakety, zacne ich vysielat pomalsou rychlostou. Tim nam da server cas na spracovanie udajov, respektive na obmedzenie nasho oblubeneho suseda v stahovani;) My tuto sluzbicku vyuzijeme a naschval budeme zahadzovat pakety a tim dosiahneme nas vysnivany ciel. Pozor na to, aby sme zahadzovali iba TCP pakety, pretoze zahadzovanie ICMP alebo UDP paketov by neviedlo k nicomu.

Prax:
Na to aby sme mohli rozbehnut shapovanie (rozdelovanie linky) potrebujeme utilitku iproute2, v ktorej sa nachadza pre nas potrebny program tc a taktiez spustaci skript cbq.init. Linky na tieto veci nebudem pisat, lebo 3 sekundy guglovania to vyriesia. Aby sme vobec cbq mohli dat do prevadzky musime si v jadre zapnut podporu shapovania.

Networking options->QoS and/or fair queueing->
M QoS and/or fair queueing
M CBQ packet scheduler
M RED queue
M SFQ queue
M TEQL queue
M TBF queue
M GRED queue
M Ingress Qdisc
* QoS support
* Rate estimator
* Packet classifier PI
M TC index classifier
M Routing table based classifier
M Firewall based classifier
U32 classifier
M Special RSVP classifier
* Traffic policing

Subor cbq.init si umiestnime do adresara so spustacimi subormi. (/etc/rc.d)
V adresari /etc/sysconfig vytvorime adresar cbq.
mkdir /etc/sysconfig/cbq
Vytvorime tieto subory:

cbq-1001.pc01-in
cbq-1001.pc01-out
cbq-2001.pc02-in
cbq-2001.pc02-out
cbq-3001.pc03-in
cbq-3001.pc03-out

Su to konfiguraky pre nase pocitace, ktore mame v sieti.

Priklad:
Priklad suboru cbq-1001.pc01-in.

DEVICE=eth0,100Mbit,10Mbit
RATE=64Kbit # max rychlost linky - download
WEIGHT=1Kbit # tolerancia +-1 kbps
PRIO=5 # priorita
RULE=192.168.0.11 # ip adresa

Priklad suboru cbq-1001.pc01-out.

DEVICE=wlan0,11Mbit,5.5Mbit
RATE=64Kbit # max rychlost linky - upload
WEIGHT=1Kbit # tolerancia +-1 kbps
PRIO=5 # priorita
RULE=192.168.0.11 # ip adresa

Priklad zo zivota:

Chceme uprednostnit hranie counter striku po internete pred prezeranim stranok a stahovanim.

cbq-9001.pc.cs-in

DEVICE=eth0,100Mbit,10Mbit
RATE=100Mbit # bez obmedzenia rychlosti
WEIGHT=1Kbit # tolerancia +-1 kbps
PRIO=1 # priorita
RULE=192.168.0.1/24:27005 # strana klienta - cela siet

cbq-9001.pc.cs-out

DEVICE=wlan0,11Mbit,5.5Mbit
RATE=11Mbit # bez obmedzenia rychlosti
WEIGHT=1Kbit # tolerancia +-1 kbps
PRIO=1 # priorita
RULE=192.168.0.1/24:27005 # strana servera - cela siet

Netreba zabudnut ze ak nieco zmenime v konfiguraku musime cbq restartnut.
/etc/rc.d/cbq.init restart

Moznosti je vela treba vyskusat.
Podrobny manual je na http://www.lartc.orgalwarez