
Forgalomirnyts tcng s HTB segtsgvel HOGYAN1.0 vltozatMartin A. Brown

   [1]SecurePipe, Inc.
   Network Administration

   mabrown@securepipe.com

   2003 prilis
   Verzitrtnet
   Verzi: 1.0 2003.04.16 tdolgozta: tab
   Az LDP ltal jvhagyott Els kiads.
   Verzi: 0.5 2002.04.01 tdolgozta: MAB
   A doksit tneveztem HOGYANra, a TLDP-hez elterjesztve.
   Verzi: 0.4 2002.03.31 tdolgozta: MAB
   j plda, bucket gyorstalpal.
   Verzi: 0.3 2002.03.16 tdolgozta: MAB
   Javtsokat s jegyzeteket rt: Jacob Teplitsky, raptor s Joshua
   Heling.
   Verzi: 0.2 2002.03.15 tdolgozta: MAB
   Hivatkozsok hozzadsa, fazonigazts, publikls.
   Verzi: 0.1 2002.03.14 tdolgozta: MAB
   Els kiads.
     _________________________________________________________________

   Tartalomjegyzk
   1. [2]Szerzi jog s licenc

        1.1. [3]Magyar fordts

   2. [4]Bevezets

        2.1. [5]A forgalomirnyts fogalma s mkdse
        2.2. [6]Mi az a HTB?
        2.3. [7]Mi is az a tcng?

   3. [8]Kvetelmnyek

        3.1. [9]Rendszermag kvetelmnyek
        3.2. [10]tc kvetelmnyek
        3.3. [11]tcng kvetelmnyek

   4. [12]Belltsi pldk

        4.1. [13]tcng hasznlata csak a letltsek alaktshoz
        4.2. [14]A ktsebessg hromszn mrra hasznlata

   5. [15]Egyb megjegyzsek
   6. [16]Tovbbi lersok s hivatkozsok

1. Szerzi jog s licenc

 2003, Martin A. Brown

A dokumentum szabadon msolhat, terjeszthet s mdosthat, az FSF ltal
kzztett GNU Szabad Dokumentcis Licenc v1.1, vagy annak ksbbi
vltozatban szerepl felttelek szerint. A licenc egy msolata
megtallhat a [17]www.gnu.org/copyleft/fdl.html honlapon.
     _________________________________________________________________

1.1. Magyar fordts

A magyar fordtst [18]Vlgyi Pter ksztette (2004.02.29). A lektorlst
[19]Daczi Lszl vgezte el (2004.03.11). A dokumentum legfrissebb vltozata
megtallhat a [20]Magyar Linux Dokumentcis Projekt honlapjn.
     _________________________________________________________________

2. Bevezets

Ez a dokumentum rvid ttekintst ad a tcng ([21]Traffic Control - Next
Generation; kvetkez genercis forgalomirnyts ) HTB-vel
([22]Hierarchical Token Bucket) val hasznlatrl, mely eszkzk
segtsgvel a Linux rendszeren forgalomszablyozst vgezhetnk.

Ez a gyakorlatsor elssorban olyan rendszergazdknak kszlt, akik:

     * LEGALBB alapszint forgalomirnytsi ismeretekkel rendelkeznek,
     * forrsbl tudjk FORDTANI az iproute2 s a tcng csomagokat, vagy
       Ugyanezen csomagokat SRPM-bl telepteni,
     * Az ltaluk hasznlt rendszer modulris szerkezet rendszermagja
       tmogatja a HTB s DSMARK modulokat,
       VAGY kpesek rendszermagot fordtani ezeknek a tmogatsra.

   Megjegyzs

   Ez a doksi nem tfog s nem mrtkad. A szerz vrja mind a
   pozitv, mind a negatv vlemnyeket a <[23]mabrown@securepipe.com>
   e-mail cmen. A helyreigaztsokat, kiegsztseket is szvesen veszi.
     _________________________________________________________________

2.1. A forgalomirnyts fogalma s mkdse

A forgalomirnyts egy hlzaton, vagy hlzati eszkzn trtn teljes
csomag-vrakozsor (packet queuing) alrendszer sszefoglal neve. A
forgalomirnyts tbb mveletbl tevdik ssze. Az osztlyozs
(classifying) sorn trtnik a csomagok azonostsa, majd egyedi
vrakozsorokba, osztlyokba rendezse. Az engedlyezs (policing) az
osztlyozsnak megfelel adatfolyamban a csomagok vagy bjtok szmnak
szablyozst jelenti. A besorols (scheduling) a dntshozatali elem, ahol
is a csomagokat az adattovbbtshoz sorrendbe, majd jra sorrendbe rakjuk.
Az alakts (shaping) az a folyamat, amikor a csomagokat ksleltetjk majd
tovbbkldjk, ezltal az tviteli sebessg nagyjbl egyenl tem, s
elre kiszmthat lesz.

A forgalomirnyts sokoldalsgt kihasznlva komplex rendszereket lehet
kialaktani, annak rdekben, hogy egy bizonyos folyamat (vagy alkalmazs)
rszre svszlessget biztostsunk, vagy a rendelkezsre ll
svszlessget korltozzuk bizonyos folyamatok, vagy alkalmazs eltt.

A forgalomirnyts egyik kulcs-koncepcija a tokenek (jelek) fogalma. Az
engedlyezs vagy alakts folyamata sorn ki kell szmtani az elkldtt
bjtok vagy csomagok szmt, vagyis melyik, milyen sebessggel kerl majd
tovbbtsra. Minden csomag vagy bjt (az alkalmazstl fgg, hogy melyik)
egy jelnek felel meg, s az engedlyez- vagy alakt-alkalmazs csak akkor
tovbbtja a csomagot vagy bjtot, ha az rendelkezik a megfelel jellel.
Egy alkalmazs metaforikus jeltrolja a trol (bucket). Rviden a trol
jelzi, mind az egyszerre hasznlhat jelek szmt (ez a trol mrete), mind
pedig a jelek jratltdsnek temt (milyen gyorsan tltdik jra a
trol).

Bvebbet a [24]2.2 pldban tallsz a trol hasznlatra a Linux
forgalomirnytsi rendszerben.

Linux rendszereken a forgalomirnyts mindig is komoly kihvst jelentett.
A tc parancssori eszkz kapcsolatot jelent a rendszermag azon rszeivel,
amelyek az alakts, besorols, engedlyezs, s osztlyozs folyamatait
vgzik. A parancs szintaxisa viszont rendkvl bonyolult. A tcng projekt
azzal, hogy a tc parancssori eszkz fl nyelvi rteget fektet, sokkal
bartsgosabb krnyezetet biztost a felhasznlnak. A tcng-ben rt
forgalomirnytsi belltsok ezltal knnyebben kezelhet, kevsb
bonyolult, s - ami taln a legfontosabb - hordozhatbb lesz.
     _________________________________________________________________

2.2. Mi az a HTB?

A [25]Hierarchichal Token Bucket a CBQ-nl egyszerbb konfigurcis
paramterekkel rendelkez csoportnyi qdisc, melyet Martin Devera alkotott
meg. A HTB-rl s hasznlatrl elg sok dokumentum tallhat a szerz
honlapjn, valamint [26]Stef Coene weboldaln is. Kvetkezzen egy rvid kis
ismertet a HTB rendszerrl.

Alapveten a HTB egy tetszleges szm, hierarchikusan felptett
jeltrol (token bucket) (...igen, erre knnyen rjhettl magadtl is).
Ttelezzk fel a legegyszerbb esetet: Brmilyen eszkzn az elsdleges
kilpsi sor a root qdisc.

A root qdisc egyetlen osztlyt fog tartalmazni (komplex esetekben tbb
osztly is csatoldik a root qdisc-hez). Az egyszer HTB osztlyt kt
paramter jellemzi: a rate (mrtk) s a ceil (plafon). A top-level
(legfelsbb szint) osztlynl ezek az rtkek meg kell, hogy egyezzenek
s a kapcsolat teljes svszlessgt mutatjk.

A HTB-nl, a rate jelenti egy osztly szmra a garantlt svszlessget, a
ceil pedig a maximlis svszlessget. A rate s a ceil kztti
svszlessget mindig a szl osztlytl veszi az alkalmazs, vagyis a
legfels szinten lv osztlynl a rate s a ceil ugyanannyi lesz.

Szmos gyerek-osztly ltesthet ez alatt az osztly alatt, kezdetben
mindegyikhez nmi svszlessget rendelve a szl-osztly meglv
kszletbl. Ezekben a gyerek-osztlyokban mr nem kell a rate s a ceil
paramtereknek megegyeznik, mint a szl osztlynl. Ez lehetv teszi,
elre meghatrozott svszlessg tartalkolst bizonyos osztlyoknak.
Lehetv vlik tovbb a HTB szmra, hogy sszehasonltsa a meglv
svszlessg eloszlst az osztlyok svszlessgeivel. A kvetkez plda
taln rvilgt a lnyegre:

A Hierarchical Token Bucket magban foglal egy osztlynyi besorol
mechanizmust a Linuxon val forgalomirnytshoz, s ott van mg a
felhasznlnak a rate s a ceil paramter az egyes osztlyok abszolt
svszlessgnek szablyozshoz, valamint, hogy jelezze a svszlessg
eloszlst, amikor extra svszlessg addik (egszen a ceil-ig).

Jegyezzk meg, hogy a top-level osztly svszlessgnek a belltsakor a
forgalom alaktsnak (shaping) csak akkor lesz rtelme, ha a szk
keresztmetszet a hlzat s az Internet kztt az a gp, amin dolgozunk.
Tipikusan ilyen eset az otthoni vagy irodai hlzati krnyezet, ahol az
egsz helyi hlzatot DSL vagy T1 kapcsolatok ktik ssze.

Gyakorlatilag ez annyit jelent, hogy a top-level osztly svszlessgt gy
kell belltani, hogy vesszk az egsz, rendelkezsre ll svszlessget s
kivonunk belle egy keveset.
     _________________________________________________________________

2.3. Mi is az a tcng?

A [27]tcng (Traffic Control - Next Generation, kvetkez genercis
forgalomirnyts) Werner Almesberger projektje, erteljes, egysges s
egyrtelm nyelvezet megteremtsre, amellyel a forgalomirnytsi
szerkezetek pontosan megfogalmazhatk. A tcng csomagban tallhat tcc
fordt alaktja t a tcng nyelvet tbbfle kimeneti formra. Alapesetben a
tcc beolvas egy fjlt (amely argumentumknt, vagy STDIN-knt adhat meg) s
a STDOUT kimenetre kld egy sorozat tc parancsot, amelyek az elkpzelt
forgalomirnytsi szerkezetet a rendszermagban ltrehozzk. (lsd az
iproute2 fejezetet lentebb)

A tmogatott rendezsi elveket megtallod a [28]tcng Queuing discipline
parameters(tmutat a tcng paramtereihez) dokumentumban. A tcng projekthez
a HTB tmogatst Jacob Teplitsky rta, aki aktv tag a [29]LARTC levelezsi
listn.

A tcc eszkz sokfle kimenetet tud produklni, ez a dokumentum azonban csak
a legltalnosabb s alaprtelmezett kimeneti eredmnnyel foglalkozik. A
[30]TCNG kpziknyv foglalkozik bvebben a tcng parancs hasznlatval.

A tcsim eszkz kpes szimullni az adott forgalomirnytsi szablyokkal
belltott rendszermag viselkedst, mgpedig gy, hogy tcng
belltfjlokat olvas s rtelmez. Habr a tcsim elg jelents rszt
kpezi a tcng projectnek, itt tbbet nem foglalkozunk vele.
     _________________________________________________________________

3. Kvetelmnyek

Van nhny dolog, ami szksges ahhoz, hogy [31]a rendszermag tmogassa a
HTB-t s DSMARK-ot, [32]a tc tmogassa a HTB-t s a DSMARK-ot, s, hogy
[33]a tcng mkdjn.

Ahhoz, hogy ez a dokumentum hasznlhat legyen, felttlenl kell egyrszt
egy olyan rendszermag, amely tmogatja a HTB-t, msrszt a tc alkalmazs
(elg csak a doksi cmre utalni). A DSMARK tmogats, a sz szoros
rtelmben nem felttel, br nhny [34]plda (klnsen az osztly
kivlasztsi tvonal, de lehet, hogy ms pldk is) nem biztos, hogy
mkdik e nlkl.
     _________________________________________________________________

3.1. Rendszermag kvetelmnyek

A rendszermag kvetelmnyeknek egyszer megfelelni. A 2.4.20 s jabb
rendszermagok beptett HTB s DSMARK tmogatst tartalmaznak. Szval
egyszeren csak be kell kapcsolni ezeket az opcikat (QoS/FAIR Queing
szekci). A rendszermag belltsrl bvebben olvashatsz a [35]DiffServ
project honlapjn.

2.4.20-nl rgebbi rendszermagok esetben [36]ez a link egy folt (patch) a
2.4.17 vagy jabb kernelekhez.
     _________________________________________________________________

3.2. tc kvetelmnyek

A tc parancs az iproute2 eszkzcsomag rsze. Az iproute2 ltalnos lersa a
[37]iproute2 kziknyv oldalakon tallhat. A csomagot kzvetlenl az
[38]Alexey Kuznyecov FTP archvuma webhelyrl lehet letlteni, de a legtbb
disztribciban megtallhat csomagknt is. Ha RPM csomagkezelt hasznlsz,
errl a [39]SRPM webhelyrl letltheted a forrst, majd lefordthatod a
rendszernek megfelelen.

Ha az iproute2 programot forrsbl telepted, hasznlhat [40]Martin Devera
HTB webhelyen tallhat [41]tc programhoz szksges folt. Erre azrt van
szksg, hogy a tc programban legyen HTB tmogats.

A tc-nek tmogatnia kell tovbb a dsmark-ot, a diffserv jell
mechanizmust. Szerencsre ez egyszeren megoldhat, az iproute2 forrsban
tallhat Config fjlban az albbiakat kell megvltoztatni: a
TC_CONFIG_DIFFSERV=n sort TC_CONFIG_DIFFSERV=y -ra kell cserlni, majd a
csomagot jra kell fordtani.

Az [42]SRPM dsmark s HTB tmogat tc binrist kszt, gy az albbi
pldknl mr nem lesz gond.
     _________________________________________________________________

3.3. tcng kvetelmnyek

Taln a telepts legknnyebb rsze a tcng tmogats megoldsa. Csak ki kell
csomagolni a forrst, s futtatni kell a ./configure --no-tcsim parancsot
fordts eltt.

Ha RPM-alap Linux fut a gpen, hasznlhatod a SPEC fjlt
tcng/build/tcng.spec a fordtshoz, vagy letltheted s fordthatod [43]ezt
az SRPM-t. Az SRPM kt csomagot kszt: tcc s tcc-devel. Csak a tcc-re lesz
szksg a belltsokhoz.

A tcc fordt hasznlathoz szksg van mg a cpp csomagra is. Ezt a tcc
hasznlja.
     _________________________________________________________________

4. Belltsi pldk

Az itt bemutatsra kerl pldk az [44]ebben a knyvtrban tallhat,
letlthet konfigurcis pldk mdostott vltozatai.

Ezek a pldk hasznlhatk nll bellt fjlknt a tcc fordt
segtsgvel, vagy a pldaknt szerepl [45]SysV indt szkript
hasznlatval. Az indtszkript a [46]raptor ltal a LARTC levelezlistn
kzztett szkript egy vltozata.

Amennyiben a fenti indtszkriptet hasznlod, vess egy pillantst a
kvetkez pldra: /etc/sysconfig/tcng:

   Plda 1. /etc/sysconfig/tcng
# - tcng kztes-konfigurcis fjl
#   (Soha nem hasznlok kztes konfigurcis fjlt, nem szeretem)

#
# -- 2003-03-15 created; -MAB
# -- 2003-03-31 modified to allow ENVAR override; -MAB
#
# -- ez a knyvtr fogja tartalmazni az sszes erre a host-ra
#    vonatkoz tcng belltst

TCCONFBASEDIR=${TCCONFBASEDIR:-/etc/sysconfig/tcng-configs}
#
# -- ez az aktv tcng belltfjl, FIGYELEM! mivel a tcng tmogatja a
#    az #include szerkezet hasznlatt, a $TCCONFBASEDIR
#    vltozban trolt belltfjlba bepthetek a konfigurcis
#    modulok.

#
TCCONF=${TCCONF:-$TCCONFBASEDIR/global.tcc}

tcstats=${tcstats:-no}   # -- statisztikai jelentsek kikapcsolsa
tcstats=${tcstats:-yes}  # -- a tc-t "-s" kapcsolval indtja

tcdebug=${tcdebug:-0}    # -- tipikus indtszkript-hasznlat
tcdebug=${tcdebug:-1}    # -- egy csipetnyi informci az esemnyekrl
tcdebug=${tcdebug:-2}    # -- hibakvetsi informcik
#
#
# mg egy lehetsg: fellbrlhatk az alapbelltsknt hasznlt tc s tcc e
szkzk
# az elrsi t megadsval, pldul:
#
#  tc=/usr/local/bin/tc
#  tcc=/usr/local/tcng/bin/tcc
#
#
     _________________________________________________________________

4.1. tcng hasznlata csak a letltsek alaktshoz

Ezzel a pldval sok ltalnos koncepcit prblok meg bemutatni. A pldt a
tc kimenetre a tcc class-selection-path.tcc parancs hasznlatval lehet
fordtani.

   Plda 2. /etc/sysconfig/tcng/class-selection-path.tcc
/*
 * Egyszer, magyarzattal elltott tcng forgalomirnytsi belltfjl.
 *
 *   Martin A. Brown <[47]mabrown@securepipe.com>
 *
 * Plda:  A class selection path hasznlata.
 *
 * (Amennyiben HTML formban olvasod a szerkesztett kimenetet, a hvsok
 * linkknt jelennek meg a szvegben.)
 *
 */

#include "fields.tc"      (1)
#include "ports.tc"

#define INTERFACE  eth0   (2)

dev INTERFACE {
    egress {  (3)

        /* A class selection path-ban a szrk jnnek elszr! 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 rszben lltjuk be a qdiskeket s az osztlyokat */

        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 lehetv teszi a C-hez hasonl
          beszerkeszthet (include) fjlok hasznlatt, amivel brmilyen
          fjlt a forrskdba illeszthetnk. A beszerkeszthet fjlok
          elrsi tja relatv az aktulis knyvtrhoz, vagy a tcng
          knyvtrhoz kpest (alapesetben /usr/lib/tcng/include).
          Szigoran vve nem szksges a ports.tc s a fields.tc fjlok
          beszerkesztse (#include), mert a tcc fordt alapbl megteszi
          ezt.
          Az #include hasznlata rugalmas vltoz definilst, s a
          forgalomirnyts ltalnos elemeinek gyors
          beszerkeszthetsgt teszi lehetv.
          Tovbbi rszletek tallhatk a tcng kziknyv [49]Include
          files(Beszerkesztett fjlok) cm fejezetben.
   [50](2) 
          Ezek CPP direktvk. A #define makrk s konstansok
          ltrehozsra szolgl. A hasznlatrl tbbet a tcng kziknyv
          [51]Variables (A Vltozk) fejezetben olvashatsz.
   [52](3) 
          Az egress kulcssz a dsmark szinonimja. Az itt szerepl plda
          a [53]class selection path mdszert hasznlja. Ez az egress
          kulcssz hasznlata ebben a konfigurciban, szksges hozz a
          rendszermag dsmark tmogatsa s a tc.
   [54](4) 
          A class selection path egyfajta megkzeltsi mdja a forgalom
          alalktsnak. A class selection path-ban a csomag a routerbe
          kerlsekor jellst kap (DiffServ jel). Ennek a kezdeti
          osztlyozsnak az eredmnyeknt a router brmennyi mveletet
          vgrehajthat, brmennyi szablyt (engedlyezs, besorols,
          alakts) alkalmazhat a csomagon.
          Tovbbi rszletek tallhatk a tcng kziknyvben az [55]on
          class selection path (A class selection path-rl) fejezetben.
   [56](5) 
          Ez a plda a kapuk (portok) jellsnl a nevek hasznlatt
          mutatja be a szmok hasznlata helyett. Ez a tcng egyik
          knyelmi funkcija (a ports.tc automatikus beszerkesztsn
          keresztl vlik elrhetv). A kapuk elnevezsnl az IANA
          ltal hasznlt kapu-nevek az irnyadk. Lsd az [57]IANA
          regisztrlt portok oldalt a szabvnyos nevekrt, vagy vizsgld
          meg a ports.tc fjlt.
          Mind a nevek, mind a szmok hasznlata elfogadott s rvnyes.
   [58](6) 
          Figyeljk meg ezt a klns konstrukcit, amely az sszes eddig
          nem osztlyozott csomagot osztlyba sorolja. Minden, eddig nem
          osztlyozott csomag a "$other" osztlyba kerl. Az if 1
          szerkezet a nem osztlyozott forgalom maradvnynak
          osztlyozsra szolgl.
   [59](7) 
          Itt trtnik a root qdisc ltrehozsa, ami jelen esetben az
          eth0 eszkzre van csatlakoztatva. A tcng kziknyv
          referenciaanyagai kztt az [60]appendix on queuing discipline
          parameters (Fggelk: sorba rendezs paramterezse) fejezetben
          minden qdisc-hez tallhatunk paramtereket. Brmilyen qdisc
          paramter beilleszthet a zrjelek kz, ugyangy, ahogy egy
          ksbbi pldnl ltni fogjuk. Paramter nlkli hasznlat
          esetn a zrjeleket nem ktelez kitenni.
   [61](8) 
          Ebben a pldban a legfels-szint osztlyhoz a maximlis
          svszlessget rendeljk, ami ezen osztlyon keresztl mehet.
          Ttelezzk fel, hogy az eth0 a bels hlzati csatolja a
          gpnek. Ez a teljes svszlessget 600 kilobit/s-ra korltozza
          a bels hlzat fel.
          Akik hasznltak mr HTB-t, azoknak a rate s a ceil paramterek
          ismersek lesznek. Ezek HTB specifikus paramterek, s a tcc
          eszkz segtsgvel fordthatk le pontosan. Nzzk meg a
          [62]tcng tem s sebessg specifikci rszben tallhat
          tblzatot!.
   [63](9) 
          Ezen osztly hozzrendelse a vltozhoz. Ezt ltalban a class
          selection path rszeknt vgezzk el.
   [64](10) 
          Ahogyan azt Martin Devera is lerta a HTB honlapjn, egy
          begyazott SFQ minden osztlynak ad egy sorba rendez
          algoritmust a konkurens folyamatoknak az adott osztlyon
          keresztli csomagklds erforrsainak megfelel
          elosztshoz. Figyeljnk a paramterek hinyra a begyazott
          sorba rendezs elvnl.
          Ha nem hatrozunk meg sorba rendezsi szablyokat a vgs
          osztlyoknl, akkor az alapbellts rvnyesl, vagyis a
          pfifo_fast qdisc. Egy sztochasztikus tiszta sorba rendez
          qdisc beszerkesztse a vg-osztlyokban meggtolja azt, hogy
          egyetlen kapcsolat uralja a svszlessget az adott osztlyban.
     _________________________________________________________________

4.2. A ktsebessg hromszn mrra hasznlata

   Plda 3. /etc/sysconfig/tcng/two-rate-three-color-meter.tcc
/*
 * Egyszer, magyarzattal elltott tcng forgalomirnytsi belltfjl.
 *
 *   Martin A. Brown <[65]mabrown@securepipe.com>
 *
 * Plda: Mrra hasznlata
 *
 * (Amennyiben HTML formban olvasod a szerkesztett kimenetet, a hvsok
 * hivatkozsknt jelennek meg a szvegben.)
 *
 */

#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 osztlyozshoz hasznlt mrra deklarcija. A
          httrtechnolgia a mrs kivitelezsre az engedlyezs
          (policing). Tovbbi informcik a [67]tcng kziknyv "Meters"
          (Mrsek) fejezetben tallhatk.
          Ez a ktsebessges-hromszn mr a legsszetettebb
          mrratpus a tcng nyelvben. Ez a mrra a zld, srga s
          piros szneket ad vissza, a trolk foglaltsgtl s
          cscsrtkeitl (peak) fggen. Ha a mrt sebessg nagyobb,
          mint a foglaltsgot jelz rtk, akkor srga szn lesz a
          jelzs, ha a mrt sebessg tllpi a cscsrtket (a cscsrtk
          itt nem a maximlis, hanem kiemelked rtket jelent - a
          lektor), akkor piros szn lesz a jelzs.
          A $meter vltoz a mrra tpusnak megfelel fggvnyekkel
          mkdtethet. Ebben az esetben hrom fggvny jhet szba a
          $meter llapotnak tesztelse cljbl, ezek: trTCM_green,
          trTCM_yellow, s trTCM_red. A hatkonysg nvelse rdekben
          lapozz bele a [68]Accelerating three color meters (gyorstott
          hromszn mrk) fejezetbe.
   [69](2) 
          A pldban a 192.168.137.50 IP cmet kizrtuk az eth0
          eszkzrl indul engedlyezsi listbl.
   [70](3) 
          A "foglalt" informci-sebessg elrsig (cir) a csomagok
          thaladnak ezen az osztlyon A tokenek eltvoltsra kerlnek a
          cir/cbs trolbl.
          A mrra zld.
   [71](4) 
          Itt lesznek osztlyozva azok a trolk, ahol a forgalom
          sebessge tlpi a cir/cbs rtket. A pir/pbs bucket (pir a
          "peak information rate"="cscs informci-sebessg"), pbs a
          "peak burst size"="cscs kitrsi sebessg"). Ez teszi
          lehetv egy bizonyos adatfolyam szmra, hogy garantlt
          svszlessget kapjon egy osztlyon bell, majd jra
          osztlyozsra kerljn.
          A mrra srga.
   [72](5) 
          Azok a trolk lesznek osztlyozva itt, ahol a forgalom
          sebessge meghaladja a pir/pbs rtket. Az ltalnos
          belltsok azt eredmnyezik, hogy a forgalom a cscssebessg
          feletti tartomnyba kerl, habr a forgalmat jra osztlyozva a
          garantlt osztlybl a legjobb-teljestmny osztlyba kerlne.
          A mrra piros.
     _________________________________________________________________

5. Egyb megjegyzsek

Hl Istennek a tcng elkerli a tc kisebb knyelmetlensgeit. A kvetkez
tblzat brzolja ezen eszkzk szintaxist s mrtkegysgeit, angol
megfelelikkel egytt.

   Tblzat 1. Sebessg/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 minimlis igaztst ignyel az srgi tc felhasznlktl, de
   sokkal jobb vlaszts az angolul beszlknek ha a megrzseikre
   szeretnnek hagyatkozni.

   Pldul a tcng konfigurcijban hasznlhatjuk a sebessg jellsre a
   konvencionlis kifejezseket: 100Mbps, 128kbps, st 2Gpps. Bvebben
   a tcng kziknyv [73]Units (a mrtkegysgekrl) fejezetben
   olvashatunk.

   A forgalomirnyts hatkonysga rdekben meg kell keresni a hlzat
   szk keresztmetszeti pontjait. Legtbb esetben ezeken a helyeken kell
   elvgezni a mveleteket.
     _________________________________________________________________

6. Tovbbi lersok s hivatkozsok

     * [74]the linux DiffServ project
     * [75]HTB site (Martin "devik" Devera) (HTB honlap)
     * [76]Traffic Control Next Generation (tcng) (kvetkez genercis
       forgalomirnyts)
       [77]TCNG manual (Werner Almesberger) (TCNG kziknyv)
     * [78]iproute2 (Alexey Kuznetsov)
       [79]iproute2 manual (Alexey Kuznetsov) (iproute2 kziknyv)
     * [80]Research and documentation on traffic control under linux
       (Stef Coene) (Forrsanyagok s dokumentcik a
       forgalomirnytsrl Linux alatt)
     * [81]LARTC HOWTO (bert hubert, et. al.)
     * [82]guide to IP networking with linux (Martin A. Brown) (Az IP
       hlzati protokoll hasznlata 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/
