Možnosti zajištění QoS na firewallech Cisco ASA. Dominik Michalina (MIC0110), Marek Fojtík (FOJ176) Abstrakt: Tento dokument se zabývá problematikou konfigurace kvality služeb QoS na firewallu ASA společnosti Cisco. Je zde uvedena konfigurace Cisco ASA firewallu (síťového bezpečnostního zařízení) spolu s nastavením technik správy provozu v síti. Návrh a zapojení bylo otestováno v laboratorních podmínkách na přepínačích a směrovačích značky Cisco. Klíčová slova: QoS, Cisco, ASA, Firewall 1 Úvod...2 2 Cisco ASA (Adaptive Security Applience)...2 2.1 Použití...2 3 QoS (Quality of Service)...2 3.1 QoS - techniky a metody pro správu síťových zdrojů...2 3.2 Problémy při cestě packetů od zdroje k cíli...3 3.3 QoS mechanismy...3 3.4 QoS na Cisco ASA...3 4 Traffic rate management - Policing and Shaping...3 4.1 Grafické zobrazení metod...4 4.2 Congestion management - Priority Queueing...5 5 Konfigurace QoS na Cisco Asa 5505...5 5.1 Topologie...5 5.2 Základní konfigurace Cisco ASA...5 5.3 Konfigurace standardní prioritní fronty...6 5.4 Prioritní fronta a policing...6 5.4.1 Ověření konfigurace...7 5.5 Traffic shaping...9 5.5.1 Ověření konfigurace...10 6 Závěr...13 7 Použitá literatura...14 květen 2015 1/14
1 Úvod Cílem projektu je zprovoznit a otestovat Quality of Service (QoS) na ASA bezpečnostním prvku společnosti Cisco. V textu je popsána konfigurace testovaného zapojení a technologie, které byly při tomto zapojení využity. Dále také ověření všech cílených technologií a metod Quality of Service (QoS) sítě. 2 Cisco ASA (Adaptive Security Applience) Jedná se o bezpečnostní zařízení, které kombinuje možnosti konfigurace firewallu, antiviru (content security), virtuální privátní sítě (VPN), síťové služby (routing) s Intrusion Prevention System (IPS) a tím může celistvěji zabezpečit síťový provoz. Poskytuje aktivní ochranu proti mnoha různým hrozbám, které by se jinak mohli šířit do vnitřku sítě. Pomocí zásuvných modulů lze dosáhnout ještě většího počtu bezpečnostních možností a tak navýšit zabezpečení sítě. Některé vlastnosti jsou licencované samostatně (musí se dokupovat). Pro většinu modelů je podporováno zapojení v clusteru a tedy vysoká dostupnost. Lze konfigurovat pomocí konzole (CLI) nebo pomocí uživatelského rozhraní Cisco (ASDM). Cisco ASA je silnější než softwarový firewall a nemůže být vypnut omylem či chybou. Také jeho ochrana zůstává aktivní bez ohledu na úroveň dostupných systémových zdrojů. 2.1 Použití Kontrola: ovládání aplikací, podpora audio a video protokolů. Prevence průniků: ochrana proti útokům typu DOS v reálném čase, detekce a filtrace aktivity virů a červů, detekce spyware, adware a malware. Zabezpečení IPCom: pokročilá kontrola hlasových protokolů, specifických IP signatur. Připojení SSL a IPsec: chráněné služby IPSec a SSL, služba SSL klient nebo portál. Obrázek 1: Cisco ASA 5505 3 QoS (Quality of Service) Quality of Service je celkový výkon počítačové nebo telefonní sítě, pozorovatelný uživatelem. Protokoly zajišťující QoS se snaží vyhradit a rozdělit dostupné přenosové kapacity tak, aby se zabránilo zahlcením sítě a tím snížení kvality síťových služeb pro uživatele. QoS je proto standardně realizována v uzlech sítě (směrovačích) metodou zahazování datagramů, jenž přesahují nastavené parametry datových toků. 3.1 QoS - techniky a metody pro správu síťových zdrojů Pomocí QoS se může například nastavovat maximální nebo minimální přenosové pásmo pro určitá data, určit některý provoz jako prioritní nebo provoz rozdělit podle parametrů do jednotlivých typů a každému typu nastavit jinou kvalitu. QoS se tedy snaží poskytovat uživatelům služby s předem garantovanou kvalitou, aby nedocházelo ke zpoždění, zahlcení sítě, ztrátovosti nebo plýtvání s dostupnou šířkou pásma a aby důležitá data byla doručena včas. Kvalitu služeb ovlivňují všechna zařízení v síti a proto dnes, kdy počítačové sítě obsahují nespočet různých zařízení (směrovače, přepínače, firewally, servery, koncová zařízení a další) se QoS stává stále více důležitou a nepostradatelnou součástí každé sítě. Pokud je QoS použito, je nutné omezit provoz některých počíkvěten 2015 2/14
tačů ve prospěch jiných. Omezování se obecně provádí zahazováním paketů, na které musí síťové aplikace reagovat snížením přenosové rychlosti dat. 3.2 Problémy při cestě packetů od zdroje k cíli Zpoždění (delay) - Nastává pokud data dorazí k cílí pozdě. Součástí jsou: propagace - jakou rychlostí se šíří signál médiem serializace - jakou rychlostí můžeme data vkládat za sebou na linku zpracování - směrovače na cestě, zdržení ve frontách, apod. Variace zpoždění (jitter) - Pokud packety od zdroje dosáhnou cíle s různými zpožděními. Tuto změnu v prodlení označujeme jako chvění a může vážně ovlivnit kvalitu streamování audia a videa. Ztrátovost (packet loss) - Paket se ztratí cestou (error) nebo je zahozen (kvůli propustnosti, dropped packet), pokud se ztratí, tak se musí vyslat znovu, navíc se změní pořadí. Doručení mimo pořadí (out-of-order delivery) Pakety mohou putovat různou cestou nebo se vysílají znovu. Šířka pásma (bandwidth) - Když je bandwidth využíváno nárazově a nehospodárně, např. stahování velkého souboru může vzít pásmo telefonii. 3.3 QoS mechanismy Best-effort services - Tato metoda nemá nastaven žádný QoS a snaží se každý paket co nejrychleji a nejefektněji přenést k cíli, klasický TCP/IP provoz, bitrate a doba doručení je proměnlivá a nespecifikovatelná a závisí na zatížení sítě. Differentiated services (DiffServ) - Pakety se při příchodu na směrovač rozdělí do tříd podle typů, toto třídění se může zaznamenat do hlavičky paketu. S třídami se pak pracuje podle nakonfigurovaných parametrů. Řeší se per-směrovač. Dnešní nejpoužívanější metoda. Integrated services (IntServ) - Dnes málo používaná technologie garantovaného QoS, musí být podporovaná u aplikace a všech směrovačů na cestě. Nejdříve se vyjedná a rezervuje cesta, až poté se posílají data. Používá Resource ReSerVation Protocol (RSVP) pro rezervace cesty a je velice náročná na využití zdrojů. 3.4 QoS na Cisco ASA Policing Zabraňuje zahlcení sítě jedním tokem. Nastavuje maximální šířku pásma pro jeden tok. Priority queuing Umožňuje prioritizaci spojení, které vyžadují nízkou odezvu a zajišťuje jim vyšší prioritu při přenosu. Traffic shaping Nastavení maximální přenosové rychlosti pro koncová zařízení. 4 Traffic rate management - Policing and Shaping Cílem je omezit šířku pásma pro určitý provoz, tedy nastavit maximum, které datový tok nemůže překročit. Negarantuje však minimální provozní pásmo. V případě policingu jsou všechny pakety, které by překročili maximální šířku pásma, zahozeny nebo přeznačkovány. Oproti tomu shaping se snaží tyto pakety, které přesáhnou maximální šířku pásma nezahazovat a zařazuje je do fronty (bufferu). Datový tok je často nárazový a shaping jej tak rozloží do delšího časového úseku a tím může tvarovat síťový provoz vycházející z interfejsu (rozhraní). V případě shapingu jsou pakety zahozeny až když je fronta (buffer) zcela zaplněn. Hlavními elementy těchto metod jsou "meter", "marker", "sharper", "dropper" a jsou popsány v RFC2475 následovně [4]: meter - Měří provoz po síti a rozhoduje kdy tento provoz překročí maximální šířku pásma. Pokud dojde k překročení, rozhoduje se zda-li bude paket zahozen a nebo přeznačkován. marker - Nastavuje Differentiated services (DS) pole hlavičky paketu na konkrétní "codepoint" (hodnotu). Může tak označit všechny, nebo jednotlivé pakety, stejným codepointem. Také může nastavovat congestion flag nebo aggregate indication provozu (DS). shaper - Zpožďuje některé, nebo všechny pakety datového toku s cílem nepřekročit maximální šířku pásma a minimalizovat tak množství zahozených packetů. Sharper obsahuje vyrovnávací paměť určité velikosti, pokud je fronta (buffer) naplněna, pak jsou pakety zahazovány až do uvolnění místa. dropper - Zahazuje některé, nebo všechny pakety síťového provozu s cílem sladit provoz s nastaveným profilem provozu (max. šířkou pásma). květen 2015 3/14
Shaping: Malá pravděpodobnost ztráty paketů a tedy vyhnutí se následným znovuposíláním ztracených packetů. Může způsobovat zpoždění kvůli vytváření front. Policing: Kontroluje rychlost vycházejících paketů díky jejich zahazování. Přebytek zahozených paketů přiškrcuje velikost TCP okna a snižuje vycházející rychlost paketů dotyčného síťového proudu. 4.1 Grafické zobrazení metod Normální datový tok, červená linka znázorňuje maximální šířku pásma na kterém se chystáme omezit provoz [3]: Policing ořízne špičky přesahující omezení = zahodí packety. [3] Shaping se snaží o lepší využití dostupného pásma rozložením provozu v čase (buffer). [3] květen 2015 4/14
4.2 Congestion management - Priority Queueing Umožňuje definovat jak je provoz v síti priorizován. Díky tomu můžeme definovat řadu filterů, které roztřídí provoz do tříd na základě dané priority a podle těchto priorit je provoz také odbavován od nejvyšší priority po nejnižší. Třídy priorit jsou: vysoká, střední, normální - default a nízká. Jakmile má být paket odeslán z interfejsu, jsou prohledány prioritní fronty interfejsu od nejvyšší priority. Paket na vrcholu fronty s nejvyšší prioritou je odeslán první a tento postup se opakuje pokaždé při odesílání paketů. 5 Konfigurace QoS na Cisco Asa 5505 Pro nastavení a otestování funkčnosti jsme použili zařízení Cisco ASA 5505 s licenci Basic, která má značné omezení, nicméně podpora QoS je zde zajištěna. Aby se síť více podobala reálné situaci, tak jsme za každý port umístili směrovač, konkrétně Cisco 2801. Použitá topologie je na obrázku 2. Jelikož se projekt zabývá problematikou firewallu (síťového bezpečnostního zařízení) Cisco ASA, nebudeme zde konfiguraci směrovačů popisovat. 5.1 Topologie Obrázek 2: Topologie sítě 5.2 Základní konfigurace Cisco ASA Konfigurace Cisco ASA se od klasického IOSu poměrně dost odlišuje, proto je na místě popsat si i základní nastavení tohoto firewallu. Zařízení, které jsme měli k dispozici, má oproti vyšším řadám jednu podstatnou nevýhodu. U vyšších modelů lze nastavit IP adresu přímo na jednotlivá rozhraní. U modelu ASA 5505 je možné přidělovat IP adresy pouze na VLAN rozhraní. [2] Navíc u licence Basic, je možné použít pouze 3 Vlany. Aby mohl nějaký interfejs používat svou vlastní IP adresu, je nutné k němu přidělit konkrétní VLANu, která touto adresou disponuje. Pro naše zapojení se to provádí následující posloupností příkazů: nejprve jsi vytvoříme Vlany, které jsi pojmenujeme podle použití a přiřadíme jim IP adresy ciscoasa(config)# interface vlan 100 ciscoasa(config if)# nameif outside ciscoasa(config if)# security level 0 ciscoasa(config if)# ip address 10.0.0.5 255.255.255.252 ciscoasa(config if)# no shutdown ciscoasa(config if)# interface vlan 200 ciscoasa(config if)# nameif inside ciscoasa(config if)# security level 100 květen 2015 5/14
ciscoasa(config if)# ip address 10.0.0.2 255.255.255.252 ciscoasa(config if)# no shutdown poté přiřadíme Vlany na příslušné rozhraní ciscoasa(config)# interface ethernet 0/0 ciscoasa(config if)# switchport access vlan 100 ciscoasa(config if)# no shutdown ciscoasa(config if)# interface ethernet 0/1 ciscoasa(config if)# switchport access vlan 200 ciscoasa(config if)# no shutdown Nyní je každý interfejs dostupný na své IP adrese. Teď zbývá přidat cesty na sítě, které se nacházejí za směrovači. I zde je syntaxe mírně odlišná od klasického IOSu. ciscoasa(config)# route outside 10.0.1.0 255.255.255.0 10.0.0.6 ciscoasa(config)# route inside 192.168.1.0 255.255.255.0 10.0.0.1 5.3 Konfigurace standardní prioritní fronty Na to abychom mohli začít využívat policing a nebo shaping, je potřebné nejprve nastavit na daný interfejs standardní prioritní frontu. Každý fyzický interfejs používá dvě fronty. Jednu pro prioritní provoz a druhou pro veškerý zbylý provoz. Právě pro zbylý provoz je možné volitelně nakonfigurovat policing. Při konfiguraci se postupuje takto: vytvoříme prioritní frontu pro daný interfejs ciscoasa(config)# priority queue outside nastavíme maximální počet paketů ve frontě pro prioritní provoz ciscoasa(config priority queue)# queue limit 260 definujeme hloubku prioritní fronty ciscoasa(config priority queue)# tx ring limit 3 Standardní prioritní fronta je nezbytná pokud chceme na daném interfejsu využívat policing. 5.4 Prioritní fronta a policing Jak bylo popsáno v teoretické části, policing slouží na nastavení šiřky pásma pro jeden tok. Spojení, které potřebujeme nějakým způsobem zvýhodnit, případně omezit, přiřazujeme do takzvaných třídních map, které posléze přiřadíme do policy mapy. Tyto mapy pak přiřadíme na interfejs, na kterém je chceme používat. Každý interfejs může mít přidělenou vždy pouze jednu policy mapu. Existuje ještě pak třídní mapa s názvem class-default, do které patří veškerý provoz, který neodpovídá žádné jiné třídní mapě. Přiřazení spojení do třídní mapy je možné vícero zkpůsoby, vždy s využitím příkazu match v třídní mapě. Známé protokoly je možné identifikovat pomocí default-inspection-traffic, který zahrnuje protokoly jako HTTP, ICMP, DNS a další. Další možnosti, které stojí za zmíňku jsou přiřazení pomocí přístupových seznamů (access-listů) a DSCP hodnoty, kterou jsme použili v našem případě. Při konfiguraci jsme postupovali následovně: vytvoření třídních map a určení provozu, který je pro ně vymezen ciscoasa(config)# class map Voice ciscoasa(config cmap)# match dscp ef ciscoasa(config)# access list test permit tcp any any eq 5003 květen 2015 6/14
ciscoasa(config)# class map test ciscoasa(config cmap)# match access list test Vytvoření policy mapy, nastavení priority a přiřazení povolených maximálních rychlostí na jednotlivé třídy. Pro mapu s názvem test jsme nastavili limit 1 Mbps s burstem 37 500 bytes/s. Burst je rychlost, kterou může mít spojení po dobu 10 ms. Pro třídu Voice jsme zvolili parametr priority, který takovému spojení zajistí přednost před ostatním provozem. Pro zbylý provoz jsme nastavili rychlost 200 000 bits/s s burstem 37 500 bytes/s. ciscoasa(config)# policy map qos ciscoasa(config pmap)# class Voice ciscoasa(config pmap c)# priority ciscoasa(config pmap)# class test ciscoasa(config pmap c)# police output 1000000 37500 ciscoasa(config pmap)# class class default ciscoasa(config pmap c)# police output 200000 37500 nakonec jsme přiřadili policy mapu na požadovaný interfejs ciscoasa(config)# service policy qos interface output 5.4.1 Ověření konfigurace Pro ověření konfigurace jsme využili software iperf, kterým jsme měřili přenosovou rychlost pro jednotlivá spojení. Na straně PC2, umístěném za rozhraním outside jsme spustili tento program jako server pomocí příkazu iperf -s -i 1 -p 5003 -f m. Na PC1, za rozhraním inside jsme pustili iperf jako klienta příkazem iperf -c 10.0.1.2 -f m -i 1 -p 5003. Takto jsme otestovali spojení pro třídní mapu test s tímto výsledkem: Client connecting to 10.0.1.2, TCP port 5003 TCP window size: 0.04 MByte (default) [ 3] local 192.168.1.2 port 57886 connected with 10.0.1.2 port 5003 [ ID] Interval Transfer Bandwidth [ 3] 0.0-1.0 sec 0.38 MBytes 3.15 Mbits/sec [ 3] 1.0-2.0 sec 0.12 MBytes 1.05 Mbits/sec [ 3] 2.0-3.0 sec 0.12 MBytes 1.05 Mbits/sec [ 3] 3.0-4.0 sec 0.12 MBytes 1.05 Mbits/sec [ 3] 4.0-5.0 sec 0.12 MBytes 1.05 Mbits/sec [ 3] 5.0-6.0 sec 0.12 MBytes 1.05 Mbits/sec [ 3] 6.0-7.0 sec 0.12 MBytes 1.05 Mbits/sec [ 3] 7.0-8.0 sec 0.12 MBytes 1.05 Mbits/sec [ 3] 8.0-9.0 sec 0.12 MBytes 1.05 Mbits/sec [ 3] 9.0-10.0 sec 0.12 MBytes 1.05 Mbits/sec Zde můžeme vidět, že policing zafungoval přesně podle očekávaní a držel toto spojení na rychlosti 1.05 Mbits/sec. Pouze na začátku byla rychlost vyšší, což způsobil nastavený burst. V dalším ověření jsme upravili port iperf serveru na 5001, který nemá nastavené žádné pravidlo a provoz neměl žádnou DSCP značku, tudíž by se měl řídit pravidly třídy class-default. Výsledek testu: květen 2015 7/14
Client connecting to 10.0.1.2, TCP port 5003 TCP window size: 0.04 MByte (default) [ 3] local 192.168.1.2 port 57886 connected with 10.0.1.2 port 5003 [ ID] Interval Transfer Bandwidth [3] 0.0-1.0 sec 0.06 MBytes 0.53 Mbits/sec [3] 1.0-2.0 sec 0.03 MBytes 0.25 Mbits/sec [3] 2.0-3.0 sec 0.02 MBytes 0.16 Mbits/sec [3] 3.0-4.0 sec 0.03 MBytes 0.25 Mbits/sec [3] 4.0-5.0 sec 0.02 MBytes 0.15 Mbits/sec [3] 5.0-6.0 sec 0.02 MBytes 0.21 Mbits/sec [3] 6.0-7.0 sec 0.02 MBytes 0.18 Mbits/sec [3] 7.0-8.0 sec 0.03 MBytes 0.24 Mbits/sec [3] 8.0-9.0 sec 0.02 MBytes 0.20 Mbits/sec [3] 9.0-10.0 sec 0.02 MBytes 0.14 Mbits/sec Test dopadl opět podle očekávání a spojení se drželo na hodnotě blízké 0.2 Mbit/s, jenž představuje námi nastavený limit. V posledním testu jsme na PC1 přidali pravidlo do IPTABLES pomocí příkazu iptables -t mangle -A OUTPUT -p tcp --dport 5002 -j DSCP --set-dscp-class EF, které nám určuje, že veškerý TCP provoz směřující na port 5002 bude odeslán jako DSCP třída EF. Funkčnost pravidla jsme ověřili ve Wiresharku odchycením provozu a je to zobrazeno na obrázku 3. Také jsme upravili nastavení iperf serveru a klienta. Obrázek 3: Zachycený paket se značkou EF Výsledek testu: Client connecting to 10.0.1.2, TCP port 5002 TCP window size: 0.04 MByte (default) [ 3] local 192.168.1.2 port 47609 connected with 10.0.1.2 port 5002 [ ID] Interval Transfer Bandwidth [ 3] 0.0-1.0 sec 6.50 MBytes 54.5 Mbits/sec [ 3] 1.0-2.0 sec 5.25 MBytes 44.0 Mbits/sec [ 3] 2.0-3.0 sec 5.62 MBytes 47.2 Mbits/sec [ 3] 3.0-4.0 sec 5.12 MBytes 43.0 Mbits/sec [ 3] 4.0-5.0 sec 5.38 MBytes 45.1 Mbits/sec [ 3] 5.0-6.0 sec 5.25 MBytes 44.0 Mbits/sec [ 3] 6.0-7.0 sec 5.38 MBytes 45.1 Mbits/sec [ 3] 7.0-8.0 sec 6.12 MBytes 51.4 Mbits/sec [ 3] 8.0-9.0 sec 5.62 MBytes 47.2 Mbits/sec [ 3] 9.0-10.0 sec 5.38 MBytes 45.1 Mbits/sec [ 3] 0.0-10.0 sec 55.8 MBytes 46.6 Mbits/sec květen 2015 8/14
Zde je vidět, že rychlost třídy Voice, která měla nastaven pouze atribut priority, je mnohem vyšší, než předchozí rychlost zbylých tříd. Rychlosti kolem 100 Mbps nedosahuje pouze kvůli omezením standardní prioritní fronty.pomocí příkazu show service-policy interface outside se můžeme podívat na nastavenou politiku na interfejsu a její statistiku: Interface outside: Service policy: qos Class map: Voice Priority: Interface outside: aggregate drop 0, aggregate transmit 42737 Class map: test Output police Interface outside: cir 1000000 bps, bc 37500 bytes conformed 1543 packets, 2200086 bytes; actions: transmit exceeded 360 packets, 515904 bytes; actions: drop conformed 176 bps, exceed 40 bps Class map: class default Default Queueing Output police Interface outside: cir 200000 bps, bc 37500 bytes conformed 3121 packets, 1674368 bytes; actions: transmit exceeded 758 packets, 1085436 bytes; actions: drop conformed 136 bps, exceed 88 bps Zde je vidět i počet zahozených paketů, které byly zahozeny aby nebyla překročená rychlost stanovená politikou. 5.5 Traffic shaping Na rozdíl od policingu, který při překročení rychlosti začne zahazovat pakety, shaping je řadí do front a postupně odesílá. To představuje velkou výhodu, protože pak tyto zahozené pakety není třeba přeposílat. Co se týče konfigurace je velmi podobná té s policingem. Opět se zde vytvářejí třídní mapy se stejnými možnostmi nastavení. Hlavním rozdílem je, že shaping je možný pouze na třídě class-default a díky hierarchické struktuře pak pod ní spadají námi nastavené třídy. Nevýhodou je, že na interfejsu se nastaví maximální přenosová rychlost, a ta nesmí být překročena žádnou podtřídou. Není tedy možné omezit každého uživatele zvlášť.[1] Při konfiguraci jsme využili třídních map z předchozího příkladu. Zde je pak námi vybrána konfigurace: vytvoření policy mapy s našimi třídními mapami ciscoasa(config)# policy map qos_shape ciscoasa(config pmap)# class test ciscoasa(config pmap c)# priority ciscoasa(config pmap)# class Voice ciscoasa(config pmap c)# priority vytvoření hlavní policy mapy, pod kterou přidělíme námi nastavenou policy mapu, nastavení maximální přenosové rychlosti na 5 Mbps, odstranění staré politiky z interfejsu a přiřazení nové ciscoasa(config)# policy map qos_outside ciscoasa(config pmap)# class class default ciscoasa(config pmap c)# shape average 5000000 ciscoasa(config pmap c)# service policy qos_shape ciscoasa(config)# no service policy qos interface outside ciscoasa(config)# service policy qos_outside interface outside květen 2015 9/14
5.5.1 Ověření konfigurace Při testování správnosti nastavení shapingu, jsme využili stejnou techniku jako při ověření konfigurace policingu, proto jej nebudu dále popisovat. V prvním testu jsme změřili rychlost obyčejného spojení, tedy takového, na které se nevztahuje žádná třídní mapa. Zde je výsledek: Client connecting to 10.0.1.2, TCP port 5001 TCP window size: 0.04 MByte (default) [ 3] local 192.168.1.2 port 37003 connected with 10.0.1.2 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-1.0 sec 0.75 MBytes 6.29 Mbits/sec [ 3] 1.0-2.0 sec 0.50 MBytes 4.19 Mbits/sec [ 3] 2.0-3.0 sec 0.62 MBytes 5.24 Mbits/sec [ 3] 3.0-4.0 sec 0.62 MBytes 5.24 Mbits/sec [ 3] 4.0-5.0 sec 0.50 MBytes 4.19 Mbits/sec [ 3] 5.0-6.0 sec 0.62 MBytes 5.24 Mbits/sec [ 3] 6.0-7.0 sec 0.62 MBytes 5.24 Mbits/sec [ 3] 7.0-8.0 sec 0.50 MBytes 4.19 Mbits/sec [ 3] 8.0-9.0 sec 0.62 MBytes 5.24 Mbits/sec [ 3] 9.0-10.0 sec 0.50 MBytes 4.19 Mbits/sec Opět vše proběhlo podle očekávání a rychlost se pohybovala kolem námi nastavených 5 Mbit/sec. V dalším testu jsme nejprve spustili obyčejné spojení jako v předchozím testu, po pár vteřinách jsme ale k němu přidali další spojení, které jsme s využitím IPTABLES označili v DSCP jako EF. Dopadlo to následovně: Client connecting to 10.0.1.2, TCP port 5001 TCP window size: 0.04 MByte (default) [ 3] local 192.168.1.2 port 37006 connected with 10.0.1.2 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-1.0 sec 0.75 MBytes 6.29 Mbits/sec [ 3] 1.0-2.0 sec 0.62 MBytes 5.24 Mbits/sec [ 3] 2.0-3.0 sec 0.50 MBytes 4.19 Mbits/sec [ 3] 3.0-4.0 sec 0.38 MBytes 3.15 Mbits/sec [ 3] 4.0-5.0 sec 0.00 MBytes 0.00 Mbits/sec [ 3] 5.0-6.0 sec 0.00 MBytes 0.00 Mbits/sec [ 3] 6.0-7.0 sec 0.00 MBytes 0.00 Mbits/sec [ 3] 7.0-8.0 sec 0.00 MBytes 0.00 Mbits/sec [ 3] 8.0-9.0 sec 0.00 MBytes 0.00 Mbits/sec [ 3] 9.0-10.0 sec 0.00 MBytes 0.00 Mbits/sec [ 3] 10.0-11.0 sec 0.00 MBytes 0.00 Mbits/sec [ 3] 11.0-12.0 sec 0.00 MBytes 0.00 Mbits/sec [ 3] 12.0-13.0 sec 0.00 MBytes 0.00 Mbits/sec [ 3] 13.0-14.0 sec 0.00 MBytes 0.00 Mbits/sec květen 2015 10/14
Client connecting to 10.0.1.2, TCP port 5002 TCP window size: 0.04 MByte (default) [ 3] local 192.168.1.2 port 47617 connected with 10.0.1.2 port 5002 [ ID] Interval Transfer Bandwidth [ 3] 0.0-1.0 sec 0.75 MBytes 6.29 Mbits/sec [ 3] 1.0-2.0 sec 0.62 MBytes 5.24 Mbits/sec [ 3] 2.0-3.0 sec 0.50 MBytes 4.19 Mbits/sec [ 3] 3.0-4.0 sec 0.62 MBytes 5.24 Mbits/sec [ 3] 4.0-5.0 sec 0.50 MBytes 4.19 Mbits/sec [ 3] 5.0-6.0 sec 0.62 MBytes 5.24 Mbits/sec [ 3] 6.0-7.0 sec 0.62 MBytes 5.24 Mbits/sec [ 3] 7.0-8.0 sec 0.50 MBytes 4.19 Mbits/sec [ 3] 8.0-9.0 sec 0.62 MBytes 5.24 Mbits/sec [ 3] 9.0-10.0 sec 0.50 MBytes 4.19 Mbits/sec V první tabulce nahoře je zaznamenán průběh spojení bez nastavené priority a ve druhé tabulce, jsou rychlosti prioritního spojení. Je zde vidět, že zatím co spojení s prioritou jede bez problému kolem 5 Mbit/sec, spojení bez priority spadne po spuštění prioritního spojení na 0 Mbit/sec. Je tedy nutné zvážit, které spojení priorizovat, aby nám případně jeho velká šířka pásma nepohltila ostatní spojení. Pomocí příkazu show service-policy interface outside se opět můžeme podívat na nastavenou politiku na interfejsu a její statistiku: Interface outside: Service policy: qos_outside Class map: class default shape (average) cir 5000000, bc 20000 (pkts output/bytes output) 19221/26174187 (total drops/no buffer drops) 0/0 Service policy: qos_shape Class map: test priority Queueing queue limit 83 packets (queue depth/total drops/no buffer drops) 0/0/0 (pkts output/bytes output) 4604/6530896 Class map: Voice priority Queueing queue limit 83 packets (queue depth/total drops/no buffer drops) 0/0/0 (pkts output/bytes output) 4604/6530896 Class map: class default Default Queueing queue limit 83 packets (queue depth/total drops/no buffer drops) 0/0/0 květen 2015 11/14
(pkts output/bytes output) 10015/13112517 Zde si můžeme povšimnout, že statistiky zahozených paketů vykazují 0, což znamená, že podstata shapingu byla naplněna. květen 2015 12/14
6 Závěr Cílem projektu bylo zjistit a na praktických ukázkách vyzkoušet možnosti konfigurace QoS na platformě Cisco ASA. Jako první jsme testovali konfiguraci policingu, který omezuje provoz tím, že jakmile je překročena maximální nastavená přenosová rychlost, začne zahazovat pakety, aby docílil omezení provozu. Nese to však sebou řadu nevýhod. Jednou z hlavních nevýhod je při TCP spojeních nutnost znovu odesílání zahozených paketů, což představuje další provozní zátěž. Zahazování paketů nastalo také v našem případě a počet takto zahozených paketů jsme si prohlédli pomocí show příkazu. Ve druhém testu jsme ověřovali funkčnost shapingu, který při překročení limitu pakety nezahazuje, ale řadí je do front (bufferu), ze kterých je pak posílá postupně směrem k cíli. Pakety začne zahazovat, až když nastane úplné naplnění fronty. V našem případě k tomuto přetečení nedošlo, protože ve výpisu statistik pomocí show příkazu, byl počet zahozených paketů roven nule. To zároveň potvrzuje funkčnost našeho nastavení shapingu. Když jsme při testu zároveň pustili prioritní provoz s neoznačeným provozem, tak prioritní spojení si vzalo všechnu dostupnou šířku pásma, čímž pozastavilo provoz neklasifikovaného spojení. Jelikož není možné nastavit shaping na každé spojení zvlášť, ale pouze na class-default, je potřebné zvážit, které spojení označit za prioritní, abychom se vyhnuli zahlcení sítě jedním spojením. Každá z těchto ověřovaných metod má své výhody a nevýhody. Jejich použití v praxi tedy závisí na jednotlivých požadavcích, které jsou kladeny na QoS. květen 2015 13/14
7 Použitá literatura [1] QoS on the Cisco ASA Configuration Examples [online]. 2014. [cit. 2015-05-05]. Dostupné z:http://www.cisco.com/c/en/us/support/docs/security/asa-5500-x-series-next-generationfirewalls/82310-qos-voip-vpn.html [2] Cisco ASA Series Firewall CLI Configuration Guide: Software Version 9.2 [online]. 2014. [cit. 2015-05- 05]. Dostupné z:http://www.cisco.com/c/en/us/td/docs/security/asa/asa92/configuration/firewall/asafirewall-cli.pdf [3] Cisco QoS [online]. [cit. 2015-05-05]. Dostupné z: http://www.samuraj-cz.com/clanek/cisco-qos-1- uvod-do-quality-of-service-a-diffserv/ [4] An Architecture for Differentiated Services [online]. 1998. [cit. 2015-05-05]. Dostupné z: https://www.rfc-editor.org/rfc/rfc2475.txt květen 2015 14/14