Forgalomir�ny�t�s tcng �s HTB seg�ts�g�vel HOGYAN1.0 v�ltozatMartin A. Brown [1]SecurePipe, Inc. Network Administration mabrown@securepipe.com 2003 �prilis Verzi�t�rt�net Verzi�: 1.0 2003.04.16 �tdolgozta: tab Az LDP �ltal j�v�hagyott Els� kiad�s. Verzi�: 0.5 2002.04.01 �tdolgozta: MAB A doksit �tneveztem HOGYANra, a TLDP-hez el�terjesztve. Verzi�: 0.4 2002.03.31 �tdolgozta: MAB �j p�lda, bucket gyorstalpal�. Verzi�: 0.3 2002.03.16 �tdolgozta: MAB Jav�t�sokat �s jegyzeteket �rt: Jacob Teplitsky, raptor �s Joshua Heling. Verzi�: 0.2 2002.03.15 �tdolgozta: MAB Hivatkoz�sok hozz�ad�sa, fazonigaz�t�s, publik�l�s. Verzi�: 0.1 2002.03.14 �tdolgozta: MAB Els� kiad�s. _________________________________________________________________ Tartalomjegyz�k 1. [2]Szerz�i jog �s licenc 1.1. [3]Magyar ford�t�s 2. [4]Bevezet�s 2.1. [5]A forgalomir�ny�t�s fogalma �s m�k�d�se 2.2. [6]Mi az a HTB? 2.3. [7]Mi is az a tcng? 3. [8]K�vetelm�nyek 3.1. [9]Rendszermag k�vetelm�nyek 3.2. [10]tc k�vetelm�nyek 3.3. [11]tcng k�vetelm�nyek 4. [12]Be�ll�t�si p�ld�k 4.1. [13]tcng haszn�lata csak a let�lt�sek alak�t�s�hoz 4.2. [14]A k�tsebess�g� h�romsz�n� m�r��ra haszn�lata 5. [15]Egy�b megjegyz�sek 6. [16]Tov�bbi le�r�sok �s hivatkoz�sok 1. Szerz�i jog �s licenc � 2003, Martin A. Brown A dokumentum szabadon m�solhat�, terjeszthet� �s m�dos�that�, az FSF �ltal k�zz�tett GNU Szabad Dokument�ci�s Licenc v1.1, vagy annak k�s�bbi v�ltozat�ban szerepl� felt�telek szerint. A licenc egy m�solata megtal�lhat� a [17]www.gnu.org/copyleft/fdl.html honlapon. _________________________________________________________________ 1.1. Magyar ford�t�s A magyar ford�t�st [18]V�lgyi P�ter k�sz�tette (2004.02.29). A lektor�l�st [19]Daczi L�szl� v�gezte el (2004.03.11). A dokumentum legfrissebb v�ltozata megtal�lhat� a [20]Magyar Linux Dokument�ci�s Projekt honlapj�n. _________________________________________________________________ 2. Bevezet�s Ez a dokumentum r�vid �ttekint�st ad a tcng ([21]Traffic Control - Next Generation; k�vetkez� gener�ci�s forgalomir�ny�t�s ) HTB-vel ([22]Hierarchical Token Bucket) val� haszn�lat�r�l, mely eszk�z�k seg�ts�g�vel a Linux rendszeren forgalomszab�lyoz�st v�gezhet�nk. Ez a gyakorlatsor els�sorban olyan rendszergazd�knak k�sz�lt, akik: * LEGAL�BB alapszint� forgalomir�ny�t�si ismeretekkel rendelkeznek, * forr�sb�l tudj�k FORD�TANI az iproute2 �s a tcng csomagokat, vagy Ugyanezen csomagokat SRPM-b�l telep�teni, * Az �ltaluk haszn�lt rendszer modul�ris szerkezet� rendszermagja t�mogatja a HTB �s DSMARK modulokat, VAGY k�pesek rendszermagot ford�tani ezeknek a t�mogat�s�ra. Megjegyz�s Ez a doksi nem �tfog� �s nem m�rt�kad�. A szerz� v�rja mind a pozit�v, mind a negat�v v�lem�nyeket a <[23]mabrown@securepipe.com> e-mail c�men. A helyreigaz�t�sokat, kieg�sz�t�seket is sz�vesen veszi. _________________________________________________________________ 2.1. A forgalomir�ny�t�s fogalma �s m�k�d�se A forgalomir�ny�t�s egy h�l�zaton, vagy h�l�zati eszk�z�n t�rt�n� teljes csomag-v�rakoz�sor (packet queuing) alrendszer �sszefoglal� neve. A forgalomir�ny�t�s t�bb m�veletb�l tev�dik �ssze. Az oszt�lyoz�s (classifying) sor�n t�rt�nik a csomagok azonos�t�sa, majd egyedi v�rakoz�sorokba, oszt�lyokba rendez�se. Az enged�lyez�s (policing) az oszt�lyoz�snak megfelel� adatfolyamban a csomagok vagy b�jtok sz�m�nak szab�lyoz�s�t jelenti. A besorol�s (scheduling) a d�nt�shozatali elem, ahol is a csomagokat az adattov�bb�t�shoz sorrendbe, majd �jra sorrendbe rakjuk. Az alak�t�s (shaping) az a folyamat, amikor a csomagokat k�sleltetj�k majd tov�bbk�ldj�k, ez�ltal az �tviteli sebess�g nagyj�b�l egyenl� �tem�, �s el�re kisz�m�that� lesz. A forgalomir�ny�t�s sokoldal�s�g�t kihaszn�lva komplex rendszereket lehet kialak�tani, annak �rdek�ben, hogy egy bizonyos folyamat (vagy alkalmaz�s) r�sz�re s�vsz�less�get biztos�tsunk, vagy a rendelkez�sre �ll� s�vsz�less�get korl�tozzuk bizonyos folyamatok, vagy alkalmaz�s el�tt. A forgalomir�ny�t�s egyik kulcs-koncepci�ja a tokenek (jelek) fogalma. Az enged�lyez�s vagy alak�t�s folyamata sor�n ki kell sz�m�tani az elk�ld�tt b�jtok vagy csomagok sz�m�t, vagyis melyik, milyen sebess�ggel ker�l majd tov�bb�t�sra. Minden csomag vagy b�jt (az alkalmaz�st�l f�gg, hogy melyik) egy jelnek felel meg, �s az enged�lyez�- vagy alak�t�-alkalmaz�s csak akkor tov�bb�tja a csomagot vagy b�jtot, ha az rendelkezik a megfelel� jellel. Egy alkalmaz�s metaforikus jelt�rol�ja a t�rol� (bucket). R�viden a t�rol� jelzi, mind az egyszerre haszn�lhat� jelek sz�m�t (ez a t�rol� m�rete), mind pedig a jelek �jrat�lt�d�s�nek �tem�t (milyen gyorsan t�lt�dik �jra a t�rol�). B�vebbet a [24]2.2 p�ld�ban tal�lsz a t�rol� haszn�lat�ra a Linux forgalomir�ny�t�si rendszerben. Linux rendszereken a forgalomir�ny�t�s mindig is komoly kih�v�st jelentett. A tc parancssori eszk�z kapcsolatot jelent a rendszermag azon r�szeivel, amelyek az alak�t�s, besorol�s, enged�lyez�s, �s oszt�lyoz�s folyamatait v�gzik. A parancs szintaxisa viszont rendk�v�l bonyolult. A tcng projekt azzal, hogy a tc parancssori eszk�z f�l� nyelvi r�teget fektet, sokkal bar�ts�gosabb k�rnyezetet biztos�t a felhaszn�l�nak. A tcng-ben �rt forgalomir�ny�t�si be�ll�t�sok ez�ltal k�nnyebben kezelhet�, kev�sb� bonyolult, �s - ami tal�n a legfontosabb - hordozhat�bb lesz. _________________________________________________________________ 2.2. Mi az a HTB? A [25]Hierarchichal Token Bucket a CBQ-n�l egyszer�bb konfigur�ci�s param�terekkel rendelkez� csoportnyi qdisc, melyet Martin Devera alkotott meg. A HTB-r�l �s haszn�lat�r�l el�g sok dokumentum tal�lhat� a szerz� honlapj�n, valamint [26]Stef Coene weboldal�n is. K�vetkezzen egy r�vid kis ismertet� a HTB rendszerr�l. Alapvet�en a HTB egy tetsz�leges sz�m�, hierarchikusan fel�p�tett jelt�rol� (token bucket) (...igen, erre k�nnyen r�j�hett�l magadt�l is). T�telezz�k fel a legegyszer�bb esetet: B�rmilyen eszk�z�n az els�dleges kil�p�si sor a root qdisc. A root qdisc egyetlen oszt�lyt fog tartalmazni (komplex esetekben t�bb oszt�ly is csatol�dik a root qdisc-hez). Az egyszer� HTB oszt�lyt k�t param�ter jellemzi: a rate (m�rt�k) �s a ceil (plafon). A top-level (legfels�bb szint�) oszt�lyn�l ezek az �rt�kek meg kell, hogy egyezzenek �s a kapcsolat teljes s�vsz�less�g�t mutatj�k. A HTB-n�l, a rate jelenti egy oszt�ly sz�m�ra a garant�lt s�vsz�less�get, a ceil pedig a maxim�lis s�vsz�less�get. A rate �s a ceil k�z�tti s�vsz�less�get mindig a sz�l� oszt�lyt�l veszi az alkalmaz�s, vagyis a legfels� szinten l�v� oszt�lyn�l a rate �s a ceil ugyanannyi lesz. Sz�mos gyerek-oszt�ly l�tes�thet� ez alatt az oszt�ly alatt, kezdetben mindegyikhez n�mi s�vsz�less�get rendelve a sz�l�-oszt�ly megl�v� k�szlet�b�l. Ezekben a gyerek-oszt�lyokban m�r nem kell a rate �s a ceil param�tereknek megegyezni�k, mint a sz�l� oszt�lyn�l. Ez lehet�v� teszi, el�re meghat�rozott s�vsz�less�g tartal�kol�s�t bizonyos oszt�lyoknak. Lehet�v� v�lik tov�bb� a HTB sz�m�ra, hogy �sszehasonl�tsa a megl�v� s�vsz�less�g eloszl�s�t az oszt�lyok s�vsz�less�geivel. A k�vetkez� p�lda tal�n r�vil�g�t a l�nyegre: A Hierarchical Token Bucket mag�ban foglal egy oszt�lynyi besorol� mechanizmust a Linuxon val� forgalomir�ny�t�shoz, �s ott van m�g a felhaszn�l�nak a rate �s a ceil param�ter az egyes oszt�lyok abszol�t s�vsz�less�g�nek szab�lyoz�s�hoz, valamint, hogy jelezze a s�vsz�less�g eloszl�s�t, amikor extra s�vsz�less�g ad�dik (eg�szen a ceil-ig). Jegyezz�k meg, hogy a top-level oszt�ly s�vsz�less�g�nek a be�ll�t�sakor a forgalom alak�t�snak (shaping) csak akkor lesz �rtelme, ha a sz�k keresztmetszet a h�l�zat �s az Internet k�z�tt az a g�p, amin dolgozunk. Tipikusan ilyen eset az otthoni vagy irodai h�l�zati k�rnyezet, ahol az eg�sz helyi h�l�zatot DSL vagy T1 kapcsolatok k�tik �ssze. Gyakorlatilag ez annyit jelent, hogy a top-level oszt�ly s�vsz�less�g�t �gy kell be�ll�tani, hogy vessz�k az eg�sz, rendelkez�sre �ll� s�vsz�less�get �s kivonunk bel�le egy keveset. _________________________________________________________________ 2.3. Mi is az a tcng? A [27]tcng (Traffic Control - Next Generation, k�vetkez� gener�ci�s forgalomir�ny�t�s) Werner Almesberger projektje, er�teljes, egys�ges �s egy�rtelm� nyelvezet megteremt�s�re, amellyel a forgalomir�ny�t�si szerkezetek pontosan megfogalmazhat�k. A tcng csomagban tal�lhat� tcc ford�t� alak�tja �t a tcng nyelvet t�bbf�le kimeneti form�ra. Alapesetben a tcc beolvas egy f�jlt (amely argumentumk�nt, vagy STDIN-k�nt adhat� meg) �s a STDOUT kimenetre k�ld egy sorozat tc parancsot, amelyek az elk�pzelt forgalomir�ny�t�si szerkezetet a rendszermagban l�trehozz�k. (l�sd az iproute2 fejezetet lentebb) A t�mogatott rendez�si elveket megtal�lod a [28]tcng Queuing discipline parameters(�tmutat� a tcng param�tereihez) dokumentumban. A tcng projekthez a HTB t�mogat�st Jacob Teplitsky �rta, aki akt�v tag a [29]LARTC levelez�si list�n. A tcc eszk�z sokf�le kimenetet tud produk�lni, ez a dokumentum azonban csak a leg�ltal�nosabb �s alap�rtelmezett kimeneti eredm�nnyel foglalkozik. A [30]TCNG k�pzik�nyv foglalkozik b�vebben a tcng parancs haszn�lat�val. A tcsim eszk�z k�pes szimul�lni az adott forgalomir�ny�t�si szab�lyokkal be�ll�tott rendszermag viselked�s�t, m�gpedig �gy, hogy tcng be�ll�t�f�jlokat olvas �s �rtelmez. Hab�r a tcsim el�g jelent�s r�sz�t k�pezi a tcng projectnek, itt t�bbet nem foglalkozunk vele. _________________________________________________________________ 3. K�vetelm�nyek Van n�h�ny dolog, ami sz�ks�ges ahhoz, hogy [31]a rendszermag t�mogassa a HTB-t �s DSMARK-ot, [32]a tc t�mogassa a HTB-t �s a DSMARK-ot, �s, hogy [33]a tcng m�k�dj�n. Ahhoz, hogy ez a dokumentum haszn�lhat� legyen, felt�tlen�l kell egyr�szt egy olyan rendszermag, amely t�mogatja a HTB-t, m�sr�szt a tc alkalmaz�s (el�g csak a doksi c�m�re utalni). A DSMARK t�mogat�s, a sz� szoros �rtelm�ben nem felt�tel, b�r n�h�ny [34]p�lda (k�l�n�sen az oszt�ly kiv�laszt�si �tvonal, de lehet, hogy m�s p�ld�k is) nem biztos, hogy m�k�dik e n�lk�l. _________________________________________________________________ 3.1. Rendszermag k�vetelm�nyek A rendszermag k�vetelm�nyeknek egyszer� megfelelni. A 2.4.20 �s �jabb rendszermagok be�p�tett HTB �s DSMARK t�mogat�st tartalmaznak. Sz�val egyszer�en csak be kell kapcsolni ezeket az opci�kat (QoS/FAIR Queing szekci�). A rendszermag be�ll�t�s�r�l b�vebben olvashatsz a [35]DiffServ project honlapj�n. 2.4.20-n�l r�gebbi rendszermagok eset�ben [36]ez a link egy folt (patch) a 2.4.17 vagy �jabb kernelekhez. _________________________________________________________________ 3.2. tc k�vetelm�nyek A tc parancs az iproute2 eszk�zcsomag r�sze. Az iproute2 �ltal�nos le�r�sa a [37]iproute2 k�zik�nyv oldalakon tal�lhat�. A csomagot k�zvetlen�l az [38]Alexey Kuznyecov FTP arch�vuma webhelyr�l lehet let�lteni, de a legt�bb disztrib�ci�ban megtal�lhat� csomagk�nt is. Ha RPM csomagkezel�t haszn�lsz, err�l a [39]SRPM webhelyr�l let�ltheted a forr�st, majd leford�thatod a rendszernek megfelel�en. Ha az iproute2 programot forr�sb�l telep�ted, haszn�lhat� [40]Martin Devera HTB webhelyen tal�lhat� [41]tc programhoz sz�ks�ges folt. Erre az�rt van sz�ks�g, hogy a tc programban legyen HTB t�mogat�s. A tc-nek t�mogatnia kell tov�bb� a dsmark-ot, a diffserv jel�l� mechanizmust. Szerencs�re ez egyszer�en megoldhat�, az iproute2 forr�s�ban tal�lhat� Config f�jlban az al�bbiakat kell megv�ltoztatni: a TC_CONFIG_DIFFSERV=n sort TC_CONFIG_DIFFSERV=y -ra kell cser�lni, majd a csomagot �jra kell ford�tani. Az [42]SRPM dsmark �s HTB t�mogat� tc bin�rist k�sz�t, �gy az al�bbi p�ld�kn�l m�r nem lesz gond. _________________________________________________________________ 3.3. tcng k�vetelm�nyek Tal�n a telep�t�s legk�nnyebb r�sze a tcng t�mogat�s megold�sa. Csak ki kell csomagolni a forr�st, �s futtatni kell a ./configure --no-tcsim parancsot ford�t�s el�tt. Ha RPM-alap� Linux fut a g�pen, haszn�lhatod a SPEC f�jlt tcng/build/tcng.spec a ford�t�shoz, vagy let�ltheted �s ford�thatod [43]ezt az SRPM-t. Az SRPM k�t csomagot k�sz�t: tcc �s tcc-devel. Csak a tcc-re lesz sz�ks�g a be�ll�t�sokhoz. A tcc ford�t� haszn�lat�hoz sz�ks�g van m�g a cpp csomagra is. Ezt a tcc haszn�lja. _________________________________________________________________ 4. Be�ll�t�si p�ld�k Az itt bemutat�sra ker�l� p�ld�k az [44]ebben a k�nyvt�rban tal�lhat�, let�lthet� konfigur�ci�s p�ld�k m�dos�tott v�ltozatai. Ezek a p�ld�k haszn�lhat�k �n�ll� be�ll�t� f�jlk�nt a tcc ford�t� seg�ts�g�vel, vagy a p�ldak�nt szerepl� [45]SysV ind�t� szkript haszn�lat�val. Az ind�t�szkript a [46]raptor �ltal a LARTC levelez�list�n k�zz�tett szkript egy v�ltozata. Amennyiben a fenti ind�t�szkriptet haszn�lod, vess egy pillant�st a k�vetkez� p�ld�ra: /etc/sysconfig/tcng: P�lda 1. /etc/sysconfig/tcng # - tcng k�ztes-konfigur�ci�s f�jl # (Soha nem haszn�lok k�ztes konfigur�ci�s f�jlt, nem szeretem) # # -- 2003-03-15 created; -MAB # -- 2003-03-31 modified to allow ENVAR override; -MAB # # -- ez a k�nyvt�r fogja tartalmazni az �sszes erre a host-ra # vonatkoz� tcng be�ll�t�st TCCONFBASEDIR=${TCCONFBASEDIR:-/etc/sysconfig/tcng-configs} # # -- ez az akt�v tcng be�ll�t�f�jl, FIGYELEM! mivel a tcng t�mogatja a # az #include szerkezet haszn�lat�t, a $TCCONFBASEDIR # v�ltoz�ban t�rolt be�ll�t�f�jlba be�p�thet�ek a konfigur�ci�s # modulok. # TCCONF=${TCCONF:-$TCCONFBASEDIR/global.tcc} tcstats=${tcstats:-no} # -- statisztikai jelent�sek kikapcsol�sa tcstats=${tcstats:-yes} # -- a tc-t "-s" kapcsol�val ind�tja tcdebug=${tcdebug:-0} # -- tipikus ind�t�szkript-haszn�lat tcdebug=${tcdebug:-1} # -- egy csipetnyi inform�ci� az esem�nyekr�l tcdebug=${tcdebug:-2} # -- hibak�vet�si inform�ci�k # # # m�g egy lehet�s�g: fel�lb�r�lhat�k az alapbe�ll�t�sk�nt haszn�lt tc �s tcc e szk�z�k # az el�r�si �t megad�s�val, p�ld�ul: # # tc=/usr/local/bin/tc # tcc=/usr/local/tcng/bin/tcc # # _________________________________________________________________ 4.1. tcng haszn�lata csak a let�lt�sek alak�t�s�hoz Ezzel a p�ld�val sok �ltal�nos koncepci�t pr�b�lok meg bemutatni. A p�ld�t a tc kimenetre a tcc class-selection-path.tcc parancs haszn�lat�val lehet ford�tani. P�lda 2. /etc/sysconfig/tcng/class-selection-path.tcc /* * Egyszer�, magyar�zattal ell�tott tcng forgalomir�ny�t�si be�ll�t�f�jl. * * Martin A. Brown <[47]mabrown@securepipe.com> * * P�lda: A class selection path haszn�lata. * * (Amennyiben HTML form�ban olvasod a szerkesztett kimenetet, a h�v�sok * linkk�nt jelennek meg a sz�vegben.) * */ #include "fields.tc" (1) #include "ports.tc" #define INTERFACE eth0 (2) dev INTERFACE { egress { (3) /* A class selection path-ban a sz�r�k j�nnek el�sz�r! Dsmark */ (4 ) class ( <$ssh> ) if tcp_sport == 22 && ip_tos_delay == 1 ; class ( <$audio> ) if tcp_sport == 554 || tcp_dport == 7070 ; class ( <$bulk> ) \ if tcp_sport == PORT_SSH || tcp_dport == PORT_HTTP ; (5) class ( <$other> ) if 1 ; (6) /* Ebben a r�szben �ll�tjuk be a qdiskeket �s az oszt�lyokat */ htb () { (7) class ( rate 600kbps, ceil 600kbps ) { (8) $ssh = class ( rate 64kbps, ceil 128kbps ) { sfq; } ; (9) $audio = class ( rate 128kbps, ceil 128kbps ) { sfq; } ; $bulk = class ( rate 256kbps, ceil 512kbps ) { sfq; } ; $other = class ( rate 128kbps, ceil 384kbps ) { sfq; } ; (10) } } } } [48](1) A tcng nyelvezete lehet�v� teszi a C-hez hasonl� beszerkeszthet� (include) f�jlok haszn�lat�t, amivel b�rmilyen f�jlt a forr�sk�dba illeszthet�nk. A beszerkeszthet� f�jlok el�r�si �tja relat�v az aktu�lis k�nyvt�rhoz, vagy a tcng k�nyvt�rhoz k�pest (alapesetben /usr/lib/tcng/include). Szigor�an v�ve nem sz�ks�ges a ports.tc �s a fields.tc f�jlok beszerkeszt�se (#include), mert a tcc ford�t� alapb�l megteszi ezt. Az #include haszn�lata rugalmas v�ltoz� defini�l�st, �s a forgalomir�ny�t�s �ltal�nos elemeinek gyors beszerkeszthet�s�g�t teszi lehet�v�. Tov�bbi r�szletek tal�lhat�k a tcng k�zik�nyv [49]Include files(Beszerkesztett f�jlok) c�m� fejezet�ben. [50](2) Ezek CPP direkt�v�k. A #define makr�k �s konstansok l�trehoz�s�ra szolg�l. A haszn�lat�r�l t�bbet a tcng k�zik�nyv [51]Variables (A V�ltoz�k) fejezet�ben olvashatsz. [52](3) Az egress kulcssz� a dsmark szinonim�ja. Az itt szerepl� p�lda a [53]class selection path m�dszert haszn�lja. Ez az egress kulcssz� haszn�lata ebben a konfigur�ci�ban, sz�ks�ges hozz� a rendszermag dsmark t�mogat�sa �s a tc. [54](4) A class selection path egyfajta megk�zel�t�si m�dja a forgalom alalk�t�snak. A class selection path-ban a csomag a routerbe ker�l�sekor jel�l�st kap (DiffServ jel). Ennek a kezdeti oszt�lyoz�snak az eredm�nyek�nt a router b�rmennyi m�veletet v�grehajthat, b�rmennyi szab�lyt (enged�lyez�s, besorol�s, alak�t�s) alkalmazhat a csomagon. Tov�bbi r�szletek tal�lhat�k a tcng k�zik�nyvben az [55]on class selection path (A class selection path-r�l) fejezetben. [56](5) Ez a p�lda a kapuk (portok) jel�l�s�n�l a nevek haszn�lat�t mutatja be a sz�mok haszn�lata helyett. Ez a tcng egyik k�nyelmi funkci�ja (a ports.tc automatikus beszerkeszt�s�n kereszt�l v�lik el�rhet�v�). A kapuk elnevez�s�n�l az IANA �ltal haszn�lt kapu-nevek az ir�nyad�k. L�sd az [57]IANA regisztr�lt portok oldalt a szabv�nyos nevek�rt, vagy vizsg�ld meg a ports.tc f�jlt. Mind a nevek, mind a sz�mok haszn�lata elfogadott �s �rv�nyes. [58](6) Figyelj�k meg ezt a k�l�n�s konstrukci�t, amely az �sszes eddig nem oszt�lyozott csomagot oszt�lyba sorolja. Minden, eddig nem oszt�lyozott csomag a "$other" oszt�lyba ker�l. Az if 1 szerkezet a nem oszt�lyozott forgalom maradv�ny�nak oszt�lyoz�s�ra szolg�l. [59](7) Itt t�rt�nik a root qdisc l�trehoz�sa, ami jelen esetben az eth0 eszk�zre van csatlakoztatva. A tcng k�zik�nyv referenciaanyagai k�z�tt az [60]appendix on queuing discipline parameters (F�ggel�k: sorba rendez�s param�terez�se) fejezetben minden qdisc-hez tal�lhatunk param�tereket. B�rmilyen qdisc param�ter beilleszthet� a z�r�jelek k�z�, ugyan�gy, ahogy egy k�s�bbi p�ld�n�l l�tni fogjuk. Param�ter n�lk�li haszn�lat eset�n a z�r�jeleket nem k�telez� kitenni. [61](8) Ebben a p�ld�ban a legfels�-szint� oszt�lyhoz a maxim�lis s�vsz�less�get rendelj�k, ami ezen oszt�lyon kereszt�l mehet. T�telezz�k fel, hogy az eth0 a bels� h�l�zati csatol�ja a g�pnek. Ez a teljes s�vsz�less�get 600 kilobit/s-ra korl�tozza a bels� h�l�zat fel�. Akik haszn�ltak m�r HTB-t, azoknak a rate �s a ceil param�terek ismer�sek lesznek. Ezek HTB specifikus param�terek, �s a tcc eszk�z seg�ts�g�vel ford�that�k le pontosan. N�zz�k meg a [62]tcng �tem �s sebess�g specifik�ci� r�szben tal�lhat� t�bl�zatot!. [63](9) Ezen oszt�ly hozz�rendel�se a v�ltoz�hoz. Ezt �ltal�ban a class selection path r�szek�nt v�gezz�k el. [64](10) Ahogyan azt Martin Devera is le�rta a HTB honlapj�n, egy be�gyazott SFQ minden oszt�lynak ad egy sorba rendez� algoritmust a konkurens folyamatoknak az adott oszt�lyon kereszt�li csomagk�ld�s er�forr�sainak megfelel� eloszt�s�hoz. Figyelj�nk a param�terek hi�ny�ra a be�gyazott sorba rendez�s elv�n�l. Ha nem hat�rozunk meg sorba rendez�si szab�lyokat a v�gs� oszt�lyokn�l, akkor az alapbe�ll�t�s �rv�nyes�l, vagyis a pfifo_fast qdisc. Egy sztochasztikus tiszta sorba rendez� qdisc beszerkeszt�se a v�g-oszt�lyokban megg�tolja azt, hogy egyetlen kapcsolat uralja a s�vsz�less�get az adott oszt�lyban. _________________________________________________________________ 4.2. A k�tsebess�g� h�romsz�n� m�r��ra haszn�lata P�lda 3. /etc/sysconfig/tcng/two-rate-three-color-meter.tcc /* * Egyszer�, magyar�zattal ell�tott tcng forgalomir�ny�t�si be�ll�t�f�jl. * * Martin A. Brown <[65]mabrown@securepipe.com> * * P�lda: M�r��ra haszn�lata * * (Amennyiben HTML form�ban olvasod a szerkesztett kimenetet, a h�v�sok * hivatkoz�sk�nt jelennek meg a sz�vegben.) * */ #define EXCEPTION 192.168.137.50 #define INTERFACE eth0 $meter = trTCM( cir 128kbps, cbs 10kB, pir 256kbps, pbs 10kB ); (1) dev eth0 { egress { class ( <$full> ) if ip_src == EXCEPTION ; (2) class ( <$fast> ) if trTCM_green( $meter ) ; (3) class ( <$slow> ) if trTCM_yellow( $meter ) ; (4) drop if trTCM_red( $meter ) ; (5) htb { class ( rate 600kbps, ceil 600kbps ) { $fast = class ( rate 256kbps, ceil 256kbps ) { sfq; } ; $slow = class ( rate 128kbps, ceil 128kbps ) { sfq; } ; $full = class ( rate 600kbps, ceil 600kbps ) { sfq; } ; } } } } [66](1) Ez az oszt�lyoz�shoz haszn�lt m�r��ra deklar�ci�ja. A h�tt�rtechnol�gia a m�r�s kivitelez�s�re az enged�lyez�s (policing). Tov�bbi inform�ci�k a [67]tcng k�zik�nyv "Meters" (M�r�sek) fejezetben tal�lhat�k. Ez a k�tsebess�ges-h�romsz�n� m�r� a leg�sszetettebb m�r��rat�pus a tcng nyelvben. Ez a m�r��ra a z�ld, s�rga �s piros sz�neket ad vissza, a t�rol�k foglalts�g�t�l �s cs�cs�rt�keit�l (peak) f�gg�en. Ha a m�rt sebess�g nagyobb, mint a foglalts�got jelz� �rt�k, akkor s�rga sz�n� lesz a jelz�s, ha a m�rt sebess�g t�ll�pi a cs�cs�rt�ket (a cs�cs�rt�k itt nem a maxim�lis, hanem kiemelked� �rt�ket jelent - a lektor), akkor piros sz�n� lesz a jelz�s. A $meter v�ltoz� a m�r��ra t�pus�nak megfelel� f�ggv�nyekkel m�k�dtethet�. Ebben az esetben h�rom f�ggv�ny j�het sz�ba a $meter �llapot�nak tesztel�se c�lj�b�l, ezek: trTCM_green, trTCM_yellow, �s trTCM_red. A hat�konys�g n�vel�se �rdek�ben lapozz bele a [68]Accelerating three color meters (gyors�tott h�romsz�n� m�r�k) fejezetbe. [69](2) A p�ld�ban a 192.168.137.50 IP c�met kiz�rtuk az eth0 eszk�zr�l indul� enged�lyez�si list�b�l. [70](3) A "foglalt" inform�ci�-sebess�g el�r�s�ig (cir) a csomagok �thaladnak ezen az oszt�lyon A tokenek elt�vol�t�sra ker�lnek a cir/cbs t�rol�b�l. A m�r��ra z�ld. [71](4) Itt lesznek oszt�lyozva azok a t�rol�k, ahol a forgalom sebess�ge �tl�pi a cir/cbs �rt�ket. A pir/pbs bucket (pir a "peak information rate"="cs�cs inform�ci�-sebess�g"), pbs a "peak burst size"="cs�cs kit�r�si sebess�g"). Ez teszi lehet�v� egy bizonyos adatfolyam sz�m�ra, hogy garant�lt s�vsz�less�get kapjon egy oszt�lyon bel�l, majd �jra oszt�lyoz�sra ker�lj�n. A m�r��ra s�rga. [72](5) Azok a t�rol�k lesznek oszt�lyozva itt, ahol a forgalom sebess�ge meghaladja a pir/pbs �rt�ket. Az �ltal�nos be�ll�t�sok azt eredm�nyezik, hogy a forgalom a cs�cssebess�g feletti tartom�nyba ker�l, hab�r a forgalmat �jra oszt�lyozva a garant�lt oszt�lyb�l a legjobb-teljes�tm�ny oszt�lyba ker�lne. A m�r��ra piros. _________________________________________________________________ 5. Egy�b megjegyz�sek H�l Istennek a tcng elker�li a tc kisebb k�nyelmetlens�geit. A k�vetkez� t�bl�zat �br�zolja ezen eszk�z�k szintaxis�t �s m�rt�kegys�geit, angol megfelel�ikkel egy�tt. T�bl�zat 1. Sebess�g/�tem szintaxis: tcng vs. tc tcng Angol megfelel� tc bps bit(s) per second bit Bps byte(s) per second bps (argh!) kbps kilobit(s) per second kbit kBps kilobyte(s) per second kbps Mbps megabit(s) per second mbit or Mbit MBps megabyte(s) per second mbps or Mbps pps packet per second ?? Ez csak minim�lis igaz�t�st ig�nyel az �sr�gi tc felhaszn�l�kt�l, de sokkal jobb v�laszt�s az angolul besz�l�knek ha a meg�rz�seikre szeretn�nek hagyatkozni. P�ld�ul a tcng konfigur�ci�j�ban haszn�lhatjuk a sebess�g jel�l�s�re a konvencion�lis kifejez�seket: 100Mbps, 128kbps, s�t 2Gpps. B�vebben a tcng k�zik�nyv [73]Units (a m�rt�kegys�gekr�l) fejezet�ben olvashatunk. A forgalomir�ny�t�s hat�konys�ga �rdek�ben meg kell keresni a h�l�zat sz�k keresztmetszeti pontjait. Legt�bb esetben ezeken a helyeken kell elv�gezni a m�veleteket. _________________________________________________________________ 6. Tov�bbi le�r�sok �s hivatkoz�sok * [74]the linux DiffServ project * [75]HTB site (Martin "devik" Devera) (HTB honlap) * [76]Traffic Control Next Generation (tcng) (k�vetkez� gener�ci�s forgalomir�ny�t�s) [77]TCNG manual (Werner Almesberger) (TCNG k�zik�nyv) * [78]iproute2 (Alexey Kuznetsov) [79]iproute2 manual (Alexey Kuznetsov) (iproute2 k�zik�nyv) * [80]Research and documentation on traffic control under linux (Stef Coene) (Forr�sanyagok �s dokument�ci�k a forgalomir�ny�t�sr�l Linux alatt) * [81]LARTC HOWTO (bert hubert, et. al.) * [82]guide to IP networking with linux (Martin A. Brown) (Az IP h�l�zati protokoll haszn�lata Linuxszal) References 1. http://www.securepipe.com/ 2. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#copyright 3. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#hungarian-translation 4. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#intro 5. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#intro-tc 6. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#intro-htb 7. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#intro-tcng 8. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#requirements 9. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#requirements-kernel 10. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#requirements-tc 11. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#requirements-tcng 12. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#examples 13. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#examples-adsl 14. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#examples-1 15. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#misc 16. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#further 17. http://www.gnu.org/licenses/fdl.html 18. mailto:petvolgyi[kukac]freemail[pont]hu 19. mailto:dacas@freemail.hu_NO_SPAM 20. http://tldp.fsf.hu/index.html 21. http://tcng.sourceforge.net/ 22. http://luxik.cdi.cz/~devik/qos/htb/ 23. mailto:mabrown@securepipe.com 24. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#intro-htb 25. http://luxik.cdi.cz/~devik/qos/htb/ 26. http://www.docum.org/ 27. http://tcng.sourceforge.net/ 28. http://linux-ip.net/gl/tcng/node159.html 29. http://lartc.org/#mailinglist 30. http://linux-ip.net/gl/tcng/ 31. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#requirements-kernel 32. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#requirements-tc 33. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#requirements-tcng 34. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#examples 35. http://diffserv.sourceforge.net/#24 36. http://luxik.cdi.cz/~devik/qos/htb/v3/htb3.6-020525.tgz 37. http://linux-ip.net/>http://linux-ip.net/</ulink> valamint az <ulink url=http://linux-ip.net/gl/ip-cref/ 38. ftp://ftp.inr.ac.ru/ip-routing/ 39. http://linux-ip.net/traffic-control/iproute-2.4.7-7.src.rpm 40. http://luxik.cdi.cz/~devik/qos/htb/ 41. http://luxik.cdi.cz/~devik/qos/htb/v3/htb3.6-020525.tgz 42. http://linux-ip.net/traffic-control/iproute-2.4.7-7.src.rpm 43. http://linux-ip.net/traffic-control/tcng-9d-1.src.rpm 44. http://linux-ip.net/code/tcng/ 45. http://linux-ip.net/code/tcng/tcng.init 46. http://mailman.ds9a.nl/pipermail/lartc/2002q4/005411.html 47. mailto:mabrown@securepipe.com 48. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#ex-0-includes 49. http://linux-ip.net/gl/tcng/node35.html 50. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#ex-0-defines 51. http://linux-ip.net/gl/tcng/node111.html 52. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#ex-0-egress 53. http://linux-ip.net/gl/tcng/node32.html 54. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#ex-0-csp 55. http://linux-ip.net/gl/tcng/node32.html 56. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#ex-0-portusage 57. http://www.iana.org/assignments/port-numbers 58. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#ex-0-leftover 59. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#ex-0-root 60. http://linux-ip.net/gl/tcng/node159.html 61. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#ex-0-topclass 62. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#tb-misc-rates 63. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#ex-0-classvariable 64. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#ex-0-embedsfq 65. mailto:mabrown@securepipe.com 66. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#ex-1-mdefine 67. http://linux-ip.net/gl/tcng/node53.html 68. http://linux-ip.net/gl/tcng/node58.html 69. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#ex-1-notmetered 70. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#ex-1-green 71. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#ex-1-yellow 72. file://localhost/home/dacas/convert/Traffic-Control-tcng-HTB-HOWTO-hu.html#ex-1-red 73. http://linux-ip.net/gl/tcng/node21.html 74. http://diffserv.sourceforge.net/ 75. http://luxik.cdi.cz/~devik/qos/htb/ 76. http://tcng.sourceforge.net/ 77. http://linux-ip.net/gl/tcng/ 78. ftp://ftp.inr.ac.ru/ip-routing/ 79. http://linux-ip.net/gl/ip-cref/ 80. http://www.docum.org/ 81. http://lartc.org/howto/ 82. http://linux-ip.net/