Ossza meg az internetet vagy a qos-ot mikrotikon
Az elvet, hogy mindent és mindent elosztunk oly sok milliárd évig, mint az univerzum létezik. Leggyakrabban a tárgyak egyenlő arányban oszlanak el, és egy egyenlőtlen felkapott darab valakinek vagy valaminek köszönhetően a megosztott elégedetlenséget okozza. Ilyen helyzetek gyakran előfordulnak, amikor a hasadási objektumnak jelentős értéke van a rendszerben. A 21. századra költözünk. Figyelembe véve a folyamatokat a társadalomban és mindenekelőtt az információs szférában, meg lehet jegyezni, hogy ésszerű mindazon részeket megosztani. És néha az algoritmusok olyan valódiak és stabilak, hogy nem hagynak többé-kevésbé megengedhetővé. A fentiek alkalmazása az adatátvitelre megértheti, hogy mi a tét.
A modern társadalom és minden benne lévő személy minden területen egyenlő bánásmódot igényel, ami gyakran a fejfájásnak számít a szolgáltatásokat nyújtók számára. Különösen hivatkozva nyújtott internet-hozzáférési szolgáltatások az utóbbi néhány évben már egy hatalmas áttörés, amely megoldja számos problémát okozott, az Advent a World Wide Web az otthonunkban és a munka, átalakítva azt egy bizonyos csemege gyorséttermi több százezer ember.
Először nézzünk olyan fogalmakat, amelyeket a jövőben fogunk használni.
Olyan technológia, amely lehetővé teszi az internet-hozzáférés sebességének és minőségének korlátozását, úgynevezett formázás (az angol alakzatból). Figuratív módon ez a technológia a csatorna letöltési ütemtervének valamilyen formáját nyújtja.
A shaper egy olyan algoritmus, amely a csomagok sorrendjének vezérlése mellett lehetővé teszi azok elutasítását, amelyek nem felelnek meg a feltételeknek. Ezek közé tartoznak a PCQ és a HTB algoritmusok (később beszélünk róluk).
Az al-sor a csomagokból egy vagy másik jellemzővel létrehozott sorból áll.
A várakozási fegyelem (qdisc) olyan algoritmus, amely rögzíti a csomagokat, és pontosan meghatározza, hogy melyik sorrendben és hogyan mozognak.
A Mikrotikban használt formázás középpontjában a HTB sor várakozásai vannak, számos Linux rendszerben megvalósítva. Tanulmánya meglehetősen nehéz, de szükséges feladat a kezdőknek, hiszen kevesen találják túl ezt a sikertelen kísérletet és másolási szabályokat a dokumentációból.
A Mikrotik forgalomirányítási alapjainak listája így néz ki:
A HTB legfontosabb koncepciója az osztály. A HTB rövidítés Hierarhical prefixe azt jelenti, hogy a fegyelem lehetővé teszi, hogy felépítsen egy osztályhierarchiát.
Szekvenciálisan az osztályok hierarchiája (az egyszerűség érdekében az osztályokat szabályoknak kell nevezni). A HTB valamilyen hibrid fa formájában jeleníthető meg, szintek szerint osztva, amelyek végső csúcsai az ügyfelek. Azok a tanfolyamok, amelyeknek nincsenek gyerekei, klienseknek vagy leveleknek nevezik. Általában a hierarchia nulla szintjén vannak, és először rögzítik a hozzájuk kapcsolódó forgalmat, átadva a szüleiknek. Két vagy több osztály, amelyek ugyanazon a közvetlen szülővel rendelkeznek, ugyanazon a szinten vannak, és azonos helyi kimeneti sorhoz kapcsolódnak.
A HTB struktúra szekvenciális ábrázolása
A fenti diagram az osztályok hierarchiáját mutatja, amelyben az adatcsomagok a szűrőből érkeznek. A prioritásoktól, az osztályparaméterektől és a csatorna terhelésétől függően egy helyi várakozási sor (önfejlődés) vagy a szülőosztályok sorában (belső hírcsatorna) érhető el.
Az osztályt az alábbi paraméterek jellemzik:
Egy osztály három állapot valamelyikében lehet:
- Zöld - a szabály sávszélessége nem haladja meg a limit-paramétert. Ebben az esetben a csomagok nem lépnek fel a hierarchiában, hanem azonnal lépnek a prioritásuknak megfelelően a szintjük kimeneti áramára.
- Sárga - a szabály sávszélessége nagyobb, mint a határérték, de kevesebb, mint a max-limit. Ebben az esetben az osztály le van választva a szint kimeneti áramáról és a szülőosztályhoz kapcsolódik.
- Piros - a szabály sávszélessége nagyobb, mint a max-limit. Ebben az állapotban az osztály le van választva a szülőről, és csatlakozik a helyi várólistához.
Ezen adatok felhasználásával szabályokat is hozhat, de a gyakorlatban néhány dolog kissé másnak tűnhet.
A Mikrotikban kétféle szabály létezik, amelyek a Winbox grafikus segédprogram különböző lapjain helyezkednek el (a Mikrotik Windows-ból konfigurálható):
Egy kicsit később beszélünk róluk, és most nézzünk néhány példát a HTB működésére
Hozzunk létre több szabályt
[admin @ MikroTik] sorfa> add name = ClassA szülő = Helyi max-limit = 2048000
[admin @ MikroTik] sorfa> add name = ClassB szülő = ClassA max-limit = 1024000
[admin @ MikroTik] sorfa> add name = Leaf1 szülő = ClassA max-limit = 2048000
. limit-at = 1024000 packet-mark = csomag_mark1 prioritás = 8
[admin @ MikroTik] sorfa> add name = Leaf2 szülő = ClassB max-limit = 1024000
. limit-at = 256000 packet-mark = csomag_mark2 priority = 7
[admin @ MikroTik] sorfa> add name = Leaf3 szülő = ClassB max-limit = 1024000
. limit-at = 768000 packet-mark = packet_mark3 prioritás = 8
[admin @ MikroTik] sorfa> nyomtatás
Zászlók: X - letiltva, I - érvénytelen
0 name = "ClassA" parent = Helyi packet-mark = "" limit-at = 0 sor = alapértelmezett
priority = 8 max-limit = 2048000 burst-limit = 0 burst-küszöb = 0
burst-time = 0s
1 name = "ClassB" szülő = ClassA packet-mark = "" limit-at = 0 queue = alapértelmezett
priority = 8 max-limit = 1024000 burst-limit = 0 burst-küszöb = 0
burst-time = 0s
2 name = "Leaf1" szülő = ClassA packet-mark = packet_mark1 limit-at = 1024000
sor = alapértelmezett prioritás = 8 max-limit = 2048000 burst-limit = 0
burst-küszöb = 0 burst-time = 0s
3 name = "Leaf2" szülő = ClassB packet-mark = packet_mark2 limit-at = 256000
sor = alapértelmezett prioritás = 7 max-limit = 1024000 burst-limit = 0
burst-küszöb = 0 burst-time = 0s
4 name = "Leaf3" szülő = ClassB packet-mark = csomag_mark3 limit-at = 768000
sor = alapértelmezett prioritás = 8 max-limit = 1024000 burst-limit = 0
burst-küszöb = 0 burst-time = 0s
[admin @ MikroTik] sorfa>
1. Tekintsük azt az első esetet, amikor az 1. és a 2. ügyfelek a limit-paraméterben megadottnál kisebb sebességgel továbbítják az adatokat, és a 3. ügyfél nem működik.
Amint látja, a leaf1 és leaf2 (ügyfelek) adatainak csomagjai nem kerülnek át a szülőosztályokba, hanem a helyi sorhoz vannak hozzárendelve prioritásuknak megfelelően
2. Most nézzük meg, mi történik, ha leaf2 ügyfél adatok továbbítását sebessége több, mint a határ-at, de kevesebb, mint a max-limit meghatározott saját beállításait, és kevesebb, mint a határ-at a paramétereket ClassB, amelyhez kapcsolódik. Ezzel egyidejűleg a leaf1 a határértéket nem meghaladó sebességgel továbbítja az adatokat.
Ebben az esetben kiderül egy érdekes helyzet: leaf1 ügyfél lesz magasabb prioritású, mint leaf2, bár a paraméterek az utolsó szett magasabb prioritást. Ez annak a ténynek köszönhető, hogy adatátvitel egy határ-at leaf2 csatlakozik a szülő osztály prioritással rendelkező 8. Ebben az esetben van egy szabály, hogy az alsó prioritási szintek csomagok azonos körülmények között nagyobb, mint a felső.
3. Tekintsük a következő példát: az 1. levél adatátviteli sebessége meghaladta a megengedett maximális határértéket, a leaf2 kliens a határértéknél nagyobb sebességgel és a maximalizált határértéknél nagyobb sebességgel továbbítja az adatokat, a leaf3 kliens a korlátozásnál kisebb sebességgel fut.
Ez egy nagyon érdekes eset. Ebben a helyzetben nyilvánvaló, hogy az ClassA túlterhelt a Leaf1 adatainál, így a ClassB nem kap engedélyt az átvitelre, és ennek következtében csak a zérószintű lokális sorhoz csatlakozó leaf3 ügyfél fog működni.
4. Most vegye figyelembe azt a példát, ahol az adatok egyidejűleg továbbítják a leaf1, a leaf2, a leaf3, a classB sárga színűeket, és a ClassA zöld lesz.
Ennek eredményeként a második szinten a leaf2 először a sorhoz jut (mert nagyobb prioritású), és a leaf1 és a leaf3 véletlenszerűen kerül kiválasztásra a szekvencia meghatározásához.
Amint látjuk, a HTB működésének algoritmusa nagyon logikus, és nem olyan bonyolult, ahogyan egyszerre látszott. Számos szoftver- és hardvergyártó elfogadta rugalmasságukat, megbízhatóságukat és az elődökben rejlő hibák hiányát. A sokoldalúságának köszönhetően szinte minden lehetséges szabályozási hierarchiát lehet felépíteni, pontosan meghatározva, és lehetővé téve az adatáramlás eléggé alacsony szintű szabályozását.
Gyakran szükség van egy úgynevezett csúcssebesség kiállítására az ügyfél számára egy bizonyos ideig. Például néha meg kell gyorsítanod a betöltési oldalakat, miközben a fájlok feltöltésének átlagos sebessége nem haladja meg a kijelölt értékeket. Vagy ritkán kéréseket küldhetsz és adatokat fogadhatsz, de maximális sebességgel. Butaság lenne ebben az esetben, hogy az ügyfeleknek nagyobb sebességet, mert egy ponton, mert a gondatlanság, vagy rosszindulatból más felhasználók is maradnak, vagy nélküle az interneten, vagy kapja meg nem valami szeretne, és mennyit fizetnek.
A Mikrotik fejlesztői minden szükséges eszközt biztosítottak a fent leírt csúcssebesség szabályozásához. A következő paraméterek jellemzik viselkedését:
- burst-limit - a sebesség, amely azonnal elérhető lesz a csatlakoztatáskor;
- tört-küszöb - az átlagsebesség az elmúlt tört idejű másodperc alatt;
- tört-időt - megszámolni a burst-küszöböt.
Abban a pillanatban, amikor egy ügyfél vagy egy osztály meg kell adni a maximális sebesség a következőképpen definiáljuk. Egyszer egy 1/16 tört idejű időt úgy számítjuk csatorna töltése a megadott számú másodperc. Ha a terhelés átlagosan kevesebb, mint tört-küszöböt, az ügyfél vagy az osztály meghatározott elkülönített tört-sebességhatár, amíg az nem haladja meg a tört-küszöböt. Ezt követően a határ max-limit, amíg nem történik meg újra, amíg a sebesség csökkentése kevésbé tört-küszöböt.
Ez a grafikon az jellemző a helyzet a protokoll http pumpáló nagy fájlt. Miután az első második az átlagos csatorna-terhelés egyenlő lesz (0 + 0 + 0 + 0 + 0 + 0 + 0 + 512) / 8 = 64 kbps, ami kevesebb, kapcsolati paramétert tört-küszöbérték. Miután a második második átlagos sebesség egyenlő (0 + 0 + 0 + 0 + 0 + 0 + 512 + 512) / 8 = 128 kbps. Miután a harmadik átlagsebesség meghaladja a második indikátor tört-küszöböt. Ezen a ponton, a sebesség drámaian esik a paraméter értékét max-limit és az is marad ezen a szinten, ameddig az átlag csatorna-terhelés kisebb, mint tört küszöbérték és többé nem fog előfordulni robbant sebesség kérdése.
Tekintsük az úgynevezett algoritmusokat ütemezõi, amelyeket a fent említett. ezek általában együtt alkalmazzák formáló, de néhány közülük is a sebességkorlátozó funkciót. Fizikailag Scheduler formálója megelőzi őt, és már elkészített csomagok sorban, amelyet akkor kell használni ogranieniya.
Csomag / Byte (FIFO) algoritmus first-come-first-out elv. Használt ethernet interfésszel. Az egyetlen paraméter ispolzuemvy konfigurációját az algoritmus - ez pfifo-limit (bfifo-limit). Ez jelzi a bájtok számát tárolható a kimeneti puffer. Nem szerepel a puffer a csomagok is meg kell semmisíteni. Grafikailag az algoritmus leírható a következő program. Valójában PFIFO / BFIFO semmi különöset nem önmagában, és nem kiváltságokat nem. Ő egyszerűen és ott használják, ahol célszerű használni ...
SFQ (sztochasztikus Méltányosság Queuing) - ez az algoritmus lehet az úgynevezett „véletlen őszinte.” Ez akkor alkalmazható, amikor szükség van rá, hogy minden TCP / UDP-kapcsolat ugyanazt a lehetőséget, az adatátvitel. Konfigurálása SFQ két paramétert használ:
- sfq-megzavarják - azt jelzi, hogy mennyi ideig kell változtatni a hash algoritmust, amely meghatározza, hogy mi alakítja majd igény szerinti sorba;
- PCQ-oszt - meghatározza a bájtok száma a sorban.
SFQ a következőképpen működik: az algoritmus forrásadó csomagokat subqueues egyidejűleg kimenetet PCQ-oszt bájtok számát felület, és szaggatott algoritmus növeli egyes al-queue PCQ-oszt bájt, miközben a mérleg és az azonos hosszúságú összes subqueues. SFQ kapcsolás lehet, mint egy húsdaráló, amelyben a kimeneti nyíláson keresztül grill egyidejűleg az összes lyukat ugyanannyi megy töltelék :).
SFQ algoritmus abban az esetben ajánlott, ha a csatorna terhelt és alkalmazásokat kell biztosítani ugyanazt a lehetőséget, az adatátvitel. Az egyetlen hátránya, hogy egy alkalmazás, nyitó sok patakok, kiszorítják egyéb kapcsolatokat.
RED (Random Early Detection) - egy algoritmus célja, hogy összehangolja és lelapul a kapacitás ugrik, miközben a közepes méretű sorban. Amikor a mérete eléri a piros-min-küszöböt algoritmus eltávolítja véletlenszerűen kiválasztott csomagot. A számos törölt csomagok növekszik srednegogo queue méretét. Ha a mérete eléri a piros-max-küszöböt, az összes csomagot eltávolítják. Vannak azonban olyan helyzetek, amikor a valós mérete a sorban (nem az átlag) szignifikánsan több vörös-max-küszöböt. Ebben az esetben az összes csomagot, amelyek túlmutatnak a piros-limit limit. hagyni.
A algoritmus nem túl kívánatos jelenlétében UDP-forgalmat, kapcsolatban kuszált algoritmus törlésekor csomagokat a sorból, és elvileg az UDP-protokoll adat nem éri el a címzetthez.
Az elmélettől a gyakorlatig
Ma már tudjuk, mindent meg kell építeni a szükséges nekünk a szabályokat. Mivel a gyakorlatban a használata SFQ és RED algoritmus ritkán használják, akkor a példákat munkájuk, nem fogunk megállni.
Sor fák - egy speciális típusa a sorban, amely közvetlenül tükrözi a formázó eszköz HTB. Ez lehetővé teszi, hogy építsenek egy fa szabályok (osztály), valamint a legalacsonyabb szintű ellenőrző csomagokat.
Röviden elmagyarázni vagyis alapvető szabályozási elem jelen van a sor fák:
- tört-határérték (integer) - a maximális löket-ráta;
- tört-küszöbérték (integer) - átlagos csatorna-terhelés, amelynél adhat ki tört-limit;
- tört-time (Idő) - használható számít az átlagos csatorna terhelés;
- flow (szöveg) - áramlás jelölt / ip tűzfal mángorló;
- korlátozza-at (integer) - garantált sebesség;
- max-limit (integer) - a maximális sebességet;
- neve (szöveg) - a név a sorból;
- szülő (szöveg) - a szülő a hierarchiában HTB osztályokba;
- prioritás (integer: 1..8) - prioritású várakozási;
- queue (szöveg) - a sor típusát. Be van állítva a / sor típusát.
I. Tehát hozz létre egy szabályt, hogy az ügyfeleknek a helyi vagy a virtuális hálózati maximális és minimális válaszidő elérésekor www.x-drivers.ru oldalon. Azonban a szakasz sebesség között egyaránt.
/ Ip tűzfal mángorló hozzá lánc = forward src-address = 192.168.11.0 / 24 dst-address = 66.148.73.54 / 32 action = mark-csatlakozás új-connection-mark = users-con-up
/ Ip tűzfal mángorló hozzá csatlakozó-mark = users-con-up action = mark-csomag
Új-packet-mark = users-up lánc = előre
/ IP tűzfal mángorló hozzá lánc = előre src-cím = 66.148.73.54 / 32
action = mark-csatlakozás új-connection-mark = users-con-down
/ Ip tűzfal mángorló hozzá csatlakozó-mark = users-con-down action = mark-csomag
Új-packet-mark = felhasználókat lefelé lánc = előre
/ Sor típusa add name = PCQ Letöltés fajta = PCQ PCQ-osztályozó = dst-address
/ Sor típusa add name = PCQ-upload fajta = PCQ PCQ-osztályozó = src-címet