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í, IP telefonii, atd. Kvalita služby je ovlivněna: stanicemi (uživatelé, servery) směrovači, přepínači linkami (mezi směrovači, LAN) Jan Kubr - Y36SPS 2 5/2008
Sdílení kapacity sítě V jednoduché síti typu Internet se všichni uživatelé dělí o prostředky sítě stejným dílem 100 uživatelů + linka 100 Mbit/s => 1 Mbit/s na jednoho uživatele Většinou není menší rychlost problém Některé aplikace (např. IP telefonie) však nemusí fungovat Jan Kubr - Y36SPS 3 5/2008
Možnosti QoS Rezervovat přenosovou kapacitu pro daný kanál Nastavit vyšší prioritu některým službám (např. ssh) a zkrátit jejich odezvu Omezit přenos na definovaný limit (např. omezení FTP, aby bylo možno přistupovat na WWW) Definovat maximální zpoždění dat Jan Kubr - Y36SPS 4 5/2008
Příklad sítě bez QoS 0.6 Mbit/s 0.6 Mbit/s 2 Mbit/s 0.6 Mbit/s 0.6 Mbit/s 0.6 Mbit/s 0.6 Mbit/s Požadavek 1 Mbit/s Jan Kubr - Y36SPS 5 5/2008
Příklad sítě s QoS 0.5 Mbit/s 0.5 Mbit/s 2 Mbit/s 0.5 Mbit/s 0.5 Mbit/s 1 Mbit/s 1 Mbit/s Požadavek 1 Mbit/s Jan Kubr - Y36SPS 6 5/2008
Parametry tvořící QoS šířka pásma = rychlost přenosu dat jednosměrné zpoždění čas potřebný pro přenesení paketu přes fyzické médium čas způsobený řazením do front rozptyl zpoždění ztrátovost paketů Jan Kubr - Y36SPS 7 5/2008
Plánovací mechanismy FIFO Prioritní FIFO Round Robin WFQ Leaky Bucket Leaky Bucket + WFQ Jan Kubr - Y36SPS 8 5/2008
FIFO Fronta Obsluha Jan Kubr - Y36SPS 9 5/2008
Prioritní FIFO prioritní fronta Obsluha Jan Kubr - Y36SPS 10 5/2008
Round Robin 2 fronty (prioritní + ostatní) Příchod 1 2 3 4 5 Obsluha 1 3 2 4 5 čas Jan Kubr - Y36SPS 11 5/2008
WFQ (weighted fair queuing) w1 w2 w3 Obsluha Jan Kubr - Y36SPS 12 5/2008
Leaky Bucket r tokenů za sekundu zásobník na tokeny pakety pakety čekající na tokeny vymazání tokenu odeslání paketu do sítě Jan Kubr - Y36SPS 13 5/2008
Leaky Bucket + WFQ r 1 w 1 r n w n Jan Kubr - Y36SPS 14 5/2008
Weighted Random Early Detection Jan Kubr - Y36SPS 15 5/2008
Co na to IP protokol? IPv4 má v hlavičce informační pole TOS (Type of Service): 1000 minimalizuj zpoždění 0100 maximalizuj propustnost 0010 maximalizuj spolehlivost 0001 minimalizuj finanční náklady 0000 normální služba Jan Kubr - Y36SPS 16 5/2008
ToS v aplikacích Telnet = 1000 (zpoždění) FTP control = 1000 (zpoždění) FTP data = 0100 (propustnost) DNS UDP query = 1000(zpoždění) TCP query = 0000 Zone transfer = 0100 (propustnost) ICMP errors = 0000 request = 0000 response = 0000 Jan Kubr - Y36SPS 17 5/2008
TCP a řízení toku Efektivně lze omezovat pouze odchozí tok dat, pro příchozí tok musíme použít nepřímé metody. Můžeme pozdržet potvrzení a tím prodloužit RTT (round trip time) (pozor na timeout, který způsobí opětovné odeslání dat). Můžeme měnit velikost okénka. Jan Kubr - Y36SPS 18 5/2008
Principy značkování paketů umožňuje směrovači přiřadit paket třídě provozu požadavek na oddělení toků toky se vzájemně neovlivňují umožnění využití volných zdrojů i při izolování toků při nedostupnosti zdrojů bude tok odmítnut Jan Kubr - Y36SPS 19 5/2008
Kontrola provozu zahození na vstupu předání vyšší vrstvě (paket je určen tomuto uzlu) výběr výstupu (forwarding) zahození na výstupu x odeslání podle plánovacího algoritmu Jan Kubr - Y36SPS 20 5/2008
Architektura IETF standardy integrated services (Intserv) rezervace zdrojů směrovači vyvolání rezervace zdrojů RSVP, YESSIR differentiated services (Diffserv) označení paketu na vstupu třída přenosu DSCP (diferentiated service codepoint) diffserv doména shodné zpracování stejných tříd per-hop-behaviour (PHB) expedited forwarding (EF) assured forwarding (AF) Jan Kubr - Y36SPS 21 5/2008
Intserv RSVP Jan Kubr - Y36SPS 22 5/2008
Diffserv vnitřní směrovač ingress směrovač vnitřní směrovač egress směrovač vnitřní směrovač diffserv doména Jan Kubr - Y36SPS 23 5/2008
PHB expedited forwarding pakety se odesílaj průměrnou rychlostí alespoň rovnou stanovené rychlosti vhodné pro implementaci virtuálních pronajatých okruhů assured forwarding zařazení do čtyř tříd třída má přiděleny prostředky (buffer, kapacita) tři priority zahození paketu implementace služeb s volitelnou kvalitou přenosu Jan Kubr - Y36SPS 24 5/2008
Diffserv Poskytuje: Zajištění QoS parametrů (relativních i absolutních) pro agregované toky dat Neposkytuje: Řízení přístupu (admission control) Jan Kubr - Y36SPS 25 5/2008
Linux disciplíny front způsob obsluhy a parametry fronty přiřazeny k rozhraní typy fifo tbf (token bucket flow) (w)red (random early detection) (e)sfq (stochastic fair queueing) cbq (class based queue) htb (hierarchical token bucket) teql (traffic equalizer) imq (intermediate queueing device) Jan Kubr - Y36SPS 26 5/2008
Linux II třídy toky se společnými rysy společné zpracování v rámci nadřazené disciplíny musí obsahovat vnořené disciplíny filtry klasifikování paketů rozřazení do tříd a disciplín typy u32 univerzální; položky hlaviček TC_INDEX diffserv; položky TOS route rozhodování podle řádku směrovací tabulky Layer7 Jan Kubr - Y36SPS 27 5/2008
Nastavení tc (traffic controller) iproute2 přiřazení front, tříd a filtrů k rozhraní Jan Kubr - Y36SPS 28 5/2008
Příklad 100mbit adaptér 5mbit http 3mbit snmp 6mbit maximálně dohromady Jan Kubr - Y36SPS 29 5/2008
CBQ # tc qdisc add dev eth0 root handle 1:0 cbq bandwidth 100Mbit avpkt 1000 cell 8 # tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 100Mbit rate 6Mbit weight 0.6Mbit \ prio 8 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded # tc class add dev eth0 parent 1:1 classid 1:3 cbq bandwidth 100Mbit rate 5Mbit weight 0.5Mbit \ prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000 # tc class add dev eth0 parent 1:1 classid 1:4 cbq bandwidth 100Mbit rate 3Mbit weight 0.3Mbit \ prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000 # tc qdisc add dev eth0 parent 1:3 handle 30: sfq # tc qdisc add dev eth0 parent 1:4 handle 40: sfq # tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip sport 80 0xffff flowid 1:3 # tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip sport 25 0xffff flowid 1:4 Jan Kubr - Y36SPS 30 5/2008
HTB # tc qdisc add dev eth0 root handle 1: htb default 30 # tc class add dev eth0 parent 1: classid 1:1 htb rate 6mbit burst 15k # tc class add dev eth0 parent 1:1 classid 1:10 htb rate 5mbit burst 15k # tc class add dev eth0 parent 1:1 classid 1:20 htb rate 3mbit ceil 6mbit burst 15k # tc class add dev eth0 parent 1:1 classid 1:30 htb rate 1kbit ceil 6mbit burst 15k # tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10 # tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 10 # tc qdisc add dev eth0 parent 1:30 handle 30: sfq perturb 10 # tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff \ flowid 1:10 # tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip sport 25 0xffff \ flowid 1:20 Jan Kubr - Y36SPS 31 5/2008
Literatura htb http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm htb - pěkně http://www.mrak.cz/veci/htb_princip_detaily_priklad.php Layer7 filter http://l7-filter.sourceforge.net/ imq http://www.abclinuxu.cz/clanky/site/traffic-shaping-2-imq-a-uvod-do-shapingu Advanced routing http://tldp.org/howto/adv-routing-howto/ Jan Kubr - Y36SPS 32 5/2008
cisco... Jan Kubr - Y36SPS 33 5/2008