Tc
A Unix/Linux szerverek üzemeltetése wikiből
A lap korábbi változatát látod, amilyen PinterGusztav (vitalap | szerkesztései) 2006. november 24., 20:08-kor történt szerkesztése után volt.
1 tc
A hálózatunkba beérkező forgalmat nem tudjuk sajnos igazán jól formázni, mert nincs hatásunk rá. Kb. olyan mit a papíralapú levelezés, a postásnak nem mondhatjuk meg, hogy naponta csak 5 levelet tegyen a levélszekrényünkbe, mert különben gond lesz. Viszont az olyan forgalmat, aminek forrása az általunk felügyelt hálózatban van, azt már könnyen szabályozhatjuk. Erre jó a tc.
1.1 A traffic control architektúrája
1.1.1 Terminológia
Queueing Discipline (qdisc)
- Egy eszköz feldolgozási sorának algoritmusa
root qdisc
- Ez a qdisc kapcsolódik az eszközhöz, az a fa struktúra gyökere.
Classless qdisc
- Osztályozás mentes viselkedés, a queue-ba kerüls csomagokat nem szórja szét osztályokba, csak újraütemezi, várakoztatja vagy eldobja. Semmit nem lehet rajta konfigurálni, egyszerüen csak van és lehet használni.
Classful qdisc
- Osztályokra bontható qdisc. Az osztályokból egy fa struktúra építhető fel. Az ilyen qdisc-eknek már sok (rengeteg) paraméterét lehet beállítani.
- pfifo_fast
- Token Bucket Filter (TBF)
- Stochastic Fairness Queueing (SFQ)
- PRIO
- Class Based Queueing (CBQ)
- Hierarchical Token Bucket (HTB)
Class (osztály)
- Egy qdisc-nek több osztálya is lehet, egy osztálynak lehet több gyermek osztálya. Minden osztályhoz tartozik egy qdisc.
Classifier (osztályozó)
- Ez dönti el, hogy melyik csomag melyik osztályba kerül tovább.
Filter (szűrő)
- Az osztályozás a szűrőkkel pontosítható, ha egy csomag paraméterei megfelel egy kondíciónak, akkor az osztályozó aképp fog eljárni vele.
Scheduling (ütemezés)
- A csomagok ütemezését szolgálja a qdisc-eken keresztül az osztályozó segítségével.
Shaping (formázás)
- Az határozza meg, hogy egy csomag mikor kerülhet ki a médiumra, hogy az adott paramétereket (sávszélesség, burstösség) teljesítse a csomagfolyam.
Policing (rendelkezés)
- Meghatárzza, hogy mi történjen a csomaggal. Késleltetést szenvedjen, eldobásra kerüljön (a Linux csak eldobni tudja, mivel nincs bemeneti sor).
Work-Conserving
- Ez olyan qdisc, ha van kiköldendő csomag, akkor azt kiküldi.
non-Work-Conserving
- Ez olyan qdisc, hogy ha van kiküldendü csomag, akkor azt csak akkor küldi ki, ha belefér a paraméterek álatal meghatározott forgalmi mintába (pl. nem lesz túl burstös)
A tc hierarchiája a kernelben:
Userspace programs ^ | +---------------+-----------------------------------------+ | Y | | -------> IP Stack | | | | | | | Y | | | Y | | ^ | | | | / ----------> Forwarding -> | | ^ / | | | |/ Y | | | | | | ^ Y /-qdisc1-\ | | | Egress /--qdisc2--\ | --->->Ingress Classifier ---qdisc3---- | -> | Qdisc \__qdisc4__/ | | \-qdiscN_/ | | | +---------------------------------------------------------+
- Az egész nagy doboz a kernel
- Elvileg nincs bemeneti queue (azért meg lehet oldani)
- Ha a gépnek szól egy csomag akkor az felfele megy, ha nem akkor jobbra