Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > e14659009da7f79d221b85127afe4c4e > files > 48

howto-text-hu-2006-5mdv2010.0.noarch.rpm


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/