Komplexní řešení implementace řízení toku dat na linuxovém routeru

Rozměr: px
Začít zobrazení ze stránky:

Download "Komplexní řešení implementace řízení toku dat na linuxovém routeru"

Transkript

1 České vysoké učení technické v Praze Fakulta elektrotechnická Diplomová práce Komplexní řešení implementace řízení toku dat na linuxovém routeru Jan Sechovec Vedoucí práce: Ing. Jiří Smítka Studijní program: Magisterský Obor: Výpočetní technika Květen 2008

2

3 Poděkování Chtěl bych především poděkovat své přítelkyni a snoubence Janě, za podporu při psaní práce (ať již morální, či praktickou při korektuře pravopisu a gramatiky). Dále všem aktivním členům Sdružení Klfree.net, za to, co pro chod sítě ve svém volném čase dělají a tím vůbec tato síť může existovat. Dobrovolná práce v této síti pro mě byla a je velkým přínosem, zejména co se týče síťových technologií a bez ní by ani nevznikla tato práce. Kapele Bolt Thrower děkuji za zpříjemnění chvil při práci.

4

5 Prohlášení Prohlašuji, že jsem svou diplomovou práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu 60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Kladně dne

6

7 Abstract In my work, I m dealing with problem about Quality of Service (QoS) and controlling of data flow on a linux router. Furthermore with designing systems, that guarantees desired Quality of Service and implementation of them on GNU/Linux platform. The outcome of this work is particular implementation of such system for network of non-profit organization Klfree.net. Abstrakt Ve své práci se zabývám jednak obecně problematikou kvality služby (QoS) a řízení toku dat na linuxovém routeru. Dále pak možnostmi pro návrh systémů pro zajištění kvality služby a implementací takového systému v prostředí operačního systému GNU/Linux. Výsledkem práce je konkrétní řešení implementace takového systému v síti Sdružení Klfree.net.

8

9 1 Úvod Úvod do problematiky a vymezení cílů práce Pojem kvality služby Prostředí linuxových routerů (směrovačů) Navrhování komplexních systémů pro řízení toku dat Vymezení cílů práce a požadavků na navrhovaný systém Popis struktury práce ve vztahu k vytyčeným cílům QoS Quality of service Požadavky na přenos dat kvalita služby Datová propustnost Rychlost odezvy Rozptyl přenosové doby jitter Ztrátovost paketů Dostupnost služby Příklady požadavků služeb Nejčastější situace vyžadující použití QoS Nedostatečná přenosová kapacita linky Přenosové médium s nevyhovujícím řízením toku dat Způsoby řízení toku dat Type of service (TOS) Rezervační protokol RSVP DiffServ differentiated services Traffic shaping Prioritizace Ostatní metody Části sítě a možnosti jak zde realizovat QoS Vstup do sítě Tranzitní část sítě Výstup ze sítě Metody pro řízení toku dat na Linuxu Základní principy Řízení toku Frontové disciplíny (queue disciplines - qdisc) Třídy (classes)... 16

10 5.1.4 Klasifikátory (filters) Průchod paketu routerem Nastavení systému Kompilace jádra Balík iproute Podpora v iptables Použití příkazu tc Jednotlivé frontové disciplíny Pfifo_fast Pfifo a bfifo TBF - Token Bucket Filter SFQ - Stochastic Fairness Queueing ESFQ Extended verze SFQ RED Random Early Detection Prio DSMARK HTB - Hierarchical Token Bucket Klasifikátory U32 klasifikátor FW netfilter mark ROUTE Routing decision TCINDEX Traffic-Control Index IMQ Návrh komplexního systému Příklady v praxi používaných řešení Shaping na úrovni portů Shaping na úrovni IP adres Systém postavený na Differential Services Návrhy řešení pro jednotlivé části sítě Konkrétní požadavky Návrh řešení pro část sítě s připojenými uživateli Návrh řešení pro tranzitní část sítě Návrh řešení pro místo připojení k internetu Návrh řešení pro síť Klfree.net...39

11 6.3.1 Specifika sítě Klfree.net Problematika wifi Návrh řešení pro WiFi Řešení v ostatních částech sítě Srovnání navrženého řešení s jinými systémy Implementace Popis Implementace Inicializace systému Konfigurace basic modulu Konfigurace userap modulu Implementace userap modulu Instalace Dokumentace Testování Ověření funkce systému Závěr a plány do budoucna Použitá literatura a odkazy A. Seznam použitých zkratek...ii B. Sdružení Klfree.net...ii C. Ukázka webového rozhraní routeru s qosem... iv D. Dokumentace návod ke konfiguraci... v

12

13 1 Úvod Cílem mé diplomové práce je seznámit čtenáře s problematikou zajištění kvality síťových služeb jako takovou a metodami pro řízení toku dat pro její zajištění v prostředí operačního systému GNU/Linux. Dále pak nastínit návrh takového řešení včetně konkrétní implementace v síti Sdružení Klfree.net. Motivace práce S operačním systémem Linux jsem se dostal do prvního kontaktu vlastně právě díky připojení do počítačové sítě Sdružení Klfree.net. Psal se rok 2004 a WiFi technologie zažívala velký boom díky na tuto dobu bezkonkurenční rychlosti a ceně za připojení. DSL technologie byly ještě v plenkách a většina lidí využívala drahé a pomalé vytáčené připojení pomocí klasických modemů. Od prvních pokusů s anténou vyrobenou z plechovky od motorového oleje a instalace vlastního routeru pro připojení domácí sítě (PC s procesorem Intel 80486) jsem se postupně dostal až do role správce několika přístupových bodů sítě Sdružení Klfree.net a síťového administrátora, kdy se zabývám především dohledem sítě a přidělováním adresních rozsahů pro jednotlivé body a části sítě. Jako většina podobných sítí začínalo Sdružení Klfree.net s několika WiFi přístupovými body (Node) a propoji mezi nimi realizovanými opět na technologii WiFi. Proto bylo nutné již od prvopočátku řešit problémy spojené jednak s přetíženými spoji, tak i s nepříliš dobrými přenosovými vlastnostmi používaných bezdrátových technologií. Nastaly první experimenty s prioritizací a traffic shapingem (oba tyto pojmy budou v práci vysvětleny) a studium různých materiálů a norem zabývajících se touto problematikou. Poté zkoušení jinde používaných systémů a nakonec i vývoj vlastního systému, na základě předchozích zkušeností. Výsledkem tohoto vývoje je také tato diplomové práce, ve které se jednak pokusím uplatnit již získané zkušenosti a samozřejmě zároveň si je obohatit o další důkladnější studium těch částí problematiky, které byly z nedostatku času, či z jiného důvodu opomíjeny. 1

14 2 Úvod do problematiky a vymezení cílů práce V této kapitole se postupně od vysvětlení pojmu kvality služby, přes popis prostředí linuxových routerů a popisu návrhu systémů pro řízení toku dat dostanu až ke stanovení cílů této práce. 2.1 Pojem kvality služby Kvalita služby je českým překladem anglického termínu Quality of Service QoS. Jedná se o obecný termín, označující celý obor zabývající se požadavky na přenos dat a jejich zaručení. V práci bude používáno buď českého termínu kvalita služby, nebo zkratky QoS. Často také když hovoříme o QoSu, máme na mysli již konkrétní řešení řízení toku dat, kterým ony požadavky plníme (nebo se alespoň pokoušíme plnit). 2.2 Prostředí linuxových routerů (směrovačů) Jak již vyplývá ze zadání této práce, bude problematika kvality služby řešena především na routerech realizovaných běžnými PC s operačním systémem Linux. Českým ekvivalentem pro router je slovo směrovač. Systémy založené na PC s operačním systémem Linux mohou být plnohodnotnou alternativou k jednoúčelovým zařízením, které někdy také bývají označovány jako hardwarové routery, zejména pro sítě s menšími datovými toky. Velkou výhodou linuxových routerů je především větší univerzálnost a možnost upravovat konečné řešení než u routerů, kde jsou tyto funkce pevnou součástí poměrně jednoduchého operačního systému. Pro také mluví cena, která u linuxového routeru může být i několikanásobně nižší než u podobně výkonného jednoúčelového routeru. Univerzálnost ovšem může být brána také jako nevýhoda. Nemáme k dispozici hotové řešení, které stačí pouze nastavit. Naopak, u každé z potřebných vlastností routeru musíme vědět jakým způsobem ji zajistit, jaký musíme nainstalovat software a jak jej nastavit. Zmíněná výhoda v universalitě se rázem stává velkou nevýhodou. 2.3 Navrhování komplexních systémů pro řízení toku dat Pokud budeme mít povědomí o tom, co je to vlastně zajištění kvality služby, jaké jsou požadavky jednotlivých síťových služeb a jakým způsobem fungují na zvolené platformě (PC router s operačním systémem GNU/Linux) jednotlivé metody pro řízení toku dat, můžeme začít navrhovat komplexní systém pro řízení toku dat. 2

15 A návrh tohoto systému je také cílem mé práce. 2.4 Vymezení cílů práce a požadavků na navrhovaný systém 1) Cílem této práce je analyzovat typické situace pro nasazení QoS. Popsat jednotlivé části sítě a možnosti, jak na nich realizovat QoS. 2) Uvést a popsat jaké jsou nejvíce používané možnosti řízení toku dat pro zajištění QoS, které poskytuje router s operačním systémem Linux. 3) Na základě bodů 1 a 2 navrhnout systém, který bude zjištěné požadavky v bodu 1 řešit pomocí metod uvedených v bodě 2. Konkrétní řešení navrhnout pro síť Klfree.net. 4) Provést implementaci navrženého systému v bodě 3 v síti Klfree.net. Hlavní požadavek na navrhovaný systém byl již uveden v zadání práce. Je jím zajistit co nejlepší fungovaní funkcí služeb sítě z pohledu většiny uživatelů sítě. 3

16 3 Popis struktury práce ve vztahu k vytyčeným cílům První kapitola je úvodem s vysvětlením motivace pro napsání této práce. Popisuji zde jak jsem se vůbec dostal k výběru tohoto tématu pro práci. Druhá kapitola se zabývá cíli práce. Je zde vysvětleno několik základních pojmů a popsáno prostředí, pro které je práce určena. Na závěr kapitoly jsou vytyčeny konkrétní cíle práce. Třetí kapitola popisuje strukturu práce - rozdělení a obsah jednotlivých kapitol. Další členění práce bude respektovat čtyři vytyčené cíle: Ve čtvrté kapitole popisuji kde a z jakého důvodu je potřeba používat QoS a jaké jsou nejrůznější požadavky na QoS uživatelů sítě. Zvýšená pozornost bude věnována bezdrátovým sítím a vysvětleno proč je zde použití QoS nezbytné. Čtvrtá kapitola tak řeší vytyčený cíl 1. Pátá kapitola se věnuje samotné realizaci metod na řízení toku dat prostředky, které jsou k dispozici v operačním systému Linux. Slouží jako seznámení s jednotlivými disciplínami a klasifikátory. Je tedy řešen cíl 2. Šestá kapitola práce řeší možnosti návrhu systému na základě předchozích úvah. Jsou zde popsány způsoby používané v praxi a jejich výhody a nevýhody, analyzovány jednotlivé části sítě postavené na linuxových routerech a nastíněno obecné řešení v těchto částech sítě. Pro prostředí sítě Sdružení Klfree.net je pak navrženo konkrétní řešení (cíl 3). Sedmá kapitola popíše implementaci navrženého řešení v síti Sdružení. Jakým způsobem bylo realizováno a testováno (cíl 4). Osmá kapitola je závěrem práce. Zde je zhodnocení realizaci jednotlivých cílů a přínosu práce. Jsou zde také uvedeny cíle budoucího vývoje implementovaného řešení. Součástí práce jsou také následující přílohy: Dodatek A seznam použitých zkratek Dodatek B informace o Sdružení Klfree.net a síťovém prostředí této sítě Dodatek C ukázka webového rozhraní routeru, kde je použité řešení z této práce Dodatek D dokumentace skutečné implementace používané v síti Sdružení Klfree.net 4

17 4 QoS Quality of service Tato kapitola má za cíl podrobné seznámení s problematikou kvality služby a různými požadavky aplikací na přenos dat. 4.1 Požadavky na přenos dat kvalita služby Počítačové sítě a především celosvětová síť Internet prodělaly v poslední době obrovský rozvoj. Hlavně díky nástupu vysokorychlostních připojení se rozšířilo spektrum síťových služeb, které můžeme dnes využívat i z domova. Společnou vlastností síťových služeb je to, že vyžadují přenos dat. Rozdílné jsou ovšem požadavky na různé aspekty kvality tohoto přenosu. Některé služby vyžadují pro správnou funkci určitý garantovaný datový tok (např. přenos video signálu). Datovým tokem rozumíme množství přenesených dat v byte za jednotku času. Jiné služby požadují například rychlou odezvu nebo malý rozptyl odezvy (tzv. jitter). Některé naopak nemají požadavky téměř žádné (například přenos ových zpráv). Právě uvedenou problematikou se budu zabývat v této kapitole Datová propustnost Velké množství služeb má požadavek na určitou datovou propustnost. Tento termín nelze zcela jednoznačně specifikovat, požadavky jsou různého typu. V některých případech především u přenosů videa/zvuku v reálném čase (real-time), je klíčové zajistit datový tok pokud možno po celou dobu přenosu. Pokud se nám toto nepodaří zajistit, dochází k výpadkům (zasekávání způsobené ztrátou synchronizace, atd.) což výslednou kvalitu přenosu značně degraduje. V závislosti na tom, zda přenášíme pouze hlas či video signál, se potřebná hodnota může pohybovat od desítek kbit/s (přenos hlasu) až po řádově několik Mbit/s (málo komprimované video). U přenosu hovoru sice požadavky přenosové rychlosti pro jeden hovor bývají malé, ale je potřeba počítat s tím, že může být v jednom okamžiku uskutečněno velké množství hovorů a tím potřebná přenosová rychlost řádově větší. O přenosu hlasu prostřednictvím internetu mluvíme jako o IP telefonii, často se také používá anglická zkratka VoIP (Voice over IP). Jiným případem jsou datové přenosy, kde sice nevyžadujeme samotnou stabilitu přenosu jako u přenosu hlasu či obrazu, ale je pro nás omezující doba za kterou přenos 5

18 proběhne. Například při síťovém zálohování dat může být pro nás klíčové, aby tento proces proběhl v omezeném čase. Zálohovaný systém může být v průběhu zálohy nedostupný pro běžnou práci, je tedy potřeba dobu pro zálohování minimalizovat a načasovat na hodinu co nejmenšího použití systému. Pro běžného domácího uživatele je také důležité, aby nemusel na stažení souborů příliš dlouho čekat. Čekající uživatelé nebývají spokojeni se svým připojením. Většinou je také při volbě poskytovatele připojení k internetu brán největší ohled na hodnotu rychlosti připojení. Zde je nutné zmínit také dost opomíjenou hodnotu agregace. Často se totiž nejedná o garantovanou rychlost připojení, ale o rychlost maximální a právě hodnota agregace udává kolik dalších uživatelů sdílí tuto rychlost. Reálná rychlost může tak být i několikanásobně nižší než maximální Rychlost odezvy Kromě přenosové rychlosti je velice častým požadavkem rychlá a stabilní odezva neboli přenosová doba, kterou paket cestuje sítí od zdroje k cíli (také ji označujeme jako zpoždění (latenci)). Vyžadována je především již zmíněnými real-time aplikacemi, kterých je velice široké spektrum. V dnešní době je asi nejvýznamější přenos hlasu internetová telefonie. Kromě požadavku na datový tok (řešeno v předchozí sekci) je pro telefonování prostřednictvím počítačové sítě nutné, aby přenos těchto dat proběhl co nejrychleji s co nejkratší odezvou. Narůstající odezva se negativně projevuje na kvalitě spojení přenos hovoru je opožděný. Mimo přenosu hlasu umožňují dnešní připojení k internetu také přenos videa (velice oblíbená je video telefonie prostřednictvím programu Skype). I v tomto případě musíme přenášet data s co nejmenší přenosovou dobou. Platí zde podobně jako u hlasu, že při dlouhých odezvách je přenos video signálu opožděný může také docházet k vypršení časových limitů a rozpadu spojení. Dalším příkladem může být vzdálený přístup na jiný počítač/zařízení. Ať již v textové formě (například za pomoci protokolu ssh či telnet) či grafické (vzdálená plocha systému Windows, či multiplatformní protokol VNC). Při pomalé odezvě je práce s takovými službami obtížná a v extrémním případě až nemožná. Pokud jsou tyto protokoly používány pro vzdálenou administraci routerů na sítí, je žádoucí, aby je bylo možné použít při jakýchkoli podmínkách i při jinak velmi přetížené lince. Nelze také zapomenout na méně profesionální použití - počítačové hry hrané po síti. Především u akčních her je nutné, aby se akce hráče přenášely co nejrychleji na 6

19 herní server a naopak odezva serveru zpět ke hráči. Hráči na pomalých linkách bývají značně znevýhodněni oproti těm, jejichž odezvy jsou krátké. Kritické pro tuto oblast bývá překročení limitu pro odezvu (time-out) při které dochází například ke ztrátě určitých informací, opětovnému navazování spojení, či úplnému rozpadnutí spojení, kdy je hráč odpojen ze hry. V hráčské komunitě jsou problémy, ke kterým dojde díky pomalé odezvě, označovány slangovým výrazem lag Rozptyl přenosové doby jitter Při přenosu dat může také rozptyl přenosových dob (angl. jitter) velice negativně ovlivnit kvalitu především opět real-timových služeb. Při internetové telefonii se projevuje různým zasekáváním hovoru, což vede až k úplnému zkomolení, kdy není hovoru téměř rozumět. Z tohoto důvodu je velký rozptyl pro telefonii ještě více problematický, než stabilně horší doba odezvy (hovor je sice se zpožděním ale je mu dobře rozumět) Ztrátovost paketů Velice důležitým faktorem je také ztrátovost paketů při síťovém přenosu. Většina již dříve zmíněných služeb vyžaduje, aby ztrátovost přenášených dat byla co nejmenší. V okamžiku, kdy není z nějakého důvodu paket doručen, dochází k opětovnému poslání (retransmisi), což velmi negativně ovlivňuje až na výjimky většinu přenosů dat. Ztrátovost paketů bývá způsobena především poruchami sítě nebo značným přetížením spoje, kdy již nepostačují fronty pro odesílání paketů a další pakety jsou zahazovány Dostupnost služby Trochu jiným požadavkem než všechny předchozí je požadavek na dostupnost služby. Nejedná se o požadavek na vlastnosti samotného přenosu, ale na zajištění chodu služby specifikovaných parametrů. Dobrou dostupnost služby lze zajistit zejména zálohováním a předcházením chybám na všech úrovních. Příkladem může být použití záložních zdrojů pro případ výpadku napájení, nebo možnosti využití záložních spojů při výpadku spoje hlavního. Dostupnost služby bývá hlavně předmětem smlouvy mezi zákazníkem a poskytovatelem připojení. Poskytovatel garantuje například maximální dobu výpadku 7

20 služby, nebo maximální dobu reakce na vzniklý problém. Bývají také stanoveny sankce pro případ porušení těchto závazků Příklady požadavků služeb V následující tabulce uvádím shrnutí podavků některých z nejpoužívanějších služeb. Název služby IP telefonie (VoIP) Streamovaná hudba či video Počítačové hry hrané po síti Interaktivní služby Zobrazení www stránek P2P sítě pro sdílení dat Kritické systémy Vzdálená administrace Požadavky co nejmenší latence na přenášená data garantovaná propustnost linky a nízký jitter nízká latence nízká latence rozumná latence, rozumná propustnost, tak aby negativně neovlivnily uživatele z pohledu uživatele co největší propustnost, pohledy správců sítě bývají různé garantování vysoké dostupnosti a odolnosti proti chybám (přenos videa při lékařských operacích, zajištění přenosu kamerového systému, zabezpečovacího či ovládacího systému budov a jiné. Nízká latence a dostupnost za jakýchkoli podmínek i při velké zátěži sítě. Tabulka 1 požadavky služeb 4.2 Nejčastější situace vyžadující použití QoS V této části proberu dvě základní modelové situace, ve kterých je vyžadována aplikace nějakého systému řízení toku dat pro zajištění potřebné kvality služby Nedostatečná přenosová kapacita linky Přenosová kapacita linky je vždy nějakým způsobem omezená. Kapacitu jednak omezují technické možnosti daného přenosového média (příkladem může být běžná telefonní linka - při použití přenosového protokolu V92 dosáhneme maximální přenosové rychlosti 56kbit/s; různé typy ethernetového rozhraní poskytují rychlosti 10,100,1000Mbit/s,...). Druhým velice častým limitujícím faktorem jsou pak smluvní vztahy (přípojku do internetu si pořizujeme o určité kapacitě, za kterou platíme poskytovateli připojení). 8

21 Dokud přenášíme méně než je tato kapacita, přenos probíhá v pořádku. Pakety odcházejí se zpožděním daným pouze použitou technologií. Problémy ale nastávají v okamžiku, kdy chceme přenášet více než umožňuje dostupná kapacita. Přípojkou 1Mbps nepoteče více než 1Mbit/s, protože si tuto rychlost platíme a poskytovatel omezuje propustnost právě na tuto hodnotu. Následkem větších požadavků na přenos než je dostupná kapacita dochází k zahlcení linky. Projevuje se nejprve nárůstem latence na přenášených paketech (toto se negativně projeví právě na telefonii, hrách, interaktivních službách) a při větším zahlcení již může docházet i ke ztrátě paketů. Způsobeno je to tím, že paket který není možné odeslat okamžitě, je za běžných podmínek zařazen do fronty a čekáním na odeslání narůstá latence. Paket který se ani do fronty nevejde (fronty nebývají nekonečné) je ztracen. Řešení této situace jsou obecně dvě. Buď zvětšit propustnost linky (např. nahradíme stávající 10Mbit prvky 100Mbitovými - jednoduché, ale většinou dosti drahé řešení), nebo lépe hospodařit se stávající kapacitou linky tak, abychom co nejlépe uspokojili naše požadavky. Lépe hospodařit znamená v našem případě samozřejmě aplikovat nějakou sofistikovanější metodu pro odesílání paketů Přenosové médium s nevyhovujícím řízením toku dat Kromě obecně nedostatečné přenosové kapacity se vyskytují i problémy spojené s vlastním přenosovým médiem. Zde se budu zabývat především technologií založenou na standardu a/b/g čili WiFi. Bezdrátové připojení prostřednictvím WiFi používá protokol CSMA/CA (Carrier-sense, multiple-access, collision avoidance) pro předcházení kolizím. Jeho součástí je možnost rezervace vysílání pomocí RTS/CTS protokolu, ale tato metoda nebývá příliš často používána (selhává zejména při rušení z cizího vysílače). Pro připojení koncových uživatelů se nejčastěji používá topologie point to multipoint k centrálnímu vysílacímu přístupovému bodu je připojeno několik klientů (někdy i několik desítek). Podle návrhu je WiFi určena především pro použití uvnitř budov či na krátké vzdálenosti (indoor) [1]. Při použití na větší vzdálenosti za pomoci směrových antén pak nastávají problémy s provozem díky tomu, že jednotliví klienti vzájemně neslyší své vysílání. Dochází tak ke kolizím při současném vysílání více klientů a bez nasazení nějakého způsobu řízení přenosu k častým problémům. Při zátěži narůstá doba odezvy 9

22 způsobená retransmisemi a může též docházet ke ztrátovosti paketů (což většinou postihuje uživatele s horším signálem). Přínosem bývá zejména omezení toku dat od klientů směrem k přístupovému bodu. 4.3 Způsoby řízení toku dat V této sekci obecně popíši nejdůležitější metody používané pro řízení toku dat Type of service (TOS) Již samotná hlavička IP paketu obsahuje podporu pro zajištění základních požadavků služeb. Cílem osmibitového pole v hlavičce paketu je informovat o tom jaké jsou požadavky služby, která přenáší data. Používány jsou ale jen 3 bity, každý z nich určuje vlastnost požadavek na nízkou odezvu, požadavek na velkou kapacitu a požadavek na velkou spolehlivost [2]. Při použití výchozího nastavení sítě na linuxovém routeru je právě tento příznak klíčový pro prioritu odeslání paketů. Pakety s nastaveným příznakem požadavku nízké odezvy jsou odesílány jako první, následují pakety s požadavkem na velkou propustnost a spolehlivost a úplně na závěr jsou odeslány pakety bez nastavených příznaků [4]. Pokud ToS příznaky nenastavujeme při vstupu paketu do kontrolované části sítě, je zde velké riziko zneužití ze strany aplikací, kde například programy pro P2P sdílení můžou nastavovat ToS příznaky tak, aby jejich data byla co nejvíce prioritizována Rezervační protokol RSVP Jedním z dalších komplexních systémů pro zajištění kvality služeb je rezervační systém založený na protokolu RSVP (Resource ReSerVation Protocol). Jeho rozšíření a podpora jsou ale malé, proto zde uvedu pouze myšlenku tohoto systému. Při požadavku na zajištění kvality služby posílá pomocí protokolu RSVP aplikace požadavek routeru, který pokud je mu možné vyhovět, rezervuje určitou datovou kapacitu pro tento přenos. Router, který přijímá žádost musí komunikovat s ostatními v síti tak, aby byla zajištěna rezervace na všech routerech, kudy paket při přenosu sítí půjde. Důvodem, proč tento systém nebyl nikdy moc rozšířen je jeho velká náročnost při rozsáhlé síti a nutnost, aby aplikace používaly specializovaný rezervační protokol. 10

23 4.3.3 DiffServ differentiated services Nástupce myšlenky ToS. Tentokrát je používáno celkem 6 bitů v hlavičce IP paketu pro nastavení typu přenášených dat [2]. V závislosti na tomto poli pak je s paketem při průchodu sítí zacházeno. Platí zde stejné nebezpečí jako u systému používajícího ToS. Je nutné buď důvěřovat tomu, jak mají pakety nastavené pole DSCP v hlavičce již od aplikací, které je posílají, nebo toto pole na základě vyhodnocení paketu routerem přeznačit. Při dalším přenosu sítí toto pole již zpravidla nebývá měněno a routery ho používají k rozhodování o typu dat a prioritě. Tento systém je v dnešní době podporován u velkého množství jednoúčelových hardwarových routerů. Experimentální implementace existuje i pro linuxový router [3]. Výhodou tohoto systému je dobrá škálovatelnost. Analýza a značení paketů probíhá pouze při vstupu paketu do kontrolované sítě Traffic shaping Volně přeloženo do češtiny by tento pojem znamenal tvarování provozu, proto je spíše používán samotný anglický výraz. O traffic shapingu mluvíme vždy v souvislosti s metodami založenými na limitování průtoku dat. Problém kvality služby při přetížení přenosové kapacity řešíme vyčleněním určité části kapacity pro jednotlivé služby. Požadované služby pak mají zajištěnou dobrou kvalitu na úkor ostatních. Je tedy nutné rozpoznat které pakety patří kterým službám, aby tento systém byl efektivní. Postupuje se obecně dvěma cestami již zmíněným vyčleněním služeb, u kterých nám záleží na dobré kvalitě služby, nebo opačným způsobem, kdy vyčleníme do omezeného pásma naopak ty služby, u kterých chceme omezit maximální datový tok (zejména služby založené na P2P sdílení). Lze použít i obou způsobů zároveň. V tomto případě zbytek nezařazených paketů může využít kapacitu, která nám zůstane po odečtení vyčleněných částí od celkové dostupné kapacity. Velice často se v názvech jednotlivých disciplín objevuje anglický název bucket kyblík. Bucket zde vyjadřuje princip, že v případě překročení jeho kapacity dochází k přeplnění data jsou zahazována. 11

24 4.3.5 Prioritizace Další množina metod pro řízení toku dat využívá rozmanité prioritizační algoritmy. Není zde brána v úvahu využitá přenosová rychlost, ale měníme pouze pořadí odesílaných paketů podle nějakých pravidel (scheduling). Prioritizace je oproti traffic shapingu podstatně jednodušší metoda. Rozlišujeme zde dva základní principy. Jednak klasické použití prioritních front, kdy pakety, které považujeme za více prioritní jsou odesílány dříve. Tato metoda je schopná zajistit pouze kvalitu služby pro nejvíce prioritizované pakety. Kvalita služby všech méně prioritizovaných skupin pak závisí na využití dostupné kapacity více prioritizovanými pakety (můžeme využít pouze to co nám zbývá). Druhou skupinou jsou pak algoritmy, které se snaží o zajištění jisté spravedlivosti odesílání. Na základě pravidel rozdělíme pakety do skupinek a pořadí odesílání volíme tak, abychom odesílali z těchto skupin rovným dílem. Při této metodě však nemáme již žádnou možnost zajistit pro vybrané služby požadovanou kvalitu služby. Při přetížení dochází i k rovnoměrnému přetížení všech služeb, což je ne vždy akceptovatelné. Proto při použití této metody ji často kombinujeme s nějakou formou traffic shapingu pro zajištění kvality služby požadovaným aplikacím Ostatní metody Kromě uvedených hlavních metod se setkáváme i se speciálními, které nejde jednoduše zařadit do některé kategorie. Jednotlivé příklady uvedu v části zaměřené na podporu disciplín pro řízení toku dat na linuxovém routeru. 4.4 Části sítě a možnosti jak zde realizovat QoS Síť, kterou tvoří linuxové routery, můžeme rozdělit z pohledu zajištění kvality služby na tři základní části. Vstup do sítě (místo připojení koncových zařízení), tranzitní část a výstup ze sítě (propoj do jiné sítě, přístup k serverům které poskytují služby apod.) Vstup do sítě Toto místo (v žargonu poskytovatelů připojení označované jako tzv. poslední míle ) má několik základních specifik: 12

25 - jsou zde připojena zařízení, která většinou nemáme jakožto správci sítě pod kontrolou, - připojení je zde často realizováno způsobem P2M (point to multipoint), - bývá zde často použita technologie, kterou není možné jednoduše nahradit, - bývá zde často použita technologie, která je co nejlevnější na klientské straně. Především poslední dva uvedené body předurčují, že se v tomto případě bude jednat o problematické místo levná technologie bývá synonymem pro nedostatečnou kapacitu. Zejména realizace poslední míle na WiFi je zdrojem problémů a nezbytně vyžaduje nasazení nějakého způsobu řízení toku dat. V opačném případě často dochází k zahlcení sítě a silné degradaci kvality služeb. Další věcí, která ovlivňuje způsob zajištění kvality služeb, je také politika vůči uživatelům sítě. Pokud jsme v síti komerčního ISP, tak právě zde většinou probíhá omezení rychlosti na úroveň odpovídající zaplacené službě, případně další prioritizace či shaping dle smlouvy se zákazníkem. Můžeme zde například zajišťovat prioritizaci paketů pro IP telefonii, případně dalších požadavků zákazníka. Také se stává, že ISP pouze omezí rychlost a případná prioritizace je pouze na připojeném zákazníkovi (typické pro menší ISP). Lze se setkat i s variantou, kdy na této úrovni žádné řízení toku dat neprobíhá. Omezování pak probíhá například centrálně až v místě výstupu ze sítě. V nekomerčních sítích bývá politika různá. Podobně jako u komerčních sítí mohou být zajišťovány požadavky na kvalitu služby přímo zde či až na výstupu ze sítě. Omezování rychlosti zde probíhá především z důvodu zajištění rovnocenného připojení a co nejlepší kvality služeb pro všechna připojená zařízení Tranzitní část sítě Zajišťuje přenos paketů mezi jednotlivými routery od zdroje směrem k cíli: - zde máme plnou kontrolu nad přenášenými daty, - spoje mezi routery jsou vesměs realizovány jako P2P (point to point), - použitá technologie jde často jednoduše nahradit v případě, že nepostačuje, - páteřní spoje je žádoucí udržovat dostatečně dimenzované. Tuto část sítě máme tedy plně pod kontrolou a bývá jednodušší problémy s nedostatečnou kapacitou řešit náhradou technologie. Jsou zde používány převážně jednodušší metody pro řízení toku dat. Důvodem je jednak zmíněný fakt, že zde bývá snaha používat dostatečně dimenzovanou technologii a zároveň se stoupající rozsáhlostí 13

26 sítě bývá problematické (zejména z důvodu velké výpočetní zátěže při velkých datových tocích) aplikovat nějaký složitější systém. Vhodnými metodami jsou například rozhodování pomocí IP adresy či nasazení systému na bázi DSCP Výstup ze sítě Výstup ze sítě je nejčastěji místem, kde je privátní síť připojena do globální sítě Internet. Zde je opět potenciální kritický bod z pohledu zajištění kvality služby. Ne vždy postačuje kapacita přípojky k internetu požadavkům uživatelů. Při méně rozsáhlých sítích je možné použít komplexní systém pro omezování jednotlivých uživatelů (zejména u komerčních ISP). U rozlehlých sítí je toto již dosti komplikované (při síti s tisíci aktivních zařízení a datovými toky v řádu stovek Megabit je již takřka nemožné pokoušet se řídit tok veškerých dat v síti centrálně). Většinou je zde naopak snaha data co nejrychleji odesílat, aby bylo dosaženo co největší propustnosti. Při použití metody DSCP uvnitř sítě je nutné na výstupu ze sítě provádět značení příchozích paketů. Toto není zcela triviální. Je potřeba značkovat pakety přicházející jako odpověď z vnější sítě. Například při požadavku na zobrazení stránky z webového serveru data přicházejí směrem dovnitř do sítě a je potřeba tyto pakety spárovat s odchozími daty téhož uživatele. 14

27 5 Metody pro řízení toku dat na Linuxu Cílem této kapitoly je popsat možnosti pro řízení toku dat v operačním systému Linux. Budou popsány součásti systému, které slouží pro řízení toku dat a nástroje pro jeho nastavení a uvedeny jednotlivé frontové disciplíny a klasifikátory, které jsou nejčastěji používány. 5.1 Základní principy Velice důležitým principem, kterého si musíme být vždy vědomi je fakt, že na běžně používaných technologiích v IP sítích jsme plnohodnotně schopni řídit vždy pouze odchozí tok dat (tzv. egress shaping). Čili pokud používáme pro přenos dvojbodový spoj a ovládáme pouze jednu stranu spoje, tak ve většině případů nemáme přímou kontrolu nad tím, co přijímáme Řízení toku Pokud je na druhé straně spoje zařízení, které máme také pod kontrolou, tak samozřejmě můžeme řídit provoz v obou směrech. Ale ne vždy je tomu tak. Například na routeru, který je připojen dále do internetu, tak v drtivé většině případů druhou stranu spoje realizuje ISP, takže nemáme žádnou možnost ovlivnit to, co nám pošle. Naštěstí díky vlastnostem TCP spojení jsme schopni řídit příchozí tok zprostředkovaně. TCP protokol automaticky snižuje rychlost odesílaných dat v případě, že nedostane včas potvrzení o přijetí [15]. Toho se využívá tak, že uměle snížíme další tok již přijatých paketů. Vysílač automaticky sníží rychlost odesílání a v důsledku nám tím poklesne i samotná rychlost přijímaných dat na rozhraní, které jinak nedokážeme přímo regulovat. Mluvíme zde o tzv. policingu. Bohužel, toto nefunguje u protokolů využívajících nepotvrzovaných spojení (např. UDP, ICMP). Zde nemusí existovat zpětná vazba na průchodnost paketů, je pouze věcí aplikace, aby nějaký systém potvrzování implementovala - obecně nic takového být nemusí. Proto jsou tyto protokoly často zneužívány k zahlcování sítě (tzv. flood). Útočník v tomto případě odesílá velké množství paketů a pokud má oběť k dispozici nižší přenosovou kapacitu než útočník, může dojít k úplnému zahlcení linky oběti. Často toto bývá kámen úrazu u bezdrátových technologií WiFi, kde například i jeden z připojených klientů může svým vysíláním zcela ochromit přenos všech ostatních 15

28 (velmi často způsobeno zavirovanými PC a jejich pokusy o hromadné rozesílání ů) Frontové disciplíny (queue disciplines - qdisc) Vlastní řízení toku dat je realizováno pomocí frontových disciplín (angl. Queue disciplines, zkratka qdisc). Disciplína se navazuje na příslušné rozhraní, kterým odchází data, a řídí jakým způsobem budou data odeslána. Případně je možné i více disciplín vzájemně vnořovat (bude vysvětleno dále). Každá disciplína je v rámci svého zařízení identifikována pomocí 32bitového unikátního označení (handle), které se zapisuje ve formě dvou 16bitových čísel X:Y. Číslo X označujeme jako major number, číslo Y pak jako minor. Pro disciplíny je vždy minor number 0. Můžeme tak mít maximálně 2 16 disciplín na jednom zařízení. Na úrovni zdrojového kódu jsou frontové disciplíny realizované funkcemi: enqueue, dequeue, requeue, drop, init, reset, destroy a dump. Nejdůležitějšími jsou funkce enqueue a dequeue. Enqueue slouží pro zařazení paketu do disciplíny, dequeue naopak k jeho vyjmutí pro odeslání. Requeue je funkce pro případ, že by nebylo možno paket odeslat a bylo nutné ho zařadit zpět na místo odkud byl odebrán. Drop slouží pro zahození paketu (je využíváno disciplínami jako např. RED). Init, reset a destroy mají za úkol počáteční inicializaci disciplíny (init), její vynulování do původního stravu (reset) a její odstranění (destroy). Dump slouží k výpisu diagnostických informací. [4,5] Třídy (classes) Třídy tvoří systém, který umožňuje pro různé služby uplatňovat různé metody řízení toku dat. Frontové disciplíny, které podporují třídy označujeme jako classful (např. HTB, prio). Disciplíny, které třídy nepodporují pak označujeme jako classless. Tradičně frontová disciplína s podporou tříd obsahuje několik podtříd a klasifikátor, který rozhoduje, do jaké třídy se má paket zařadit. Tyto třídy pak mají buď na sebe navázanou novou frontovou disciplínu, nebo další podtřídy a klasifikátor opět pro určení jak rozřazovat pakety. Třídy jsou označovány stejně jako frontové disciplíny pomocí 32bitového handle rozděleného na major a minor number. Pro potomky tříd platí, že mají vždy stejné major number jako jejich rodič. 16

29 Samotnému fyzickému zařízení je přiřazena kořenová frontová disciplína, kterou označujeme jako root qdisc. Veškeré zařazovaní (enqueue) a odřazování - odesílání (dequeue) probíhá pouze přes tuto disciplínu. Není možné přímo odeslat paket z nějaké třídy či frontové disciplíny uvnitř hierarchického stromu. Vždy je potřeba, aby proběhla postupná klasifikace směrem k listům stromu a poté naopak postupné zpětné odřazování paketů až do kořenové frontové disciplíny. Úkolem tříd je ovšem nejen třídit pakety či obsahovat frontové disciplíny, ale zároveň na úrovni tříd provádíme i shaping či jiné operace. Použití závisí na frontové disciplíně, která třídu používá - např. u HTB lze stanovit, jak velké datové toky mají třídy umožnit. Na úrovni zdrojového kódu jsou definovány následující funkce pro třídy: graft, get, put, change, delete, walk, tcf_chain, bind_tcf, unbind_tcf a dump_class. Graft slouží pro navázání frontové disciplíny na třídu, get vrací interní id a informace o třídě daného handle, change mění parametry uložené pro danou třídu, delete vymaže třídu, walk je využívána pro iteraci přes všechny třídy, tcf_chain vrací ukazatel na seznam klasifikátorů (filterů), které jsou navázány na třídu, bind_tcf slouží k navázání konkrétního pravidla filteru na třídu, unbind_tcf k odebrání pravidla filteru a konečně dump_class k výpisu diagnostických dat [5] Klasifikátory (filters) K tomu, abychom mohli přiřadit pakety do tříd slouží klasifikátory. Klasifikátor je vždy navázaný buď na určitou třídu, nebo přímo na frontovou disciplínu a zpracovává pakety, které se do ní dostanou. Úspěšně klasifikované pakety jsou zařazeny do dalších tříd. Zde opět může být další klasifikátor, takže je tímto způsobem možné provádět klasifikaci na více úrovních. K dispozici je několik různě komplexních klasifikátorů, lze testovat vybrané informace v hlavičce paketu, kontrolovat příznak nastavený při průchodu iptables (mark), nebo dokonce i prohledávat samotný obsah paketu a snažit se takto rozpoznat jaká služba tento paket využívá. Na jednu třídu lze navázat několik klasifikátorů s různým nastavení priority s jakou se budou vyhodnocovat. V rámci klasifikátoru se pak definují pravidla, která určují kam zařadit pakety, které vyhovují zadaným podmínkám. Funkce definované na úrovni zdrojového kódu klasifikátorů jsou: classify, init, destroy, get, put, change, delete, walk a dump. Funkce classify slouží, jak název 17

30 napovídá, k otestování paketu klasifikátorem. Návratovou hodnotou může být buď struktura, která obsahuje třídu do které má být paket zařazen, nebo konstanta specifikující, že paket nebyl nikam zařazen. Init má na starost inicializaci klasifikátoru, kdy jsou nastaveny jeho parametry. Destroy odstranění klasifikátoru je volána funkce unbind_tcf na třídu ke které je klasifikátor navázaný. Get podobně jako u tříd, vrací interní identifikátor klasifikátoru. Change mění nastavení daného klasifikátoru, delete slouží k odstranění pravidla = elementu ze seznamu pravidel klasifikátoru.walk je určena pro iteraci přes všechny klasifikátory zejména pro získání diagnostických dat. Dump vrací diagnostická data o klasifikátoru a případně některých jeho pravidlech [5] Průchod paketu routerem Po přijetí ethernetového paketu, který odpovídá MAC adrese síťového zařízení, (případně se jedná o broadcast na síťové úrovni) je paket nejčastěji pomocí DMA nakopírován do paměti a je voláno network RX softirq. Pokud procesor zpracuje toto přerušení, je řízení předáno packet handleru pro příslušný protokol. V případě IPv4 se jedná o IPv4 packet handler. S paketem je nejprve proveden test na kontrolní součet. Pokud je chybný, je paket zahozen a vracíme obsluhu systému. V opačném případě dochází k volání preroutingové části netfilteru. V tomto bloku (viz diagram na obrázku 1) prochází paket celkem čtyřmi různými procedurami. Nejprve prochází přes conntrack, což je systém pro evidenci již založených spojení. Používán je zejména při překladu adres (NAT) či při stavovém firewallu, kdy rozhodujeme podle toho v jakém stavu je dané spojení. Pokud se jedná o známé spojení, neprovádí se další procedury. V opačném případě přicházejí ke slovu pravidla uvedená v mangle a nat tabulkách iptables. Zde může dojít k označení (MARK) paketu v mangle tabulce, puštění paketu do IMQ zařízení (viz sekce o IMQ) - opět v mangle, či změně cílové adresy (DNAT) v nat tabulce. Další osud paketu závisí na tom, zda je paket určen přímo pro router, nebo pro jiný stroj. Pokud je určen pro router samotný, jsou zpracována pravidla INPUT řetězců tabulek mangle a filter v iptables a paket je předán lokálnímu procesu. Pokud je cílová adresa odlišná od adresy routeru, je paket předáván dál (za předpokladu povoleného předávání paketů - ip_forwarding). Paket prochází řetězci pravidel FORWARD tabulek mangle a filter iptables. 18

31 Další možností vstupu paketu do tohoto cyklu, je paket vygenerovaný samotným routerem. Takový paket prochází opět přes conntrack a dále přes OUTPUT řetězec v tabulkách mangle, nat a filter. Společně jsou na závěr zpracovávány jak odchozí, tak předávané pakety. Aplikovány jsou POSTROUTING řetězce v tabulkách mangle a nat. Také v tomto kroku je možné využít IMQ zařízení. Jako poslední paket prochází přes egress qdisc frontovou disciplínu příslušného výstupního zařízení. Diagram - obrázek 1 na následující straně přehledně demonstruje celý průchod jednotlivými bloky[6]. 19

32 Obrázek 1 průchod paketu routerem 20

33 5.2 Nastavení systému Možnosti pro řízení toku jsou přímo v jádru (kernelu) Linuxu. Pokud využíváme jádro obsažené v distribuci, je potřeba zkontrolovat, zda obsahuje podporu pro metody, které budeme používat. Pokud ne, je nutná kompilace vlastního jádra s příslušnou podporou Kompilace jádra Zvolenou verzi linuxového jádra můžeme stáhnout na internetové stránce případně využít zdrojový kód jádra používaný na zvolené distribuci Linuxu (lze nainstalovat například na distribuci Debian pomocí služby apt). Zdrojový kód jádra, který takto získáme, již sám o sobě obsahuje dobrou podporu pro řízení toku dat. Standardní součástí jsou často používané frontové disciplíny a klasifikátory. Samozřejmě zdrojový kód jádra nemůže obsahovat úplně vše. Některé metody (např. podpora pro IMQ zařízení) zde nejsou v současné době zahrnuty. V tomto případě je potřeba získat příslušný aktualizační kód (patch) a kompilovat až upravené jádro. Při konfiguraci jádra prostřednictví metody make menuconfig najdeme nastavení funkcí pro řízení toku dat v sekci: Networking/ Networking options / QoS and/or fair queuing / (platné pro jádro ). Zde máme možnost vybrat, které QoS metody a klasifikátory budou součást jádra, které budou zkompilovány jako moduly jádra a které nebudou k dispozici. Pokud jsme upravili zdrojový kód jádra o IMQ zařízení, je potřeba navíc povolit podporu těchto zařízení ( Device Drivers / Network device support / IMQ support ), zvolit způsob připojení těchto zařízení s ohledem na překlad adres (zda do IMQ zařízení půjdou pakety s již přeloženými adresami či nikoli) a povolit vazbu na iptables (Networking / Networking options / Network packet filtering framework (Netfilter)/IP Netfilter configuration/imq target support) Balík iproute2 Instalační balík iproute2 (někdy označovaný pouze iproute) obsahuje velké množství praktických nástrojů pro práci se sítí na Linuxu. Především se jedná o nástroj tc (odvozeno od traffic controller), pomocí kterého se nastavuje drtivá většina řízení toku dat na Linuxu. 21

34 Zdrojový kód balíku je ke stažení na internetu, případně opět můžeme využít jednoduchou automatickou instalaci již zkompilovaných nástrojů (Debian,Ubuntu apt, Gentoo - emerge). Pro některé metody např ESFQ (viz příslušná sekce) je nutné i tento balík kompilovat z upraveného zdrojového kódu pomocí příslušného patche Podpora v iptables Kromě čistého ovládání příkazem tc máme možnost využít široké prostředky, které nám poskytuje netfilter (iptables) prostřednictvím označování paketů speciálními značkami (mark) v mangle tabulce iptables. V závislosti na tom, jakou má paket značku máme potom při klasifikaci možnost rozhodnout, co s takovým paketem uděláme Použití příkazu tc Tc je program, který komunikuje se službami jádra, a umožňuje vytváření a nastavování metod pro řízení toku dat (frontové disciplíny, třídy, klasifikátory). Základní syntaxe je následující: tc [ OPTIONS ] OBJECT { COMMAND help } OBJECT := { qdisc class filter } Objektem je zde tedy buď frontová disciplína, třída, nebo klasifikátor. COMMAND se používá nejčastěji jeden z následujících: add přidá frontovou disciplínu, třídu, klasifikátor nebo pravidlo klasifikátoru. Vždy je nutné uvést rodiče buď ve formě handle, nebo root přímé připojení na zařízení. remove odstraní frontovou disciplínu definovanou opět buď přes handle, nebo kořenovou (root). Zároveň se odstraní i všechny třídy a klasifikátory na tuto disciplínu navázané (rekurzivně i všechny další frontové disciplíny, třídy a klasifikátory, které jsou navázány dál na tyto třídy. change modifikuje již existující frontové disciplíny, třídy, klasifikátory, za předpokladu, že tuto změnu umožňují. replace provede náhradu existující frontové disciplíny, třídy nebo klasifikátoru. Pokud nahrazovaná entita neexistuje, je nově vytvořena [7]. 22

35 5.3 Jednotlivé frontové disciplíny V této části podrobněji popíši v současné době nejčastěji používané frontové disciplíny Pfifo_fast Pfifo_fast je výchozí disciplína používaná linuxovým jádrem v případě, že není uživatelem definována žádná jiná disciplína. Jak název napovídá jedná se o frontu, takže odesílání funguje tak, že paket který prvně přijde, ten také první odejde (first in, first out). Nemáme však pouze jednu frontu, ale fronty celkem tři se snižující se prioritou. Fronta 0 má při odesílání přednost před frontou 1 a fronta 1 před frontou 2. Pakety jsou zařazeny do příslušné fronty dle příznaků ToS (type of service) v hlavičce paketu. Přiřazení jednotlivých ToS lze pro fronty měnit. Standardně do nejvíce prioritizované fronty jsou zařazovány pakety s typem "minimum_delay". Už tedy tato jednoduchá disciplína zajišťuje prioritizaci paketů. Problémem ale je, že často nejsou příznaky ToS v síti nijak nastavovány, takže závisí pouze na aplikaci, jaký příznak při odesílání paketu použije. Aplikace může celkem snadno zneužít prioritní frontu této disciplíny pro zvýšení propustnosti paketů na úkor ostatních. Velikost fronty v paketech je dána nastavením rozhraní. Lze jí změnit například příkazem ifconfig eth0 txqueuelen 100 (nastaví rozhraní eth0 délku fronty 100) [7] Pfifo a bfifo Ještě jednodušší než pfifo_fast jsou tyto dvě disciplíny. Oproti pfifo_fast používají pouze jednu frontu bez rozlišení příznaku ToS. Zpracovaní tak probíhá pouze s minimální výpočetní náročnosti. Dalším rozdílem je to, že u těchto disciplín můžeme přímo nastavit velikost používané fronty (u pfifo v počtu paketů, u bfifo v počtu bytů). Obě disciplíny také podporují výstup statistik o počtu bytů a paketů, které přes ně prošly. Často se používají u složitějších disciplín jakožto koncové poddisciplíny tříd. Tímto způsobem je používá například frontová disciplína HTB jako výchozí disciplíny pro třídy, které tvoří listy hierarchické struktury. Syntaxe přiřazení těchto frontových disciplín je: tc qdisc... add pfifo [ limit packets ] tc qdisc... add bfifo [ limit bytes ] 23

36 Pokud není uveden parametr limit, je pro pfifo použita hodnota txqueuelen specifikovaná pro použité rozhraní. Pro bfifo je pak tato hodnota vynásobena navíc hodnotou MTU (maximum transfer unit velikost největšího možného odesílaného paketu v bytech) [7] TBF - Token Bucket Filter Disciplína, která umožňuje odesílat data určenou rychlostí. Metodu si lze představit tak, že máme kbelík (bucket = buffer), který plníme zadanou rychlostí speciálními "lístky" (tokeny). Paket, aby mohl být odeslán, potřebuje tento lístek. Nastávají zde tři typické situace: 1) Data, která mají být odesílána přicházejí se stejnou rychlostí jako tokeny. V tomto případě se tedy odesílají bez zpoždění. 2) Data přicházejí pomaleji a hromadí se nám tak tokeny. V případě nárůstu toku dat je možné čerpat nahromaděné tokeny a odesílat data rychleji než je běžná rychlost. 3) Data přicházejí rychleji. Po vyčerpání tokenů narůstá zpoždění odesílaných dat, a po naplnění fronty pak dochází k zahazování paketů. TBF tedy umožňuje odesílání paketů danou rychlostí s možností krátkodobého nárůstu rychlosti (burst). Tuto hodnotu můžeme nastavit parametrem tak, aby nedocházelo k příliš velkým burstům při rychlém vyprázdnění plného bucketu tokenů. Parametry: limit or latency slouží k nastavení velikosti bufferu pro odesílání dat. Buď hodnotou limit (počet byte bufferu), nebo latency což je maximální čas, který může paket čekat ve frontě. burst velikost bucketu pro tokeny v bytech. Určuje tak zároveň maximum tokenů, které mohou být dostupné v bucketu. Pro větší přenosové rychlosti je nutné, aby byla tato hodnota dostatečně velká, jinak hrozí situace, že se bude přeplňovat bucket (a tím budeme ztrácet tokeny) rychleji než budeme zvládat odesílat data. mpu Minimum Packet Unit. Minimální velikost kterou vždy odebereme z bucketu pro paket. Započítává overhead protokolů, kdy i paket s nulovou velikostí dat bude díky hlavičkám pro ethernet minimálně 64B velký. 24

37 rate peakrate mtu/minburst nastavení rychlosti na kterou limitujeme odesílání (= generování tokenů). maximální rychlost vyprazdňování bucketu, pokud chceme zabránit velkým skokům. nastavení bucketu pro rychlé vyprazdňování. Běžně nastavené na MTU hodnotu rozhraní. Větší hodnota umožňuje i přes nastavenou peakrate propouštět pakety o něco rychleji [7] SFQ - Stochastic Fairness Queueing Disciplína používaná pro spravedlivé rozdělení linky. Nepoužívá shaping, ale pouze řídí pořadí odesílání dat (prioritizace). Snažíme se tak rozdělit dostupnou kapacitu mezi všechny aktuální spojení a zabránit situaci, kdy jedno spojení využívá celou kapacitu linky. Pojem spojení (flow) sfq chápe tak, že při zařazení paketu do této frontové disciplíny je provedeno hašovaní podle hodnoty vzniklé složením zdrojové adresy, cílové adresy a zdrojového portu. Pokud protokol nepoužívá hodnotu portu, použije se místo ní číslo protokolu. SFQ vytváří se malé fronty pro jednotlivé hašovací klíče, které tím odpovídají jednotlivým spojením. Odřazování paketů z disciplíny (dequeue) pak probíhá pomocí round robin algoritmu nad těmito frontami. Tento systém si ale bohužel neporadí se situací, kdy nějaký program pro přenos využívá velké množství otevřených spojení na různé IP adresy (zejména P2P sítě). Uživatel, který pro přenos využije 100 spojení, je 100krát zvýhodněn před někým, kdo přenáší data pouze jedním spojením (např. klasický ftp přenos). Parametry: perturb doba v sekundách mezi přepočítáním hašovací tabulky. Při velkém počtu spojení se jich mnoho hašuje se stejným klíčem. Aby tato situace netrvala dlouho, zavádí se promíchání, které tabulku přeorganizuje. Výchozí hodnota je 0 (není prováděno). Při použití se doporučuje hodnota 10s. quantum maximální počet bytů, které jsou při dequeue odeslány. Doporučená a výchozí hodnota odpovídá MTU rozhraní [7] ESFQ Extended verze SFQ Rozšířená verze SFQ se snaží řešit problém se znevýhodňováním aplikací využívajících velké množství spojení tak, že se pro hašování nepoužívá složení zdrojové 25

38 adresy, cílové adresy a zdrojového portu spojení, ale nabízí volbu tohoto kritéria, například hašování pouze podle zdrojové či cílové IP adresy. Spravedlnost je v tomto případě zajišťována na úrovni IP adres, čímž nejsou zvýhodněny aplikace používající více spojení. Zůstává zde však problém s tím, že uživatelé používající více adres jsou zvýhodnění nad těmi, co jich mají málo. ESFQ není standardní součástí zdrojového kódu jádra, je tedy nutno aplikovat příslušné patche pro jádro a balík iproute a provést vlastní kompilaci. Parametry: Kromě parametru perturb a quantum jako u SFQ, zde můžeme ještě nastavit: Limit, depth, divisor parametry pro určení velikosti hašovací tabulky Hash - metoda pro určení hašování. K dispozici jsou: classic originální metoda používaná u SFQ. dsc, src, fwmark hašování podle zdrojové, cílové IP adresy, nebo podle iptables mark ctorigdst, ctorigsrc, ctrepldst,ctreplsrc hašovaní pomocí adres braných z conntrack tabulky používá se při NATu. ctnatchg - "Conntrack NAT change" hašování pokud zároveň používáme i DNAT (destination NAT) pro příchozí spojení [8] RED Random Early Detection RED je speciální disciplína využívající zpomalovací vlastnosti TCP spojení. Hlavní myšlenkou je zde zabránit špatnému chování front při přeplnění. V okamžiku přeplnění fronty dochází k zahazovaní všech paketů, které se již do fronty nevejdou. Není žádná kontrola nad tím, co zahodíme, a co ne. RED toto řeší tak, že k zahazovaní nedochází až při přeplnění fronty, ale průběžně s rostoucí pravděpodobností již při částečném zaplnění fronty. Aplikace (postavené na TCP) tak pružněji reagují na nedoručení některých paketů snížením rychlosti odesílání. Kromě zahazování, je možné pakety pouze označovat (příznakem overlimit). Bohužel, tento systém selhává pro aplikace, které využívají jiných protokolů (především UDP) a nemají implementovaný potvrzovací systém, který reaguje na špatnou odezvu snížením rychlosti. Přesto však je RED dobrou volbou pro použití zejména na páteřní síti. Jednoduchý princip vyžaduje pouze minimální výpočetní čas. Parametry: 26

39 min průměrná velikost fronty, při které začne docházet k zahazování nebo označování paketů. max průměrná velikost fronty, při které je pravděpodobnost pro zahození či označení maximální. probability maximální pravděpodobnost pro zahození (označení). Nastavuje se desetinným číslem od 0 do 1 doporučená hodnota je 1-2% ( ). limit celková velikost fronty. Pokud dojde k její naplnění jsou další pakety zahazovány. burst doporučená hodnota = (min+min+max)/(3*avpkt). Ovlivňuje závislost aplikace min a max podle skutečné velikosti fronty a tím jak rychle dojde k zahazování (značení) paketů. avpkt velikost průměrného paketu použitá pro vnitřní kalkulace doporučená hodnota 1000B bandwidth hodnota použitá pro kalkulaci průměrné velikosti fronty měla by být nastavena na rychlost používaného rozhraní. ecn volba, zda rovnou zahodíme pakety (drop), či je pouze označíme (mark) [7] Prio Prio je disciplína, která je postavena na principu tříd. Narozdíl od všech předchozích uvedených disciplín, které třídy nepodporují (označujeme jako classless), prio umožňuje vytvoření libovolného počtu tříd pro prioritní fronty. Při odesílání paketů se nejprve prohlédne fronta s největší prioritou a potom postupně další méně prioritizované. Základní rozdíl oproti pfifo_fast je v tom, že počet front u prio není nijak omezen (pfifo_fast používá pouze 3) a také do těchto front můžeme zařadit cokoli co potřebujeme dle zvoleného klasifikátoru (pfifo_fast rozlišuje pouze podle ToS příznaku). Příklad hierarchického sytému tříd a několika navázaných disciplín demonstruje obrázek 2. 27

40 1:0 kořenová disciplína (root qdisc) 1:1 třída navázaná přímo na root qdisc 1:10 1:11 1:12 třídy (class) potomci třídy 1:1 11:0 dále nerozvětvená frontová disciplína (qdisc) 10:0 12:0 další frontové disciplíny (qdisc) / \ / \ 10:1 10:2 12:1 12:2 třídy navázané na disciplíny 10 a 12 Obrázek 2 hierarchický systém tříd V tomto příkladě tedy root třída 1:0 (automaticky vytvořená kořenovou frontovou disciplínou) obsahuje potomka 1:1, který se dále dělí na 3 podtřídy 1:10, 1:11 a 1:12. Na tyto podtřídy jsou navázány nové frontové disciplíny (10:0, 11:0 a 12:0). Dvě z nich se obsahují dělení na další podtřídy (10:1, 10:2, 12:1, 12:2) [4]. Pro zařazení paketů do příslušných tříd využijeme vhodné klasifikátory DSMARK Jednoduchá disciplína, která neprovádí vlastně nic jiného, než že převádí hodnotu pole DSCP hlavičky paketu na interní proměnnou tc_index a naopak může také nastavovat na základě umístění ve třídě hodnotu DSCP paketu při dequeue operaci. Proměnná tc_index se dále využívá pro klasifikaci paketů. Třídy definujeme s parametrem mask a value, podle kterých je při odřazení nastaveno pole DSCP v hlavičce paketu. Parametry: indices - počet položek v tabulce mask/value = maximální počet tříd, které můžeme vytvořit (hodnota musí být mocninou 2) HTB - Hierarchical Token Bucket Frontová disciplína HTB zajišťuje traffic shaping na úrovni rozdělení kapacity pro jednotlivé třídy. Disciplína vznikla na základě starší CBQ (Class Based Queueing), často se používá zejména pro jednodušší a více intuitivní nastavení než je tomu u CBQ. 28

41 Základním parametrem každé třídy HTB je hodnota označovaná jako rate, která udává jakou rychlostí mají být odesílány data této třídy. Třídy tvoří stromovou strukturu, kdy vždy jedna třída může mít několik potomků. Pokud dosáhne tok uvnitř libovolné třídy hodnoty rate, tak má navíc možnosti si vypůjčit od třídy nadřazené. Pokud je tok v této třídě také na hodnotě rate, může si opět vypůjčit od své rodičovské třídy atd. Takto se lze dostat až ke třídě kořenové zde si již není kde půjčovat, takže hodnotu rate přesáhnout nelze, data musí čekat ve frontě na odeslání. Někdy ovšem požadujeme, aby byla rychlost třídy omezena na určitou hodnotu, bez možnosti dostat více. K tomu slouží parametr ceil (strop), který určuje celkové maximum dat, které třídou může protékat - HTB neumožní odesílat pakety dané třídy rychleji než je takto nastaveno. Toho lze využít například pro omezení daného uživatele na rychlost, kterou si zaplatí. Následující příklad demonstruje použití HTB. Mějme k dispozici linku o kapacitě 1Mbit/s. Používáme www server, poštovní server a ftp server. Našim cílem je zajistit jednotlivým serverům co nejlepší podmínky pro chod. Rozhraní přiřadíme HTB frontovou disciplínu a nejprve nadefinujeme mateřskou třídu o celkové dostupné kapacitě. Obě proměnné rate i ceil v tomto případě nastavíme na 1Mbit. Dále vytvoříme 3 podtřídy pro data jednotlivých serverů. Ceil všech tří bude opět 1Mbit - zajistíme tak, že v době, kdy nebude některý ze serverů aktivní, budou zbývající moci využít veškerou dostupnou kapacitu linky. Rate pro jednotlivé třídy nastavíme například 300kbit pro www server, 200kbit pro poštovní server, a 500kbit pro ftp server. V případě, že všechny 3 severy budou současně odesílat data, kapacita linky se rozdělí v tomto poměru rate. Pokud některý ze serverů nebude využívat celého svého pásma, tak se jeho část použije, a rozdělí mezí ostatní. Linka se tak využívá optimálně. Samozřejmě nemusíme dělit kapacitu pouze podle služeb. HTB poskytuje téměř neomezené možnosti pro rozdělení linky dle našich potřeb. Pokud jsme například ISP, můžeme dělit linku mezi naše klienty podle toho, jakou službu nám platí. Velice snadno lze nastavit často prodávané "sdílené linky", kdy několik (i desítky) zákazníků se dělí o smluvně danou kapacitu principem agregace. Sdílená rychlost je dělena mezi ty, co zrovna přenáší data. Parametry frontové disciplíny: default - třída do které se zařadí pakety, které se nepovedlo klasifikovat Parametry tříd: 29

42 prio při odřazování jsou brána nejprve třídy s nižším prio rate garantovaná rychlost dané třídy ceil maximum pro třídu, které nikdy nemůže překročit burst hodnota v bytech pro odesílání paketů při krátkodobém překročení rychlosti rate cburst hodnota v bytech pro odesílání paketů, které mohou být odeslány maximální možnou rychlostí, kterou rozhraní umožňuje [9]. 5.4 Klasifikátory Z předchozího výkladu máme tedy povědomí o základních frontových disciplínách a třídách, které některé z nich používají. Zbývá tedy uvést jak pakety do jednotlivých tříd rozdělit U32 klasifikátor U32 je jedním z nejčastěji používaných klasifikátorů (universal 32bit comparisons with hashing), který umožňuje podle informací v hlavičce paket zařadit do definované třídy. Při běžném použití porovnáváme nejčastěji zdrojovou nebo cílovou IP adresu paketu, případně u protokolů TCP nebo UDP pak hodnotu zdrojového nebo cílového portu. Samozřejmě můžeme porovnávat cokoli co hlavička paketu obsahuje. Jak již bylo naznačeno dříve, U32 využívá seznamu pravidel obsahujících podmínky pro úspěšnou klasifikaci (podobně jako třeba iptables pravidla). Je možné mít více těchto seznamů (při přidání pravidla zvolit do kterého seznamu bude přiřazeno) na základě identifikátoru označován opět jako handle. Handle je tentokrát tvořeno třemi částmi X:Y:Z, kde X identifikuje hašovací tabulku, Y bucket uvnitř této tabulky a Z je umístění v rámci samotného seznamu pravidel. Rozlišení hašovacích tabulek a bucketu je spjato s možností hašování nad danou částí hlavičky (většinou se jedná o zdrojovou či cílovou IP adresu). Tímto způsobem je možné rychle rozřazovat další testovaní pravidel do jednotlivých seznamů a tím značně urychlit vyhodnocování. Pokud nepoužijeme tohoto způsobu, probíhá vyhodnocení sekvenčně, což při velkém množství pravidel a velkých datových tocích může být zdrojem problémů. Pokud si ale vystačíme s relativně malým množstvím pravidel, nemusíme si s ručním nastavením handle a hašovaním příliš lámat hlavu. U32 pokud není explicitně 30

43 uvedeno, tak hodnotu handle generuje automaticky (vytváří sekvenční seznam pravidel, které jsou postupně vyhodnocovány). Syntaxe přiřazení u32 klasifikátoru: tc filter add dev IF [ protocol PROTO ][ (preference priority) PRIO ][ parent CLASS ] protocol protokol, ke kterému se klasifikátor vztahuje (v našem případě vždy IP) priority priorita vyhodnocení seznamu pravidel 0 největší parent handle třídy, na kterou se má klasifikátor navázat Syntaxe vytvoření pravidla: tc filter add... match [ u32 u16 u8 ] PATTERN MASK [ at OFFSET nexthdr+offset] u32/u16/u8 určuje kolika bitové porovnávání chceme provádět pattern testovaná hodnota mask vymaskování bitů, které chceme testovat at OFFSET kolikátý byte od začátku hlavičky porovnávat at nexthdr+offset offset od začátku hlavičky dalšího protokolu (např. TCP nebo UDP) [7, 10] FW netfilter mark Další silnou zbraní při klasifikaci paketů je fw klasifikátor, který využívá označování paketů pomocí netfilter mark v iptables. Možnost klasifikace se nám tak plně přesouvá do režie iptables. Zde existuje velké množství efektivních nástrojů pro třídění paketů. Opět velice jednoduše můžeme testovat údaje obsažené v hlavičce paketu, nebo také i přímo v samotných datech. Dobrým příkladem využití iptables je L7 filter. Jedná se o modul do iptables, který je schopen podle obsahu paketu (nikoli pouze hlavičky, ale analýzou dat dle shody na definované regulární výrazy) rozpoznat nejčastěji používané protokoly. Toto se používá zejména na detekci P2P protokolů pro sdílení dat, které je jinak obtížné klasifikovat na základě údajů v hlavičce (portu) [11]. Nevýhodou je výpočetní náročnost testování, která tento systém dělá při velkých datových tocích nepoužitelným. 31

44 Příklad přiřazení pravidla fw klasifikátoru: tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 6 fw flowid 1:1 - pravidlo, které pakety s fw-mark 6 zařadí do třídy 1: ROUTE Routing decision Jinou možností klasifikace je rozřazovaní na základě parametru Realm, při vytváření routovacích pravidel. V pravidle využívajícím route klasifikátor jednoduše uvedeme, do jaké třídy pakety kterého realmu zařadit. Klasifikaci podle routovacích pravidel využíváme v situacích, kdy routujeme pakety na základě nějakých podmínek. Často se jedná o zdrojovou adresu v tomto případě routování označujeme jako source routing. Příkladem použití source routingu a klasifikace podle routovacích pravidel je situace, kdy současné využíváme více přípojek do internetu. Na úrovni routovacích pravidel určujeme, kterou z cest budou pakety odeslány, a v závislosti na tom jak budou pakety klasifikovány pro QoS. Příklad použití klasifikátoru route: ip route add /24 via dev eth1 realm 10 tc filter add dev eth1 parent 1:0 protocol ip prio 100 route to 10 classid 1:10 - první příkaz vytvoří pravidlo pro routování rozsahu /24 s Realmem 10 - druhý příkaz pakety, které měly Realm 10 zařadí do třídy 1: TCINDEX Traffic-Control Index Poslední klasifikátor, který uvedu, provádí zařazování na základě předchozího označení ve frontové disciplíně DSMARK. Při zařazení paketu do této disciplíny jsou převedeny hodnoty DSCP do proměnných v paměti a je možné na jejich základě provést klasifikaci do tříd [12]. Tato klasifikace se používá na páteřních routerech, kde se určuje řízení toku dat na základě již dřívějšího nastavení DSCP paketu při vstupu paketu do sítě. 32

45 5.5 IMQ Speciální metodou pro řízení toku dat je použití IMQ (The Intermediate queueing device). Je to jedna z možností jak řídit příchozí datový tok. Trik spočívá ve vytvoření speciálního zařízení (realizovaného přes modul jádra), do kterého můžeme přes mangle tabulku iptables "poslat" data. IMQ zařízení se chová jako klasické fyzické zařízení (eth0 apod.) a máme možnost mu přiřadit některou z frontových disciplín. Nejčastější využití spočívá v jednoduché aplikaci, kdy do jednoho IMQ zařízení posíláme všechny příchozí pakety z některého fyzického rozhraní a pomocí shapingu průchod těchto paketů omezujeme (provádíme policing). Využíváme tak již dříve zmíněné vlastnosti TCP spojení, kdy při vypršení časových limitů pro potvrzení o doručení paketu, dochází ke snížení rychlosti odesílání dat. Samozřejmě máme možnost pomocí IMQ realizovat i složitější mechanizmy. Pomocí pravidel v iptables můžeme rozhodnout, které pakety pošleme do určitého IMQ zařízení [13]. 33

46 6 Návrh komplexního systému V této kapitole nejprve uvedu několik používaných systémů pro řízení toku dat. Dále shrnu požadavky a možné řešení pro jednotlivé části sítě tvořené linuxovými routery. Na závěr kapitoly pak navrhnu konkrétní řešení pro síť Klfree.net. 6.1 Příklady v praxi používaných řešení Nejčastěji se používají dva systémy traffic shapingu rozlišující pakety podle portů nebo podle IP adres. V této sekci oba způsoby podrobně popíši a uvedu vždy i návrh realizace na linuxovém routeru. Jako třetí možnost řešení uvedu použití Diferential Services Shaping na úrovni portů Prvním popsaným systémem bude využití klasifikace paketů v závislosti na použitém portu. Pakety s cílovým/zdrojovým portem odpovídající určité službě jsou zařazeny do zvláštních tříd o zadané přenosové rychlosti. Způsob realizace na linuxovém routeru Použijeme HTB frontovou disciplínu. Vytvoříme hierarchický systém tříd, kdy kořenová třída bude mít nastavenou rate/ceil dle použité přenosové technologie. Dceřiné třídy pak budou určeny pro jednotlivé síťové služby (například www, pop3, voip, ssh). Dále vytvoříme default třídu, která bude sloužit pro pakety, které nebyly úspěšně klasifikovány. Rate/ceil pro třídy volíme dle preferencí. Především kapacita pro VoIP by měla být dostatečná pro odhadované maximum současně vedených hovorů. Klasifikaci můžeme provádět prostřednictvím u32 klasifikátoru nebo kombinací pravidel v iptables a fwmark klasifikátoru. Záleží pouze na tom, co je pro nás výhodnější implementovat. Například pokud dynamicky sestavujeme pravidla firewallu v iptables, je výhodnější využít u32 klasifikátor, aby se předešlo případným kolizím při vytváření a rušení pravidel v iptables. Výhody a nevýhody tohoto řešení Výhodou je bezesporu jednoduchost. Takto navržený systém může běžet na všech routerech v síti, bez nutnosti složité konfigurace. Jako jediným parametr pro 34

47 nastavení postačuje přenosová rychlost použitého spoje. Ostatní parametry (rate/ceil podtříd) mohou být odvozeny od celkové přenosové rychlosti. Nevýhod je několik. Především snadné obelstění tohoto systému ze strany uživatele sítě. Zejména programy pro P2P sdílení dat umožňují nastavení portu pro komunikaci. Jednoduché nastavení těchto programů tak, aby používaly porty běžně používané jinými službami, vede k zařazení paketu do jinak omezené třídy. Dalším problémem je špatné chování na bezdrátových technologiích WiFi. Pokud si mohou třídy půjčovat až do celkové teoretické kapacity linky, často se stává, že vysílání jednoho z klientů tímto způsobem zcela zahltí celý přístupový bod. Shaping zde selhává, protože dochází ke ztrátě paketů od klientů s horším signálem již na nižší síťové úrovni při bezdrátovém přenosu. Nasazení v praxi Řízení toku dat na tomto principu je využíváno především v komunitních sítích pražského czfree. Často bývá kombinováno s centrálním omezováním dle IP adresy (viz následující sekce) v bodě připojení do internetu. Tímto se docílí jednak dobré kvality služby pro komunikaci uvnitř sítě, a zároveň dobré dělby přípojky do internetu pro jednotlivé uživatele. Právě přípojka do internetu bývá v tomto případě často úzkým hrdlem Shaping na úrovni IP adres Tento systém je podobný předchozímu uvedenému s tím, že klasifikace je postavena na IP adresách. Do tříd tak budou zařazeny pakety vždy od určitého uživatele sítě. Způsob realizace na linuxovém routeru I v tomto případě HTB frontová disciplína. Kořenová třída má race/ceil dle rychlosti technologie a podtřídy mají rate/ceil dle poskytovaných služeb uživatelům sítě. Také máme možnost vytvořit podtřídy společné pro několik uživatelů a tímto způsobem definovat agregaci připojení. Uživatelské třídy vytvořené jako potomci této společné agregační třídy budou moci využívat kapacitu až do úrovně ceil agregační třídy. Na úrovni uživatelských tříd můžeme dále provádět shaping dle portů, a tím zajistit lepší kvalitu služby pro tyto uživatele. 35

48 Výhody a nevýhody tohoto řešení Takto definované řešení je vhodné zejména na koncové body sítě. Buď pro místo, kde jsou připojeni uživatelé, nebo naopak pro místo, kde pakety opouštějí námi regulovanou síť (přípojka do internetu). Problémem je ale nasazení na páteřní spoje mezi routery, kde bychom museli klasifikovat všechny potenciální uživatele, jejichž pakety přes tento router mohou procházet. Toto může být velice komplikované především při použití dynamického routování, kdy přes spoj mohou v případě výpadku procházet i data z odlehlých částí sítě, která běžně routujeme zcela jinými cestami. Nasazení v praxi Tento způsob využívají často různé firmy působící jako lokální ISP. Zákazníkům limitují rychlost připojení buď přímo v bodě připojení, nebo naopak až na výstupu ze sítě vnitřní komunikace v rámci sítě nebývá častá, nebo je speciálně ošetřena. Při absenci QoS na páteřních spojích je nutné, aby byly dostatečně dimenzované a nedocházelo na nich k zahlcení. Často bývá prevencí proti přetěžování páteřní sítě tzv. FUP Fair User Policy, kdy v případě překročení datového limitu uživatele za jednotku času (nejčastěji měsíc) dojde k jeho omezení na nižší rychlost. Uživatelé jsou pak nuceni k tomu, aby regulovali množství přenesených dat a vyvarovali se snížení přenosové rychlosti na nepříjemnou úroveň. Jelikož je omezení ve formě FUP v dnešní době velmi nepopulární, většina velkých poskytovatelů internetu od něj ustupuje zřejmě je jejich infrastruktura páteřní sítě na dostatečné úrovni na to, aby si to mohli dovolit Systém postavený na Differential Services Defferential Services je komplexní systém pro síť. Rozlišené je zde chování při vstupu paketu do sítě a při průchodu sítí. Použité frontové disciplíny a klasifikátory Při vstupu paketu do sítě je nutné paket náležitě označkovat. Většinou totiž nelze důvěřovat tomu, že bude správně označen uživatelským zařízením. To, jakým způsobem provést značení je velmi rozmanité. Označeny mohou být pakety podle portu, případně použít i přímo analýzu dat pro důslednější rozpoznání typu služby. V tomto případě například značením přes L7 filter v iptables, a aplikací požadovaného shapingu (může být i zcela nezávislý na značkování pro DSCP). 36

49 Uvnitř sítě na spojích mezi routery pak používáme DSMARK frontovou disciplínu a tcindex klasifikátor pro rozřazení paketů do jednotlivých tříd. To, jakým způsobem dále pracujeme s třídami může být opět velice variabilní. Příkladem může být vytvoření HTB struktury tříd s různě definovanými rate parametry. Výhody a nevýhody tohoto řešení Výhodou je podpora pro DSCP u hardwarových routerů (např. fy. Cisco [14]). Je tedy možné mít heterogenní síť složenou nejen z routerů na bázi PC s Linuxem, ale vhodně zařazovat i tyto HW routery tam, kde je to výhodné. Nevýhodou je fakt, že se jedná již o poněkud složitější systém pro konfiguraci, a pro správnou funkci ho musí používat všechny routery v síti. Pro páteřní spoje lze využít i značně jednodušší techniky na bázi SFQ či RED, které plní podobnou úlohu bez nutnosti důsledného označování paketů. Nasazení v praxi DSCP se experimentálně používá především na některých internetových páteřních sítích [3]. Bohužel informace o těchto pokusech jsou nyní již poněkud zastaralé a nepodařilo se mi nalézt novější příklad efektivního použití. 6.2 Návrhy řešení pro jednotlivé části sítě Po uvedení používaných řešení v této části shrnu požadavky na navrhovaný systém, které vyplynuly z předchozích analýz. Na jejich základě pak navrhnu obecné řešení pro jednotlivé části sítě Konkrétní požadavky Základním požadavkem je zajistit kvalitu některých preferovaných služeb. Jedná se zejména o rychlou odezvu pro systémové služby konkrétně ssh protokol, telnet protokol, DNS protokol a protokoly používané pro dynamické routování (ospf). Dále je prioritou dobrá funkce IP telefonie na bázi SIP protokolu. Jelikož se bude tento systém používat především v nekomerční síti, tak druhým hlavním požadavkem je zajistit v síti co možná největší rovnost uživatelů. V komerční síti by bylo toto jednodušší, zde platí, co si kdo zaplatí, to se mu snažíme zajistit. Navrhovaný systém by také měl být použitelný pro bezdrátové připojení uživatelů. Čili bránit zahlcení sítě některým z klientů. 37

50 6.2.2 Návrh řešení pro část sítě s připojenými uživateli Z požadavků uvedených v předchozí sekci vyplývá, že potřebujeme jednak vyčlenit a zajistit kvalitu služby pro některé služby a zároveň zajišťovat rovnost uživatelů. Toho můžeme zajistit například tak, že provedeme nejprve klasifikaci dle portu těchto protokolů. Pakety požadovaných služeb budou zařazeny do vlastních tříd, u kterých určíme kolik z kapacity linky jim bude přiděleno. Dalším stupněm klasifikace pak bude zařazení zbylých paketů do tříd pro jednotlivé uživatele. Na této úrovni můžeme omezovat rychlost každého z nich + nastavit vhodnou agregaci dostupné kapacity. Z hlediska třetího požadavku připojení přes WiFi je toto výhodné, protože máme možnost nastavit maxima (ceil) jednotlivým třídám, a tak zabránit nežádoucímu přetížení přístupového bodu. Není příliš vhodné zavádět velké množství prioritizovaných služeb. Při definovaní klasifikačních pravidel pomocí kombinace protokol/port hrozí zneužití ze strany uživatelů. Při detekci služby podle obsahu paketu může být problémem velká výpočetní náročnost. Samotná realizace může být provedena přes HTB frontovou disciplínu s použitím SFQ pro jednotlivé třídy. V rámci třídy tak bude probíhat prioritizace zaměřená na rovnost všech spojení Návrh řešení pro tranzitní část sítě Zde se nacházíme uvnitř kontrolované části sítě, kde pakety procházejí spoji mezi jednotlivými routery. Pokud použijeme technologii s dostatečnou rezervou v kapacitě spoje, tak samozřejmě není potřeba používat žádnou techniku QoS. Zajímá nás tedy opačný případ, kdy se mezi routery vyskytne spoj, na kterém dochází k zahlcení. V praxi tato situace může nastat například i při poruše primárního spoje a přepnutím na spoj záložní, který zpravidla nebývá dimenzovaný na plnou kapacitu. Velice dobré výsledky zde poskytuje jednoduché nasazení frontové disciplíny ESFQ s hašováním pomocí zdrojové či cílové IP adresy. Je ovšem dobré, stejně jako v místě připojení uživatelů, vyčlenit opět některé síťové služby do speciálních tříd tak, aby nedocházelo při velkém zahlcení k jejich špatné funkci. Například vypršení časových limitů pro DNS dotazy se může projevit chybami všech služeb, používajících tyto jmenné služby. Velká odezva pro ssh protokol může znemožnit vzdálenou správu routerů postižených nějakým problémem. 38

51 Realizaci provedeme prostřednictvím HTB frontové disciplíny. Do vlastních tříd budou klasifikovány systémové služby. Pro řízení uvnitř těchto tříd použijeme SFQ disciplín. Neklasifikovaná data budou zařazena do jedné společné třídy a na tu pak navázána ESFQ disciplína. Použití zdrojové nebo cílové IP adresy pro hašování záleží na směru, kterým obvykle potečou rozhraním data. Pro směr k uživateli volíme cílovou IP adresu (spojení uživatelů ji budou mít stejnou pro daného uživatele). Pro směr od uživatele pak zdrojovou (opět shodná pro všechna spojení uživatele). Pokud budeme vycházet z předpokladu, že dimenzujeme páteřní síť tak, aby k přetížení nedocházelo na mnoha místech a často, je nasazení značkování na bázi Differential Services zbytečně komplikované řešení Návrh řešení pro místo připojení k internetu Obecně se nemusí jednat pouze o připojení k internetu, ale o jakékoli místo propojení, kde odchází pakety ze sítě pod naší kontrolou. Zde může také v mnoha případech docházet k zahlcení. Nejvíce připadají v úvahu frontové disciplíny RED či opět ESFQ. Podobně jako v ostatních částech sítě je dobré vyčlenit systémové třídy pro zajištění administrace a funkce základních síťových protokolů. Zda použít RED či ESFQ, nemusí být zcela jednoznačné. ESFQ zajišťuje lepší spravedlnost při rozdělování kapacity linky, RED má lepší chování při odesílání paketů zpomalování je plynulejší. Obě metody nejsou příliš výpočetně náročné a zvládají i velké datové toky. Výsledná volba je tedy spíše experimentální záležitostí, kde se porovná nasazení obou metod v praxi. Při menší síti zde můžeme také aplikovat HTB a klasifikaci provádět podle IP adres podobně, jako v místě připojení uživatelů. Pro efektivnější použití je vhodné hašovat klasifikační pravidla podle části IP adresy. 6.3 Návrh řešení pro síť Klfree.net V této sekci navrhnu již konkrétní řešení pro použití v síti Klfree.net. Narozdíl od předchozích spíše obecných návrhů budu vycházet ze specifické situace v této síti Specifika sítě Klfree.net S postupem času (a s nárůstem finančních zdrojů) zůstaly jako víceméně jediným problematickým místem v siti Sdružení Klfree.net koncové bezdrátové 39

52 přístupové body. Páteřní spoje se při nedostatečné kapacitě nahrazují lepšími technologiemi (viz část o místech pro nasazení QoSu). Konektivitu do internetu je možné objednat o požadované kapacitě. Nicméně koncové WiFi vysílače tímto způsobem vylepšovat nelze (z důvodu použité technologie a omezeného množství vysílacích kanálů), takže především pro ně musím navrhnout vhodné řešení. Pro ostatní části sítě budou postačovat jednoduché systémy Problematika WiFi Na většině přístupových bodů Sdružení je v pásmu 2,4GHz používána technologie b. Jedná se o starší technologii s maximální přenosovou rychlostí 11Mbit (novější standard g nabízí až 54Mbit) [1]. Důvody pro použití tohoto standardu jsou dva. Jednak velké množství členů bylo připojeno v době, kdy zařízení pro g nebyly na trhu ještě vůbec dostupné, či byly velice drahé. Nutit tyto členy, kterým vše dobře funguje k nákupu nového zařízení by nebylo snadné. Druhým důvodem je fakt, že provoz přístupového bodu na bázi g je náchylnější k problémům s rušením. Což zejména v Kladně jako takovém, kde používá WiFi velké množství různých subjektů, je velice palčivý problém. Kromě zařízení v pásmu 2.4GHz se používají i přístupové body v pásmu 5.4GHz (802.11a). Zde je snaha tuto technologii používat pouze pro připojení větších domovních sítí v panelových domech. S větším počtem klientů se stává provoz problematičtější, tato zařízení jsou více náchylná na rušení a špatně fungují při horším signálu. Navrhování vhodného QoS systému pro WiFi není jednoduché. Obecně při překročení určité úrovně zatížení dochází k nárůstu odezvy. Bez regulace maximální propustnosti je běžné, že se odezvy pohybují v řádu ms. S těmito hodnotami je téměř nemožné provozovat telefonii, hrát internetové hry, či prostřednictví ssh protokolu vzdáleně administrovat nějaký systém. Je proto naprosto nezbytné omezit rychlost tak, aby se odezvy pohybovaly ještě v rozumných hodnotách. Praxí ověřené vhodné hodnoty jsou pro průměrnou odezvu okolo 50ms a pro maximální do 100ms. S omezením rychlosti je ovšem spojeno dost problémů. Jednak je WiFi halfduplexní technologie, čili zařízení nemůže současně vysílat a přijímat. Pokud tedy chceme omezit rychlost linky, musíme toto omezení nějak rozdělit mezi upload (provoz směrem od klientů) a download (provoz směrem ke klientům). 40

53 Maximální přenosové rychlosti se při použití b pohybují okolo 5Mbit/s. Pokud chceme ale stanovit pevné omezení pro rychlost, tak můžeme použít například jen 3Mbit pro download a 2Mbit pro upload. Preferovaný je většinou download. Jednak kvůli zájmům uživatelů, tak také z technického hlediska. Upload je více problémový díky kolizím při současném vysílání klientských zařízení. Stanovení přesných hodnot je věcí experimentální. Záleží na rušení, vzdálenosti a hlavně počtu připojených klientů. V praxi, když uživatel sám stahuje na přístupovém bodě, může při ideálním signálu dosáhnout i rychlosti kolem uváděných 5Mbit/s. Jenže pokud je uživatelů více, už toto ve většině případů neplatí. Lze považovat za úspěch, když se podaří zajistit rozumné odezvy při celkovém reálném vytížení kolem 4Mbitu (2.5Mbit download, 1.5Mbit upload) Návrh řešení pro WiFi Z předchozího tedy vyplývá, že budeme potřebovat omezit zařízení jako celek a zároveň uvnitř vytvářet nějakou další strukturu omezení. K tomuto účelu samozřejmě poslouží HTB frontová disciplína, kde rate/ceil kořenové třídy nastavíme právě na požadovanou rychlost v tomto směru. Pro řízení uploadu použijeme IMQ zařízení, do kterého budou svedeny všechny příchozí pakety z tohoto zařízení a řízení toku provedeme pomocí HTB stejně jako pro download. Dále v souladu s obecným návrhem oddělíme systémové protokoly do speciálních tříd, aby byla zaručena jejich dobrá kvalita. Jedná se především o protokoly DNS, ssh, telnet, a pakety používané pro dynamické routování ospf. Je také žádoucí vyčlenit ICMP pakety pro lepší diagnostiku problémů. Dále už zbývá jen přenos připojených členů. Zde je účelné každému přiřadit vlastní třídu. Jelikož třídy HTB poskytují statistiky, kolik dat přes ně prošlo, můžeme snadno každému členu počítat, kolik přenesl dat. Na základě toho pak aplikovat systém, který označím jako dynamický FUP. Jeho cílem je v závislosti na aktuálně přenášených datech provést omezení rychlosti. Důvod byl již zmíněn dříve v souvislosti s shapingem podle portu. Je rizikové dlouhodobě umožnit uživateli používat velké procento z maximální kapacity. Projevuje se zde velmi negativní skutečnost, že ostatní uživatelé pak již nedokáží přenášet dostatečné množství dat na to, aby byl ten, který využívá většinu přenosové kapacity, nějak omezen. Jejich přenosy jsou díky velkým odezvám a ztrátovosti paketů zabrzděny mechanizmem TCP protokolu a z pohledu HTB, které dohlíží nad třídami, tito uživatelé téměř nic nepřenášejí. Mohou tedy půjčovat svou 41

54 kapacitu uživateli, který naopak přenáší hodně dat a celý systém se stane velice neefektivním. Budeme tedy brát součet přenesených dat pro všechny IP adresy člena (tudíž ti, co jich mají více, nejsou nijak zvýhodněni) a při dosažení určitého množství dat za poslední hodinu mu postupně omezovat rychlost dle nastavení. Ve výsledku tedy bude platit, že bude mít každý člen dynamicky definované maximum a větší rychlosti nebude moci dosáhnout ani v případě, že linka není vytížena na maximum. Je to sice tvrdé omezení, které brání efektivnějšímu využití kapacity, ale dá se tak předejít mnoha problémům a zároveň zachovat dostatečnou rychlost připojení pro každého. Množství omezení závisí na daném přístupovém bodě. Tam, kde jsou členové k sobě vzájemně ohleduplní (zejména sami omezují rychlost stahování) vše funguje lépe a není potřeba tolik systémově omezovat. V jiných případech je přísné omezení bohužel jediná možnost jak dosáhnout rozumné kvality služeb pro všechny připojené Řešení v ostatních částech sítě Tam, kde nejsou přímo připojeni uživatelé a kapacita linky je dostačující, použiji řešení na bázi kombinace HTB s ESFQ. Opět budeme mít možnost nastavit celkové maximum pro propustnost linky a vyčlenit důležité síťové protokoly do speciálních tříd. Samotná uživatelská data však již nebudeme dál členit do tříd, ale bude stačit použít na tuto třídu jako celek ESFQ, které bude zajišťovat rovnoměrné rozložení toku dat mezi jednotlivé IP adresy. Hranici sítě směrem do internetu není potřeba ve Sdružení aktuálně nijak řešit. Gigabitová přípojka do NIXu je vytížená ve večerních špičkách na cca 20% kapacity, zahraniční konektivita je zajišťována sdružením NFX a nakupována podle aktuální potřeby (v současné době 450Mbps). V případě potřeby je zde možné nasadit jednoduchý systém na bázi RED frontové disciplíny, kde stanovíme pouze dostupnou kapacitu celkové linky. 6.4 Srovnání navrženého řešení s jinými systémy Navržené řešení komplexněji řeší koncové připojení uživatelů s ohledem na možnost připojení přes WiFi. Jelikož byl dříve nasazen systém traffic shapingu převzatý z czfree (založený na klasifikaci dle portů) mohu poměrně dobře porovnat tyto dva systémy. Špatné chování systému využívajícího klasifikaci dle portů bylo i jedním 42

55 z hlavních důvodů návrhu systému nového. Praktické zkušenosti potvrdily, že preventivní omezení rychlostí jednotlivých členů má velký přínos a zabraňuje přetížení přístupového bodu. Srovnání se systémem využívajícím čistě klasifikaci dle IP adres není příliš možné. Toto řešení lze použít pouze tam, kde máme daný počet zákazníků a u každého specifikovanou hodnotu omezení. Pokud nepoužijeme agregaci, tak je nutné mít k dispozici dostatečnou přenosovou kapacitu k zajištění garantovaných rychlostí uživatelům. Navržený systém je oproti tomu určen pro prostředí, kde se snažíme co nejefektivněji rozdělit veškerou dostupnou kapacitu mezi uživatele sítě. Poslední srovnání se systémem na bázi Differential services bylo již víceméně zmíněno dříve. Navržený systém je v tomto směru jednodušší nevyžaduje označování paketů při vstupu do sítě. Při průchodu paketu sítí tak může docházet k více problémům při krátkodobém přetížení sítě, a tak k potenciální horší kvalitě služby. Pokud ovšem budujeme páteřní síť dostatečně robustní a dimenzovanou, tak těmto problémům dostatečně předcházíme a jednodušší řešení by mělo zcela postačovat. 43

56 7 Implementace V této poslední kapitole popíši samotnou implementaci navrženého systému tak, jak je používán v síti Klfree.net. 7.1 Popis Implementace Systém je implementován skupinou skriptů napsaných, až na několik výjimek, v programovacím jazyce Perl. Navržen je modulárně tak, aby ho bylo snadné rozšířit v případě jiných budoucích požadavků Inicializace systému O inicializaci a zavedení základních pravidel se stará skript setup-qos. Parametry jsou <start stop restart> [seznam rozhraní]. Skript při spuštění načítá společnou konfiguraci ze souboru /etc/default/qos, kde je mimo jiné uvedena cesta k adresáři, ve kterém jsou umístěny konfigurační soubory pro jednotlivá rozhraní. Tyto konfigurační soubory jsou pojmenovány vždy qos-<název_rozraní>. Při parametru start skript načte konfiguraci pro zadané rozhraní z příslušného konfiguračního souboru a přiřadí rozhraní HTB root disciplínu. Dále jsou vyčleněny pakety systémových síťových služeb (pravidly u32 klasifikátoru - klasifikace dle portu a protokolu - ssh, dns apod.) a těmto přiřazeny zvláštní třídy tak, aby měly zajištěny i při vytížené lince dostatečnou přenosovou kapacitu. Parametry rate/ceil těchto tříd jsou buďto pevně dané, nebo spočteny z nastavené celkové přenosové rychlostí rozhraní. Zbývající pakety jsou svedeny do jedné třídy. Dle volby modulu v konfiguraci se poté spustí příslušný řídící skript. V současné době jsou k dispozici 2 následující moduly: basic - aplikuje pouze ESFQ disciplínu na třídu jako celek. Procházející pakety se odesílají cca rovnoměrně v závislosti na cílové či zdrojové IP adrese (lze nastavit konfiguračním parametrem). Jednoduchým způsobem se tak zajistí lepší rozložení provozu mezi jednotlivé IP adresy. Používá se zejména pro páteřní spoje, kde je potřeba zajistit jistou rovnováhu provozu. 44

57 userap - modul určený pro použití na koncových klientských přístupových bodech. Při startu tohoto skriptu je spuštěn démon, který provede inicializaci a v pravidelných intervalech provádí aktualizace systému. V případě, že je v konfiguračním souboru uveden parametr queues=<zařízení> je zároveň při inicializaci tohoto zařízení vytvořeno příslušné IMQ, do kterého jsou v iptables přivedena příchozí data. Skript tedy zajistí: nahrání modulu jádra imq, nastavení link up na tomto imq, přidání pravidel -j IMQ do iptables a spuštění další instance skriptu setup-qos start pro toto imq zařízení. Při volbě parametru stop je smazána kořenová frontová disciplína nad tímto zařízením a pokud je spuštěn démon modulu userap, tak je informován o tom, že nad tímto zařízením nemají být prováděny aktualizace. Volba restart provede po sobě činnost jako při parametrech stop a start. Pokud při spuštění inicializačního skriptu neuvedeme žádné zařízení, je zvolená operace provedena na všechny zařízení pro něž existuje konfigurační soubor Konfigurace basic modulu Základními parametry jsou: type=basic - aktivuje modul basic speed= nastaví celkové maximum odchozích dat pro toto zařízení hash=dst - src nebo dst Parametr "hash" určuje, zda se pro hašování použije zdrojová (src) nebo cílová (dst) IP adresa. Výchozí hodnotou je "dst" pro "normální" výstupní zařízení a "src", pokud jde o IMQ (řízení vstupu) Konfigurace userap modulu Základními parametry jsou: type=userap speed=2000 queues=imqx ping=1 descr="popiseke" - aktivuje modul userap - nastaví maximum odchozích dat pro toto zařízení - určení zařízení pro omezení uploadu - povolení pingání a penalizace - nastavení popisku na www routeru. 45

58 Dále lze definovat parametry specifikující detailní chování shapingu (uvedené hodnoty slouží jen jako příklad použití): limit1= limit2= penalty0=80 penalty1=50 penalty2=30 nopingpenalt=50 - množství přenesených dat pro aplikaci penalty1 - hranice pro penalty2 - výchozí podíl z celkové kapacity zařízení v procentech - omezení rate/ceil v procentech při dosažení limit1 dat - omezení rate/ceil v procentech při dosažení limit2 dat - omezení při neodpovídání na ping Další možnosti konfigurace jsou uvedeny v návodu pro konfiguraci dodatku D Implementace userap modulu Modul se sestává ze zaváděcího skriptu, 3 nezávislých skriptů (userapd, is_updater.pl, pinger.pl) a 4 knihovních modulů (UserapCommon.pm, UserapHtml.pm, UserapParser.pm, UserapTcTools.pm). Zaváděcí skript je velice jednoduchý, jeho víceméně jediným účelem je spuštění skriptu démona (userapd) na pozadí. Knihovna UserapCommon.pm obsahuje společné proměnné, které využívají jiné funkce a má na starost načtení informací ze souboru /etc/default/qos. UserapParser.pm obsahuje funkce pro ukládání a načítání datových souborů na disk. Knihovna UserapTcTools.pm - funkce pro manipulaci s třídami a filtry prostřednictvím příkazu tc. Poslední UserapHtml.pm - funkce pro generování html výstupu statistik. Useapd tvoří jádro systému a spouští jednotlivé operace. Hlavní cyklus lze stručně popsat takto: 1) Načteme statistiky stávajících tříd o tom, kolik dat uživatelé přenesli (funkce UserapTcTools::parseTcStatus) a přidáme aktuální hodnoty do struktury, ve které je uložena historie. 2) Spustíme na pozadí skript pro aktualizaci IP adres členů (is_updater.pl) a chvilku počkáme. Spuštění na pozadí je nutné z důvodu, že skript stahuje informace z www serveru prostřednictvím aplikace wget, která se za některých podmínek může zaseknout. Tím, že spustíme tento skript na pozadí, zabráníme celkovému zaseknutí systému. 46

59 3) Pokud nastaly nějaké změny IP adres členů, provedeme celkovou inicializaci tříd. Jinak zkontrolujeme změny v nutnosti omezení jednotlivých členů podle přenesených dat a pokud nějaké jsou, tak je provedeme. Po aplikaci všech změn uložíme informace o aktuálním stavu do souboru na disk. 4) Vygenerujeme html stránku, ve které jsou informace o aktuálních omezeních a množství stažených dat členů. 5) Spustíme proces pinger.pl, který kontroluje odezvy IP adres členů a v případě problémů, či žádné reakce na ping, provede automatické omezení. 6) Uspíme skript na dobu definovanou v konfiguračním souboru. 7) Opakujeme celý cyklus znovu od bodu 1. Samostatný skript is_updater.pl slouží ke stažení informací o uživatelských IP adresách z informačního systému Klfree.net. Zde jsou data uložena v SQL databázi a export generuje dle požadovaného adresního prostoru výstup v xml formátu. Součástí dotazu je také časová známka poslední aktualizaci. Pokud v informačním systému nedošlo ke změnám, je stažen pouze soubor obsahující tuto časovou známku. Ušetří se tak poměrně náročný dotaz do databáze. Pokud obsahuje nově stažený soubor platná data, je porovnán se starým a změny se aplikují pouze pokud se liší. Poslední ze skriptů pinger.pl má na starost testování dob odezev na IP adresy členů. Tato procedura z důvodu snížení síťové zátěže probíhá tak, že nejprve je proveden test pomocí dvou malých paketů pro zjištění, které z IP adres členů reagují na ping (ICMP paket ping request). Pro každého člena je vybráno pouze jedna IP adresa pro další důkladnější měření odezvy. Toto měření se sestává z poslání 20 ICMP ping request paketů tentokrát jsou pakety posílány o velikosti 1200 B. Při horším signálu totiž mohou malé pakety procházet bez problémů, ale pro větší může již docházet ke ztrátovosti. Na základě výsledků je vygenerován jednak textový soubor s výsledky (pro možnost dalšího zpracování) a také html soubor pro snadný přehled na www serveru routeru. Také jsou vytvořeny soubory pro nastavení automatického omezení členů, kteří buďto vůbec neodpovídají na ping (ač jejich zařízení na úrovni arp protokolu komunikuje), nebo mají špatnou odezvu na ping (preventivní omezení pro předcházení problémů na celém přístupovém bodě). 47

60 7.1.5 Instalace Instalační balík je k dispozici na serveru goldheart.klfree.net. Pro aktuální verzi je to: Je také obsažen na CD přiloženém k mé práci. O instalaci se stará jednoduchý skript, který nakopíruje soubory na potřebné místo. Tento způsob je použit, protože v současné době distribuce klfree debian, pro kterou je instalace určena nepodporuje žádný balíčkovací systém. Protože je tato distribuce navržena pro routery s malým diskovým prostorem (místo pevných disků se používají paměťové karty Compact Flash), je nutné šetřit a zahrnout do distribuce pouze nejnutnější nástroje. Po instalaci je potřeba manuálně spustit inicializační skript setup-qos s parametrem start. 7.2 Dokumentace Po celou dobu vývoje je zpracovávána online dokumentace uložená ve Twiki Sdružení. Jedná se o systém podobný online encyklopedii Wikipedia, který je určený pro spolupráci více autorů (tzv. Groupware). Výhodou tohoto řešení je možnost doplňovat nové poznatky jakýmkoli registrovaným uživatelem Twiki. Dokumentace je také uvedena v dodatku D této práce. 7.3 Testování V prvopočátcích vývoje bylo testováno chování systému na routeru, který nebyl používaný pro běžný provoz. Zde jsem testoval především správné chování jednotlivých frontových disciplín a klasifikátorů. Další testování po dobu vývoje bylo prováděno již experimentálním použitím v reálném provozu. Síť Sdružení Klfree.net je pro tento způsob ideálním místem. Připojení členové Sdružení se tak stali dobrovolnými testery správného chování QoSu. Nová verze je vždy nejprve nasazena na několik routerů v síti. Skripty se ladí nejdříve na úrovni informačních hlášek, které při běhu vypisují, následně pozorováním výsledků statistik na www rozhraní routeru. Důležitá je i zpětná vazba ze strany připojených členů, kteří případné problémy většinou rychle hlásí. 48

61 Mezi nejdůležitější signály pro testování patří jednak množství přenesených dat jednotlivými členy, grafy celkových přenášených dat přes jednotlivá rozraní routeru a doba odezvy na ping z centrálního monitorovacího serveru. Pro tvorbu grafů přenesených dat byl použit systém hotsanic, pro monitorování doby odezev monitorovací systém smokeping. Dále je prováděno nepřetržité monitorování sítě prostřednictvím aplikace nagios. Ta také automaticky v případě problémů em upozorňuje příslušné správce. Nově jsou také zaznamenávány doby odezev přímo na jednotlivé členy speciálním modulem pro systém hotsanic. Po úspěšném otestování v malém měřítku je pak tato verze rozšiřována na ostatní routery sítě. Při velkých změnách je k dispozici distribuční skript, kterým lze rozkopírovat nové soubory na všechny routery v síti, jinak je věcí místních správců Nodů, zda si novou verzi nainstalují na svoje routery, či zůstanou u staré. Při vydání nové verze distribuce klfree-debian se také snažím, aby v ní byla začleněna nejnovější stabilní verze skriptů pro QoS. 7.4 Ověření funkce systému Pro ověření správné funkce dynamického omezování rychlosti jsem provedl pokusné měření. Systém byl nastaven na 2400kbit/s pro download a 1200kbit/s pro upload. Penalizace pro omezení pak 50,45 a 30%. Nejdříve jsem provedl test pro download. Cyklicky jsem přenášel velký testovací soubor z routeru. Systém po inicializaci neměl načteny informace o IP adresách členů, proto umožňoval využít veškerou nastavenou kapacitu (300kB/s = 2400kbit/s). Po aktualizaci z databáze informačního systém bylo správně zavedeno omezení na 50% z dostupné kapacity. Omezení je na grafu vidět v čase 20:50. Při další aktualizaci v čase 20:55 pak došlo k dalšímu omezení na 45% díky tomu, že byl překročeno nastavení limit1 pro přenesená data. V čase 21:00 došlo následně i k překročení hodnoty limit2 a bylo zavedeno omezení na 30%, které zůstalo aktivní až do konce testu downloadu. Jako druhý byl proveden test uploadu. Nyní jsem přenášel data naopak z testovací stanice na router. Stejně jako při předchozím testu systém nejprve neměl načteny informace z informačního systému, proto umožňoval přenos plnou nastavenou rychlostí (150kB/s = 1200kbit/s). V čase 21:22 byla provedena aktualizace a jelikož už byla překročena hodnota limit2, došlo rovnou k omezení na 30%. 49

62 Výsledky jsou vidět v grafu na obrázku 3. Zelenou barvou je vyznačen download, červenou upload. Obrázek 3 graf funkce dynamického omezení rychlosti 50

Y36SPS QoS Jan Kubr - Y36SPS 1 5/2008

Y36SPS QoS Jan Kubr - Y36SPS 1 5/2008 Y36SPS QoS Jan Kubr - Y36SPS 1 5/2008 QoS - co, prosím? Quality of Services = kvalita služeb Opatření snažící se zaručit koncovému uživateli doručení dat v potřebné kvalitě Uplatňuje se v přenosu multimédií,

Více

Quality of Service APLIKA ˇ CNÍ P ˇ RÍRU ˇ CKA

Quality of Service APLIKA ˇ CNÍ P ˇ RÍRU ˇ CKA Quality of Service APLIKAC NÍ PR ÍRUC KA POUŽITÉ SYMBOLY Použité symboly Nebezpečí důležité upozornění, které může mít vliv na bezpečí osoby nebo funkčnost přístroje. Pozor upozornění na možné problémy,

Více

Řízení toku v přístupových bodech

Řízení toku v přístupových bodech Řízení toku v přístupových bodech Lukáš Turek 13.6.2009 8an@praha12.net O čem to bude Co způsobuje velkou latenci na Wi-Fi? Proč na Wi-Fi nefunguje běžný traffic shaping? Je možné traffic shaping vyřešit

Více

Y36PSI QoS Jiří Smítka. Jan Kubr - 8_rizeni_toku Jan Kubr 1/23

Y36PSI QoS Jiří Smítka. Jan Kubr - 8_rizeni_toku Jan Kubr 1/23 Y36PSI QoS Jiří Smítka Jan Kubr - 8_rizeni_toku Jan Kubr 1/23 QoS - co, prosím? Quality of Services = kvalita služeb Opatření snažící se zaručit koncovému uživateli doručení dat v potřebné kvalitě Uplatňuje

Více

Mikrotik RouterOS: Řízení datových toků

Mikrotik RouterOS: Řízení datových toků Mikrotik RouterOS: Řízení datových toků Obsah Platné verze Úvod Queues Mechanismy omezování Rozdíl mezi simple queues a queue tree a případy jejich použití Nastavení queue types Nastavení simple queues

Více

Zajištění kvality služby (QoS) v operačním systému Windows

Zajištění kvality služby (QoS) v operačním systému Windows VŠB TU Ostrava Směrované a přepínané sítě Zajištění kvality služby (QoS) v operačním systému Windows Teoretické možnosti aplikace mechanismů zabezpečení kvality služby (QoS) v nových verzích MS Windows

Více

1. Integrované služby (Integrated services IntServ) 2. Rozlišované služby (Differentiated services diffserv)

1. Integrované služby (Integrated services IntServ) 2. Rozlišované služby (Differentiated services diffserv) 1. Integrované služby (Integrated services IntServ) V případě integrovaných služeb aplikace oznámí počítačové síti své požadavky na přenos dat ve formě požadovaných QoS. Počítačová síť ověří zda jsou k

Více

Při konfiguraci domácího směrovače a bezdrátové sítě se setkáte s obrovským počtem zkratek, jejichž význam je jen málokdy dostatečně vysvětlen.

Při konfiguraci domácího směrovače a bezdrátové sítě se setkáte s obrovským počtem zkratek, jejichž význam je jen málokdy dostatečně vysvětlen. 1 Při konfiguraci domácího směrovače a bezdrátové sítě se setkáte s obrovským počtem zkratek, jejichž význam je jen málokdy dostatečně vysvětlen. Bez jejich znalosti však jen stěží nastavíte směrovač tak,

Více

Routování směrovač. směrovač

Routování směrovač. směrovač Routování směrovač směrovač 1 Předmět: Téma hodiny: Třída: _ Počítačové sítě a systémy Routování směrovač 3. a 4. ročník SŠ technické Autor: Ing. Fales Alexandr Software: SMART Notebook 11.0.583.0 Obr.

Více

Osobní firewall s iptables

Osobní firewall s iptables Osobní firewall s iptables Ondřej Caletka O.Caletka@sh.cvut.cz http://www.pslib.cz/caletka Osobní firewall s iptables Rychlokurz síťování z příkazového řádku Jak prochází paket počítačem Rychlokurz obsluhy

Více

ID listu: DATA_VPN _ (poslední dvojčíslí označuje verzi listu)

ID listu: DATA_VPN _ (poslední dvojčíslí označuje verzi listu) ID listu: DATA_VPN _001.05 (poslední dvojčíslí označuje verzi listu) Označení služby Stručný popis služby Popis vlastností služby Použitelné technologie Lokalizace služby Monitoring služby Podmíněno službami

Více

Téma 11: Firewall v CentOS. Nastavení firewallu

Téma 11: Firewall v CentOS. Nastavení firewallu Nastavení firewallu Teoretické znalosti V této kapitole zjistíte, jak v distribuci CentOS nastavit připojení k síti a firewall. Firewall v Linuxu je tvořen projektem Netfilter, který pracuje na úrovni

Více

Aktivní prvky: brány a směrovače. směrovače

Aktivní prvky: brány a směrovače. směrovače Aktivní prvky: brány a směrovače směrovače 1 Předmět: Téma hodiny: Třída: Počítačové sítě a systémy Aktivní prvky brány a směrovače 3. a 4. ročník SŠ technické Autor: Ing. Fales Alexandr Software: SMART

Více

PB169 Operační systémy a sítě

PB169 Operační systémy a sítě PB169 Operační systémy a sítě Zabezpečení počítačových sítí Marek Kumpošt, Zdeněk Říha Zabezpečení sítě úvod Důvody pro zabezpečení (interní) sítě? Nebezpečí ze strany veřejného Internetu Spyware Malware

Více

Instalace. Samotný firewall již je s největší pravděpodobností nainstalovaný Zjistíme dle parametru při použití. aptitude search iptables

Instalace. Samotný firewall již je s největší pravděpodobností nainstalovaný Zjistíme dle parametru při použití. aptitude search iptables Iptables firewall Instalace Samotný firewall již je s největší pravděpodobností nainstalovaný Zjistíme dle parametru při použití aptitude search iptables Jak funguje Iptables je mocný nástroj, který umožňuje

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován

Více

TOPOLOGIE DATOVÝCH SÍTÍ

TOPOLOGIE DATOVÝCH SÍTÍ TOPOLOGIE DATOVÝCH SÍTÍ Topologie sítě charakterizuje strukturu datové sítě. Popisuje způsob, jakým jsou mezi sebou propojeny jednotlivá koncová zařízení (stanice) a toky dat mezi nimi. Topologii datových

Více

Firewally a iptables. Přednáška číslo 12

Firewally a iptables. Přednáška číslo 12 Firewally a iptables Přednáška číslo 12 Firewall síťové zařízení, které slouží k řízení a zabezpečování síťového provozu mezi sítěmi s různou úrovní důvěryhodnosti a/nebo zabezpečení. Druhy firewallu Podle

Více

Proprietární řešení QoS na směrovačích Mikrotik

Proprietární řešení QoS na směrovačích Mikrotik Rok / Year: Svazek / Volume: Číslo / Issue: 2012 14 2 Proprietární řešení QoS na směrovačích Mikrotik Proprietary solutions for QoS on Mikrotik router Mojmír Jelínek mojmir.jelinek@phd.feec.vutbr.cz Fakulta

Více

5. Směrování v počítačových sítích a směrovací protokoly

5. Směrování v počítačových sítích a směrovací protokoly 5. Směrování v počítačových sítích a směrovací protokoly Studijní cíl V této kapitole si představíme proces směrování IP.. Seznámení s procesem směrování na IP vrstvě a s protokoly RIP, RIPv2, EIGRP a

Více

Podpora QoS (L2, L3) na DSLAM Zyxel IP Express IES 1000

Podpora QoS (L2, L3) na DSLAM Zyxel IP Express IES 1000 Podpora QoS (L2, L3) na DSLAM Zyxel IP Express IES 1000 Ľubomír Prda, Pavel Juška Abstrakt: Tento dokument pojednává o laboratorním ověření funkčnosti QoS na druhé a třetí vrstvě ISO/OSI modelu zařízení

Více

ISPforum 2016 Jezerka NAT++

ISPforum 2016 Jezerka NAT++ ISPforum 2016 Jezerka NAT++ 1. část Kolik to dá, když to nainstaluju? Překlad síťových adres (NAT) Zajímalo nás jak výkonný je NAT na Linuxu (a nejen na něm) Kolik paketů za sekundu je možné odbavit? Jak

Více

Zabezpečení v síti IP

Zabezpečení v síti IP Zabezpečení v síti IP Problematika zabezpečení je dnes v počítačových sítích jednou z nejdůležitějších oblastí. Uvážíme-li kolik citlivých informací je dnes v počítačích uloženo pak je požadavek na co

Více

PROJEKT ŘEMESLO - TRADICE A BUDOUCNOST Číslo projektu: CZ.1.07/1.1.38/ PŘEDMĚT PRÁCE S POČÍTAČEM

PROJEKT ŘEMESLO - TRADICE A BUDOUCNOST Číslo projektu: CZ.1.07/1.1.38/ PŘEDMĚT PRÁCE S POČÍTAČEM PROJEKT ŘEMESLO - TRADICE A BUDOUCNOST Číslo projektu: CZ.1.07/1.1.38/02.0010 PŘEDMĚT PRÁCE S POČÍTAČEM Obor: Studijní obor Ročník: Druhý Zpracoval: Mgr. Fjodor Kolesnikov PROJEKT ŘEMESLO - TRADICE A BUDOUCNOST

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence

Více

Distribuované systémy a počítačové sítě

Distribuované systémy a počítačové sítě Distribuované systémy a počítačové sítě propojování distribuovaných systémů modely Klient/Server, Producent/Konzument koncept VFD (Virtual Field Device) Propojování distribuovaných systémů Používá se pojem

Více

Systémy pro sběr a přenos dat

Systémy pro sběr a přenos dat Systémy pro sběr a přenos dat propojování distribuovaných systémů modely Klient/Server, Producent/Konzument koncept VFD (Virtual Field Device) Propojování distribuovaných systémů Používá se pojem internetworking

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován

Více

FIREWALL - IPTABLES. 1. Co je to firewall 2. IPTABLES 3. Manuálové stránky 4. Nastavení směrovače 5. Příklady. 1. Co je to firewall?

FIREWALL - IPTABLES. 1. Co je to firewall 2. IPTABLES 3. Manuálové stránky 4. Nastavení směrovače 5. Příklady. 1. Co je to firewall? FIREWALL - IPTABLES 1. Co je to firewall 2. IPTABLES 3. Manuálové stránky 4. Nastavení směrovače 5. Příklady 1. Co je to firewall? Firewall je bezpečný a důvěryhodný počítač zapojený mezi privátní a veřejnou

Více

Zkrácení zápisu dvojitou dvojtečkou lze použít pouze jednou z důvodu nejednoznačnosti interpretace výsledného zápisu adresy.

Zkrácení zápisu dvojitou dvojtečkou lze použít pouze jednou z důvodu nejednoznačnosti interpretace výsledného zápisu adresy. Vlastnosti IPv6 (I) Minulé díly seriálu IPv6 vysvětlily proč se IPv4 blíží ke svému konci aže jeho nástupcem je nový Internetový Protokol verze 6 (IPv6). Tématem dnešního dílu jsou vlastnosti IPv6 protokolu.

Více

Počítačové sítě. Počítačová síť. VYT Počítačové sítě

Počítačové sítě. Počítačová síť. VYT Počítačové sítě Počítačové sítě Počítačová síť Je soubor technických prostředků, které umožňují spojení mezi počítači a výměnu informací prostřednictvím tohoto spojení. Postupný rozvoj během druhé poloviny 20. století.

Více

Abychom se v IPv6 adresách lépe orientovali, rozdělíme si je dle způsobu adresování do několika skupin:

Abychom se v IPv6 adresách lépe orientovali, rozdělíme si je dle způsobu adresování do několika skupin: Adresy v internetovém protokolu verze 6 (I) V tomto a dalším díle IPv6 seriálu se budeme věnovat různým typům IPv6 adres, vysvětlíme si jejich formát zápisu, k čemu se používají a kde se s nimi můžeme

Více

Analýza aplikačních protokolů

Analýza aplikačních protokolů ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická PROJEKT Č. 4 Analýza aplikačních protokolů Vypracoval: V rámci předmětu: Jan HLÍDEK Komunikace v datových sítích (X32KDS) Měřeno: 28. 4. 2008

Více

Měření kvality služeb

Měření kvality služeb 14.03.2014 - Brno Ing. Martin Ťupa martin.tupa@profiber.cz www.profiber.eu Měření kvality služeb Kolik protlačíte přes aktivní prvky? Kde jsou limitní hodnoty ETH spoje? KPIs Key Demarkační Performance

Více

Specifikace QoS v IP. Vladimír Smotlacha, Sven Ubik CESNET

Specifikace QoS v IP. Vladimír Smotlacha, Sven Ubik CESNET Specifikace QoS v IP Vladimír Smotlacha, Sven Ubik CESNET Použití QoS zákazník - dohoda o poskytování služby uživatel - aktivace služby, žádost o její poskytnutí aplikace - přenos dat s využitím služby

Více

Zařízení komunikující pomocí technologie HCNA/HPNA

Zařízení komunikující pomocí technologie HCNA/HPNA Zařízení komunikující pomocí technologie HCNA/HPNA Stručně o technologii HCNA Technologie HCNA vychází z technologie HomePNA, kde je však v tomto případě signál přenášen přes koaxiální kabel. Home PNA

Více

Počítačové sítě pro V3.x Teoretická průprava II. Ing. František Kovařík

Počítačové sítě pro V3.x Teoretická průprava II. Ing. František Kovařík Počítačové sítě pro V3.x Teoretická průprava II. Ing. František Kovařík SŠ IT a SP, Brno frantisek.kovarik@sspbrno.cz Model TCP/IP - IP vrstva 2 Obsah 3. bloku IPv4 záhlaví, IP adresy ARP/RARP, ICMP, IGMP,

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence

Více

Vrstva přístupu k médiu (MAC) a/b/g/n

Vrstva přístupu k médiu (MAC) a/b/g/n Vrstva přístupu k médiu (MAC) 802.11a/b/g/n Lukáš Turek 13.6.2009 8an@praha12.net O čem to bude Jak zajistit, aby vždy vysílala jen jedna stanice? Jaká je režie řízení přístupu? aneb proč nemůžu stahovat

Více

Počítačové sítě. Další informace naleznete na :

Počítačové sítě. Další informace naleznete na : Počítačové sítě Další informace naleznete na : http://cs.wikipedia.org http://dmp.wosa.iglu.cz/ Počítačová síť - vznikne spojením 2 a více počítačů. Proč spojovat počítače? Přináší to nějaké výhody? A

Více

QoS - Quality of Service

QoS - Quality of Service QoS - Quality of Service Přednášky z Projektování distribuovaných systémů Ing. Jiří Ledvina, CSc. Quality of Service principy a mechanizmus integrované služby diferencované služby policy based networking

Více

Quality of service. - principy a mechanizmus - integrované služby - diferencované služby - policy based networking.

Quality of service. - principy a mechanizmus - integrované služby - diferencované služby - policy based networking. Quality of service - principy a mechanizmus - integrované služby - diferencované služby - policy based networking QoS v IP sítích - IETF aktivity QoS v IP sítích (zlepšení strategie best effort s maximálním

Více

Počítačová síť. je skupina počítačů (uzlů), popřípadě periferií, které jsou vzájemně propojeny tak, aby mohly mezi sebou komunikovat.

Počítačová síť. je skupina počítačů (uzlů), popřípadě periferií, které jsou vzájemně propojeny tak, aby mohly mezi sebou komunikovat. Počítačové sítě Počítačová síť je skupina počítačů (uzlů), popřípadě periferií, které jsou vzájemně propojeny tak, aby mohly mezi sebou komunikovat. Základní prvky sítě Počítače se síťovým adaptérem pracovní

Více

4. Síťová vrstva. Síťová vrstva. Počítačové sítě I. 1 (6) KST/IPS1. Studijní cíl. Představíme si funkci síťové vrstvy a jednotlivé protokoly.

4. Síťová vrstva. Síťová vrstva. Počítačové sítě I. 1 (6) KST/IPS1. Studijní cíl. Představíme si funkci síťové vrstvy a jednotlivé protokoly. 4. Síťová vrstva Studijní cíl Představíme si funkci síťové vrstvy a jednotlivé protokoly. Doba nutná k nastudování 3 hodiny Síťová vrstva Síťová vrstva zajišťuje směrování a poskytuje jediné síťové rozhraní

Více

STRUČNÝ NÁVOD K POUŽITÍ

STRUČNÝ NÁVOD K POUŽITÍ STRUČNÝ NÁVOD K POUŽITÍ REPOTEC RP-IP0613 Úvod Bandwidth manager REPOTEC (dále jen BM) je levný a jednoduchý omezovač rychlosti pro jakékoliv sítě založené na protokolu TCP/IP. Velice snadno se ovládá

Více

Počítačové sítě. Lekce 4: Síťová architektura TCP/IP

Počítačové sítě. Lekce 4: Síťová architektura TCP/IP Počítačové sítě Lekce 4: Síťová architektura TCP/IP Co je TCP/IP? V úzkém slova smyslu je to sada protokolů používaných v počítačích sítích s počítači na bázi Unixu: TCP = Transmission Control Protocol

Více

Počítačové sítě. Miloš Hrdý. 21. října 2007

Počítačové sítě. Miloš Hrdý. 21. října 2007 Počítačové sítě Miloš Hrdý 21. října 2007 Obsah 1 Pojmy 2 2 Rozdělení sítí 2 2.1 Podle rozlehlosti........................... 2 2.2 Podle topologie............................ 2 2.3 Podle přístupové metody.......................

Více

Hot Standby Router Protocol (zajištění vysoké spolehlivosti výchozí brány)

Hot Standby Router Protocol (zajištění vysoké spolehlivosti výchozí brány) České vysoké učení technické v Praze Fakulta elektrotechnická Moderní technologie Internetu Hot Standby Router Protocol (zajištění vysoké spolehlivosti výchozí brány) Abstrakt Popis jednoho z mechanizmů

Více

Počítačové sítě. Další informace naleznete na : http://cs.wikipedia.org http://dmp.wosa.iglu.cz/

Počítačové sítě. Další informace naleznete na : http://cs.wikipedia.org http://dmp.wosa.iglu.cz/ Počítačové sítě Další informace naleznete na : http://cs.wikipedia.org http://dmp.wosa.iglu.cz/ Počítačová síť - vznikne spojením 2 a více počítačů. Proč spojovat počítače? Přináší to nějaké výhody? A

Více

Fakulta informačních technologií VUT v Brně Ústav počítačových systémů Periferní zařízení, cvičení IPZ Analýza komunikace na sběrnici USB

Fakulta informačních technologií VUT v Brně Ústav počítačových systémů Periferní zařízení, cvičení IPZ Analýza komunikace na sběrnici USB Fakulta informačních technologií VUT v Brně Ústav počítačových systémů Periferní zařízení, cvičení IPZ Analýza komunikace na sběrnici USB Úloha č. 2. Zadání: 1. Seznamte se s principy komunikace na sériovém

Více

CARRIER ETHERNET PROFI POPIS SLUŽBY, CENY ZA PRODEJ, INSTALACI A SERVIS

CARRIER ETHERNET PROFI POPIS SLUŽBY, CENY ZA PRODEJ, INSTALACI A SERVIS CARRIER ETHERNET PROFI POPIS SLUŽBY, CENY ZA PRODEJ, INSTALACI A SERVIS 1 Úvod Carrier Ethernet Profi je Velkoobchodní služba pronájmu okruhu, která umožňuje propojení dvou lokalit Partnera nebo Účastníka

Více

12. Virtuální sítě (VLAN) VLAN. Počítačové sítě I. 1 (7) KST/IPS1. Studijní cíl. Základní seznámení se sítěmi VLAN. Doba nutná k nastudování

12. Virtuální sítě (VLAN) VLAN. Počítačové sítě I. 1 (7) KST/IPS1. Studijní cíl. Základní seznámení se sítěmi VLAN. Doba nutná k nastudování 12. Virtuální sítě (VLAN) Studijní cíl Základní seznámení se sítěmi VLAN. Doba nutná k nastudování 1 hodina VLAN Virtuální síť bývá definována jako logický segment LAN, který spojuje koncové uzly, které

Více

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií VY_32_INOVACE_31_20 Škola Název projektu, reg. č. Vzdělávací oblast Vzdělávací obor Tematický okruh Téma Tematická oblast Název Autor Vytvořeno, pro obor, ročník Anotace Přínos/cílové kompetence Střední

Více

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Přednáška Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského

Více

Rozdělení (typy) sítí

Rozdělení (typy) sítí 10. Počítačové sítě - rozdělení (typologie, topologie, síťové prvky) Společně s nárůstem počtu osobních počítačů ve firmách narůstala potřeba sdílení dat. Bylo třeba zabránit duplikaci dat, zajistit efektivní

Více

Semestrální projekt do předmětu SPS

Semestrální projekt do předmětu SPS Semestrální projekt do předmětu SPS Název projektu: Instalace a provoz protokolu IPv6 v nových verzích MS Windows (XP). Ověření proti routerům Cisco a Linux. Cíl projektu: Autoři: Cílem tohoto projektu

Více

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován

Více

Řízení datového toku, QoS

Řízení datového toku, QoS Řízení datového toku, QoS RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Vladimír Smotlacha, 2011 Počítačové sít

Více

ISMS. Síťová bezpečnost. V Brně dne 7. a 14. listopadu 2013

ISMS. Síťová bezpečnost. V Brně dne 7. a 14. listopadu 2013 ISMS Případová studie Síťová bezpečnost V Brně dne 7. a 14. listopadu 2013 Zadání - infrastruktura Modelová firma je výrobní firma, která síťové zabezpečení doposud nijak zásadně neřešila, a do jisté míry

Více

1 Protokol TCP/IP (Transmission Control Protocol/Internet Protocol) a OSI model

1 Protokol TCP/IP (Transmission Control Protocol/Internet Protocol) a OSI model 1 Protokol TCP/IP (Transmission Control Protocol/Internet Protocol) a OSI model Protokoly určují pravidla, podle kterých se musí daná komunikační část chovat. Když budou dva počítače používat stejné komunikační

Více

Obsah. Úvod 13. Věnování 11 Poděkování 11

Obsah. Úvod 13. Věnování 11 Poděkování 11 Věnování 11 Poděkování 11 Úvod 13 O autorech 13 O odborných korektorech 14 Ikony použité v této knize 15 Typografické konvence 16 Zpětná vazba od čtenářů 16 Errata 16 Úvod k protokolu IPv6 17 Cíle a metody

Více

Směrování. static routing statické Při statickém směrování administrátor manuálně vloží směrovací informace do směrovací tabulky.

Směrování. static routing statické Při statickém směrování administrátor manuálně vloží směrovací informace do směrovací tabulky. Směrování Ve větších sítích již není možné propojit všechny počítače přímo. Limitujícím faktorem je zde množství paketů všesměrového vysílání broadcast, omezené množství IP adres atd. Jednotlivé sítě se

Více

Testování Triple play služeb & EtherSAM

Testování Triple play služeb & EtherSAM Testování Triple play služeb & EtherSAM 12.9.2012 Radek Kocian Technický specialista prodeje radek.kocian@profiber.cz www.profiber.eu KOMERČNÍ ETHERNETOVÉ SLUŽBY Operátor Metro Ethernet síť / PTN Business/Residenční

Více

Projekt VRF LITE. Jiří Otisk, Filip Frank

Projekt VRF LITE. Jiří Otisk, Filip Frank Projekt VRF LITE Jiří Otisk, Filip Frank Abstrakt: VRF Lite - použití, návaznost na směrování v prostředí poskytovatelské sítě. Možnosti řízených prostupů provozu mezi VRF a globální směrovací tabulkou.

Více

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Předmět: Počítačové sítě Téma: Počítačové sítě Vyučující: Ing. Milan Káža Třída: EK1 Hodina: 21-22 Číslo: III/2 4. Síťové

Více

Přednáška 3. Opakovače,směrovače, mosty a síťové brány

Přednáška 3. Opakovače,směrovače, mosty a síťové brány Přednáška 3 Opakovače,směrovače, mosty a síťové brány Server a Client Server je obecné označení pro proces nebo systém, který poskytuje nějakou službu. Služba je obvykle realizována některým aplikačním

Více

EXTRAKT z české technické normy

EXTRAKT z české technické normy EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním ICS 35.240.60 materiálem o normě. Dopravní telematika Vyhrazené spojení krátkého rozsahu (DSRC) Datová

Více

Připojení k internetu pro domácnosti

Připojení k internetu pro domácnosti Připojení k internetu pro domácnosti V současné době poskytujeme naše služby na 19-ti místech po celé Praze a okolí. Do budoucna je v plánu rozšíření pokrytí internetovým připojením na další území Prahy

Více

Základní konfigurace Linux firewallu

Základní konfigurace Linux firewallu abclinuxu.cz Základní konfigurace Linux firewallu pomocí Iptables Štítky: amule, bezpečnost, CentOS, Debian, distribuce, firewally, FTP, input, instalace, Internet, iptables, knihy, konfigurace, LAN, Linux,

Více

Protokoly: IP, ARP, RARP, ICMP, IGMP, OSPF

Protokoly: IP, ARP, RARP, ICMP, IGMP, OSPF IP vrstva Protokoly: IP, ARP, RARP, ICMP, IGMP, OSPF UDP TCP Transportní vrstva ICMP IGMP OSPF Síťová vrstva ARP IP RARP Ethernet driver Vrstva síťového rozhraní 1 IP vrstva Do IP vrstvy náležejí další

Více

File Transfer Protocol (FTP)

File Transfer Protocol (FTP) File Transfer Protocol (FTP) protokol pro přenos souborů, jeden z klasických RFC 959 přehled specifikací na http://www.wu-ftpd.org/rfc/ opět architektura klient-server navržen s ohledem na efektivní využívání

Více

Provozní statistiky Uživatelský manuál

Provozní statistiky Uživatelský manuál 1 Úvod Tento dokument obsahuje popis volitelné služby Provozní statistiky ke službě GTS Ethernet Line. 2 Popis aplikace Provozní statistiky Provozní statistiky jsou volitelnou službou ke službě GTS Ethernet

Více

Operační systémy 2. Firewally, NFS Přednáška číslo 7b

Operační systémy 2. Firewally, NFS Přednáška číslo 7b Operační systémy 2 Firewally, NFS Přednáška číslo 7b Firewally a iptables Firewall síťové zařízení, které slouží k řízení a zabezpečování síťového provozu mezi sítěmi s různou úrovní důvěryhodnosti a/nebo

Více

Software pro vzdálenou laboratoř

Software pro vzdálenou laboratoř Software pro vzdálenou laboratoř Autor: Vladimír Hamada, Petr Sadovský Typ: Software Rok: 2012 Samostatnou část vzdálených laboratoří tvoří programové vybavené, které je oživuje HW část vzdáleného experimentu

Více

Aktivní prvky: síťové karty

Aktivní prvky: síťové karty Aktivní prvky: síťové karty 1 Předmět: Téma hodiny: Třída: Počítačové sítě a systémy Aktivní prvky Síťové karty (Network Interface Card) 3. a 4. ročník SŠ technické Autor: Ing. Fales Alexandr Software:

Více

3. Linková vrstva. Linková (spojová) vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl

3. Linková vrstva. Linková (spojová) vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl 3. Linková vrstva Studijní cíl Představíme si funkci linkové vrstvy. Popíšeme její dvě podvrstvy, způsoby adresace, jednotlivé položky rámce. Doba nutná k nastudování 2 hodiny Linková (spojová) vrstva

Více

Inovace výuky prostřednictvím šablon pro SŠ

Inovace výuky prostřednictvím šablon pro SŠ Název projektu Číslo projektu Název školy Autor Název šablony Název DUMu Stupeň a typ vzdělávání Vzdělávací oblast Vzdělávací obor Tematický okruh Inovace výuky prostřednictvím šablon pro SŠ CZ.1.07/1.5.00/34.0748

Více

2N EasyRoute UMTS datová a hlasová brána

2N EasyRoute UMTS datová a hlasová brána 2N EasyRoute UMTS datová a hlasová brána Jak na to? Verze Záloha spojení www.2n.cz 1 1. Představení funkce Záloha spojení V této kapitole představíme funkci záložního připojení s použitím produktu 2N

Více

Komunikační protokol

Komunikační protokol Komunikační protokol verze dokumentu 8, pro firmware od verze 3.3 DALI232, DALI232e, DALInet, DALI2net y DALI RS232 / Ethernet ASCII protokol podpora MULTIMASTER signalizace připojení DALI sběrnice podpora

Více

Počítačová síť je spojení dvou a více počítačů kabelem, telefonní linkou,

Počítačová síť je spojení dvou a více počítačů kabelem, telefonní linkou, Počítačové sítě Počítačová síť je spojení dvou a více počítačů kabelem, telefonní linkou, optickým vláknem nebo jiným způsobem tak, aby spolu mohly vzájemně komunikovat. K čemu slouží počítačové sítě Sdílení

Více

Další nástroje pro testování

Další nástroje pro testování Další nástroje pro testování PingPlotter grafická varianta programu ping umožňuje soustavné monitorování, archivování apod. www.pingplotter.com VisualRoute grafický traceroute visualroute.visualware.com

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován

Více

MPLS MPLS. Label. Switching) Michal Petřík -

MPLS MPLS. Label. Switching) Michal Petřík - MPLS (MultiProtocol Label Switching) Osnova prezentace: Technologie MPLS Struktura MPLS sítě MPLS a VPN G-MPLS Dotazy 2 / 21 Vznik MPLS: Ipsilon Networks (IP switching) pouze pro ATM Cisco systems, inc.

Více

7. Aplikační vrstva. Aplikační vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl. Představíme si funkci aplikační vrstvy a jednotlivé protokoly.

7. Aplikační vrstva. Aplikační vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl. Představíme si funkci aplikační vrstvy a jednotlivé protokoly. 7. Aplikační vrstva Studijní cíl Představíme si funkci aplikační vrstvy a jednotlivé protokoly. Doba nutná k nastudování 2 hodiny Aplikační vrstva Účelem aplikační vrstvy je poskytnout aplikačním procesům

Více

POPIS SLUŽBY CARRIER INTERNET

POPIS SLUŽBY CARRIER INTERNET POPIS SLUŽBY CARRIER INTERNET Obsah 1 ÚVOD... 3 2 VÝHODY VELKOOBCHODNÍ SLUŽBY... 3 3 CHARAKTERISTIKA VELKOOBCHODNÍ SLUŽBY... 3 4 DOPLŇKOVÉ SLUŽBY... 5 5 PROVOZNÍ PARAMETRY... 6 6 CENY... 7 2 / 7 1 ÚVOD

Více

Popis výukového materiálu

Popis výukového materiálu Popis výukového materiálu Číslo šablony III/2 Číslo materiálu VY_32_INOVACE_I.2.14 Autor Předmět, ročník Tematický celek Téma Druh učebního materiálu Anotace (metodický pokyn, časová náročnost, další pomůcky

Více

1. Směrovače směrového protokolu směrovací tabulku 1.1 TTL

1. Směrovače směrového protokolu směrovací tabulku 1.1 TTL 1. Směrovače Směrovače (routery) jsou síťové prvky zahrnující vrstvy fyzickou, linkovou a síťovou. Jejich hlavním úkolem je směrování paketů jednotlivými sítěmi ležícími na cestě mezi zdrojovou a cílovou

Více

Řízení IO přenosů DMA řadičem

Řízení IO přenosů DMA řadičem Řízení IO přenosů DMA řadičem Doplňující text pro POT K. D. 2001 DMA řadič Při přímém řízení IO operací procesorem i při použití přerušovacího systému je rychlost přenosu dat mezi IO řadičem a pamětí limitována

Více

Přijímací modul ECA-4

Přijímací modul ECA-4 Návod k použití model 2018 kompatibilní Přijímací modul Přenos signálů po datové síti ETHERNET nebo RS485 Monitorování stavu provozu, poruch, limitních hodnot Dálkové ovládání strojů a technologický procesů

Více

Systém elektronické evidence návštěvnosti TDL500

Systém elektronické evidence návštěvnosti TDL500 Systém elektronické evidence návštěvnosti TDL500 ÚVOD Systém je určen k nepřetržité evidenci a vyhodnocení četnosti průchodů osob turniketem. Průchody jsou snímány infra závorou nebo podobným zařízením.

Více

Kapitola 1 Představení SIP telefonu

Kapitola 1 Představení SIP telefonu SIP telefon Kapitola 1 Představení SIP telefonu SIP telefon je plně funkční IP telefon vhodný pro využívání v domácnostech. Podporuje SIP protokol dle RFC3261. Obsahuje dva síťové porty 10/100BaseT, pomocí

Více

POKUD JSOU PRACOVNÍCI SPOJENI DO SÍTĚ MOHOU SDÍLET: Data Zprávy Grafiku Tiskárny Faxové přístroje Modemy Další hardwarové zdroje

POKUD JSOU PRACOVNÍCI SPOJENI DO SÍTĚ MOHOU SDÍLET: Data Zprávy Grafiku Tiskárny Faxové přístroje Modemy Další hardwarové zdroje CO JE TO SÍŤ? Pojmem počítačová síť se rozumí zejména spojení dvou a více počítačů tak aby mohli navzájem sdílet své prostředky. Přitom je jedno zda se jedná o prostředky hardwarové nebo softwarové. Před

Více

Další níže uvedené parametry taktéž ovlivňující kvalitu služby (pevná, mobilní) :

Další níže uvedené parametry taktéž ovlivňující kvalitu služby (pevná, mobilní) : Informace pro uživatele dle Nařízení Evropského parlamentu a Rady (EU) 2015/2120, kterým se stanoví opatření týkající se přístupu k otevřenému internetu 1) Poskytovatel užívá technické prostředky pro monitorování

Více

Architektura připojení pro kritické sítě a služby

Architektura připojení pro kritické sítě a služby Architektura připojení pro kritické sítě a služby Tomáš Košňar CESNET 12. 6. 2018 CSNOG ..k zamyšlení neexistuje univerzální řešení pro všechny případy..k motivaci stabilita a spolehlivost služeb má klíč

Více

Principy ATM sítí. Ing. Vladimír Horák Ústav výpočetní techniky Univerzity Karlovy Operační centrum sítě PASNET

Principy ATM sítí. Ing. Vladimír Horák Ústav výpočetní techniky Univerzity Karlovy Operační centrum sítě PASNET Principy ATM sítí Ing. Vladimír Horák Ústav výpočetní techniky Univerzity Karlovy Operační centrum sítě PASNET vhor@cuni.cz Konference Vysokorychlostní sítě 1999 Praha 10. listopadu Asynchronous Transfer

Více

K čemu slouží počítačové sítě

K čemu slouží počítačové sítě Počítačové sítě Počítačová síť je spojení dvou a více počítačů kabelem, telefonní linkou, nebo jiným způsobem tak, aby spolu mohly vzájemně komunikovat. K čemu slouží počítačové sítě Sdílení prostředků

Více

CCNA I. 3. Connecting to the Network. CCNA I.: 3. Connecting to the network

CCNA I. 3. Connecting to the Network. CCNA I.: 3. Connecting to the network CCNA I. 3. Connecting to the Network Základní pojmy Konvergence sítí (telefony, TV, PC, GSM) SOHO (Small Office and Home Office) nabídka a prodej produktů evidence objednávek komunikace se zákazníky zábava

Více

Průmyslová komunikace přes mobilní telefonní sítě. Michal Kahánek 22. 9. 2010

Průmyslová komunikace přes mobilní telefonní sítě. Michal Kahánek 22. 9. 2010 Průmyslová komunikace přes mobilní telefonní sítě Michal Kahánek 22. 9. 2010 Program Produkty Moxa pro mobilní komunikaci Operační módy mobilních modemů OnCell Operační módy mobilních IP modemů OnCell

Více

APKT měření NGA sítí a EuroDOCSIS 3.0

APKT měření NGA sítí a EuroDOCSIS 3.0 APKT měření NGA sítí a EuroDOCSIS 3.0 Bc. Jakub Radoň jakub.radon@lica.cz Ing. Josef Beran ČTÚ workshop NGA sítě, srpen 2016 josef.beran@profiber.eu DOCSIS hlavní rysy technologie Přístupové sítě postavené

Více

DoS útoky v síti CESNET2

DoS útoky v síti CESNET2 DoS útoky v síti CESNET2 Ondřej Caletka 31. května 2016 Uvedené dílo podléhá licenci Creative Commons Uveďte autora 3.0 Česko. Ondřej Caletka (CESNET, z. s. p. o.) DoS útoky v síti CESNET2 31. května 2016

Více