QoS MIB na ISR routerech s Cisco IOS - možnosti čtení QoS konfigurace a aktuálních statistik Bc. Filip Volný Bc Jakub Drešl Abstrakt: Tento dokument popisuje způsob čtení QoS konfigurace a aktuálních statistik pomocí protokolu SNMP na ISR routerech společnosti Cisco. Klíčová slova: QoS, Cisco, SNMP, MIB, ISR, router, konfigurace 1 Úvod... 2 2 Teoretický rozbor... 2 2.1 QoS Quality of service... 2 2.2 SNMP Simple Network Management Protocol... 2 2.3 MIB databáze... 2 2.4 Traffic Shaping... 3 3 Topologie... 3 4 Aktivace QoS MIB a konfigurace nástroje Traffic Shaping... 3 5 Generování provozu a vytváření dotazů... 4 6 Čtení statistik... 5 7 Závěr... 8 8 Použitá literatura... 8 Leden 2015 1/8
1 Úvod V tomto projektu jsme se s kolegou zabývali, jakými způsoby lze efektivně číst záznamy protokolu SNMP (Simple Network Management Protocol) obsažené v MIB (Management information base) databázi, která se nazývá QoS MIB (Quality of service). Tyto záznamy obsahují veškerou konfiguraci, která je na směrovačích nastavena, a také číselné hodnoty aktuálních statistik provozu. Při vypracování jsme postupovali podle následujících kroků: 1. Ověření, zda router podporuje QoS MIB databázi 2. Navržení topologie 3. Aktivace SNMP serveru na daném routeru 4. Aktivace QoS MIB databáze 5. Konfigurace určitého QoS nástroje 6. Generování provozu 7. Čtení statistik 8. Ověření správnosti přečtených statistik Při ověřování podpory QoS MIB na školních zařízeních jsme narazili na problém, jelikož školní routery neměly tuto databázi nainstalovanou. Hledali jsme tedy alternativní řešení. To jsme našli v použití softwaru od firmy Cisco GNS3 [1]. Do tohoto programu jsme použili Image pro routery serie c7200 (C7200- JK95-M, verze ios -12.4 (13b)). Zároveň jsme používali VirtualBox, ve kterém jsme virtualizovali linuxový systém Xubuntu. Bod 1 a 2 se nám tak rozrostl navíc o propojení těchto dvou softwarů. QoS nástroj, který jsme vybrali pro náš projekt, se nazývá Traffic Shaping. 2 Teoretický rozbor Tato kapitola se věnuje teorii, kterou je vhodné znát pro pochopení dané problematiky semestrálního projektu. 2.1 QoS Quality of service QoS lze definovat jako schopnost sítě poskytnout lepší nebo speciální službu množině uživatelů a aplikací na úkor jiných uživatelů a aplikací. Cílem QoS je vylepšit hodnoty přenosových parametrů (zpoždění, propustnost, ztrátovost paketů, atd.) určitého typu dat. Děje se tak ale na úkor hodnot přenosových parametrů jiného typu dat. Existuje velké množství nástrojů pro implementaci QoS metoda obsluhy paketových front, komprese, preventivní zahazování paketů, signalizace spojení, námi zvolené tvarování provozu (Traffic Shaping) atd. 2.2 SNMP Simple Network Management Protocol Protokol SNMP je asynchronní, transakčně orientovaný protokol založený na modelu klient/server. Strana, která posílá požadavky a dotazy je klient, druhá strana, která odpovídá a počítá statistiky, je server. Pro přenos dat se používá protokol UDP, přičemž je definováno přesně místo, kam se mohou připojovat uživatelské aplikace jednotlivých firem, které spravuje organizace IANA (Internet Assigned Numbers Authority - doslova: Internetová autorita pro přidělování čísel). Třetí nedílnou součástí tohoto protokolu je MIB databáze. SNMP má dnes již 3 verze, ale my jsme použili verzi 2. Verze 3 poskytuje navíc i šifrování, což pro nás bylo zbytečné. 2.3 MIB databáze Je to databáze, která dovoluje jednoznačně identifikovat informace využívané systémem správy. Aby mohl SNMP manager i agent tyto informace získat a předávat, tak je nutná znalost struktury MIB. Báze dat je objektově orientovaná. Data jsou uložena jako objekty a sdružují se do tříd. Jednotlivé objekty mají hodnoty. Každý řízený objekt v MIB obsahuje veškeré informace potřebné pro popis. Způsob pojmenování objektů je založen na jejich vztahu. Jeden objekt může obsahovat jiné objekty nebo jiné třídy. MIB je tedy tvořena jedním stromem. Každá část tohoto stromu je identifikovaná tzv. OID číslem (Object identifier) [2]. Leden 2015 2/8
2.4 Traffic Shaping Je to QoS nástroj, který pakety pozdrží v čekací frontě, pokud hrozí překročení povolené rychlosti na určitém rozhraní. V praxi je fyzická přenosová rychlost rozhraní dána použitou přenosovou technologií. Pokud je potřeba z nějakého důvodu přenášet data nižší rychlostí, lze toho dosáhnout střídáním krátkých intervalů, kdy se pakety přenášejí fyzickou přenosovou rychlostí rozhraní, a intervalů, kdy se nic nepřenáší. Traffic shaping je výhodný, pokud jsou pakety přenášeny shlukovitě a požadavky na přenosovou rychlost tím kolísají. Definuje, kolik bytů dat lze v určitém krátkém časovém intervalu přenést, zbytek musí počkat na další interval. Obvykle se aplikuje na výstupním rozhraní směrovače. 3 Topologie Vzhledem k principu, jakým protokol SNMP funguje, nám stačila velmi jednoduchá topologie. Potřebovali jsme pouze 1 router, na kterém bude SNMP server a QoS MIB, a 2 klienty, mezi kterými bude probíhat komunikace. Obrázek 1: Schéma zapojení s rozadresováním 4 Aktivace QoS MIB a konfigurace nástroje Traffic Shaping Jako první jsme provedli ověření přítomnost QoS MIB na našem virtuálním routeru příkazem: R2# show snmp mib Výpis musel obsahovat záznam cbqosmib, což se nám potvrdilo. Poté jsme mohli přejít ke konfiguraci. Konfiguraci uvádíme bez příkazů, pomocí kterých se nastavují IP adresy. Nejprve jsme museli aktivovat QoS MIB statistiky: R2(config)# snmp-server ifindex persist R2(config)# snmp mib persist cbqos Prvním krokem při implementaci nástroje traffic shaping je definice síťového provozu, kterého se rezervace přenosové rychlosti bude týkat. Vybrali jsme dscp hodnoty pro třídy hlasu, videa a default neboli data. R2(config)# access-list 101 permit ip 192.168.56.0 0.0.0.255 192.168.57.0 0.0.0.255 dscp 46 R2(config)# access-list 102 permit ip 192.168.56.0 0.0.0.255 192.168.57.0 0.0.0.255 dscp 34 R2(config)# access-list 103 permit ip 192.168.56.0 0.0.0.255 192.168.57.0 0.0.0.255 dscp 0 Poté jsme vytvořili jednotlivé třídy (class-mapy), kterým jsme přiřadili pravidla vytvořené v předchozím kroku. R2(config)# class-map VOICE Leden 2015 3/8
R2(config-cmap)# match access-group 101 R2(config)# class-map VIDEO R2(config-cmap)# match access-group 102 R2(config)# class-map DATA R2(config-cmap)# match access-group 103 Nakonec je potřeba jednotlivým třídám říci, jak s definovaným provozem zacházet. R2(config)# policy-map PM R2(config-pmap)# class VOICE R2(config-pmap-c)# shape average 10000000 R2(config-pmap)# class VIDEO R2(config-pmap-c)# shape average 40000000 R2(config-pmap)# class DATA R2(config-pmap-c)# shape average 50000000 Posledním krokem je přiřazení těchto pravidel na správné rozhraní a směr. R2(config)# interface fastethernet 0/1 R2(config-if)# service-policy output PM 5 Generování provozu a vytváření dotazů Po implementaci jsme potřebovali generovat provoz, který by splňoval kritéria jednotlivých tříd. Mohli jsme použít nějaký SW nástroj (například iperf), ale vzhledem ke konfiguraci jsme mohli použít pouze příkaz ping doplněný o danou hodnotu DSCP. DSCP (Differentiated Services Code Point) je hodnota v záhlaví paketu, která označuje jeho prioritu, v našem případě příslušnost do určité třídy. Použité příkazy ping: ping Q 184 (dscp 46) ping Q 136 (dscp 34) ping = provoz pro třídu VOICE = provoz pro třídu VIDEO = provoz pro třídu DATA Následné čtení statistik probíhá pomocí dotazu příkazem snmpget nebo snmpwalk. Rozdíl mezi těmito příkazy je ten, že snmpget vrátí pouze 1 hodnotu, kdežto snmpwalk vrátí všechny hodnoty, které jsou v MIB stromu dále. Vzhledem k obsáhlosti této databáze jsme použili následující příkaz [3] : snmpwalk 192.168.57.2 -v1 -c public 1.3.6.1.4.1.9.9.166 Číslo na konci příkazu je OID a jedná se o označení QoS MIB ve stromu databáze. Všechny další záznamy QoS mají tento číselný prefix. Udělali jsme několik screenshotů, kde jsou vybrané OID záznamy takové, abychom na nich ukázali strukturu QoS MIB a aby bylo názorně vidět, jak se zapisuje konfigurace routeru do těchto záznamů [4]. Leden 2015 4/8
6 Čtení statistik Následující obrázky ukazují vybrané statistiky, které jsme nakonfigurovali. Obrázek 2: OID pro Object index, config index a object type Na obrázku 2 jsme zvýraznili object index (131072, 131073, 131074) a config index, který je za rovnítkem. Tyto dva indexy jsou důležité pro identifikaci daného QoS nástroje. Každý QoS objekt je definován tzv. object indexem. Tato informace je unikátní pro každý interface a pro každou instanci tohoto objektu. Dále má každý QoS objekt svou konfigurační část označenou tzv. config indexem. Config index se nemění, i když je tento objekt přiřazen k několika interfacům nebo je použit pro více instancí objektu. Jak název vypovídá, označuje Object type typ objektu QoS. Může nabývat hodnoty 1 až 11. Těmto hodnotám odpovídají následující typy objektů: 1 policymap = souhrn class-map na interfacu 2 classmap = klasifikace provozu do tříd 3 matchstatement = podmínky pro klasifikaci 4 - queueing 5 - randomdetect 6 trafficshaping = typ QoS nástroje [4] Jak je vidět z obrázku, tak QoS objekt s object indexem 131072 označuje Class mapu, 131073 označuje Match statement a 131074 námi vybraný QoS nástroj, traffic shaping. Na dalším obrázku (obrázek 3) jsme zvýraznili názvy Policy mapy a Class map, které jsme vytvořili. Můžeme si zde všimnout, že Config index se nemění, přesně jak jsme definovali výše. Dále je zde zvýrazněn typ dodržování kritéria (ClassInfo Match all) a přiřazený access-list. Leden 2015 5/8
Obrázek 3: MIB záznamy pro názvy map a jejich přiřazených kritérií, která jsme nastavovali v konfiguraci Na obrázku 4 lze vidět nastavení hodnot Traffic shapingu, které jsme nakonfigurovali. Obrázek 4: MIB záznamy pro hodnoty nástroje Traffic Shaping Leden 2015 6/8
Abychom ověřili a dokázali, že statistiky, které jsme schopni vyčíst pomocí SNMP protokolu, jsou aktuální a nezkreslené, provedli jsme porovnání s výpisem přímo na routeru (viz. Obrázky 5 a 6). Tento výpis jsme vyvolali příkazem show class-map. Obrázek 5: Porovnání několika záznamu z MIB databáze pro třídu VOICE a VIDEO s konfigurací na routeru Obrázek 6: Porovnání několika záznamu z MIB databáze pro defaultní třídu a třídu DATA s konfigurací na routeru Malá nesrovnalost v číslech u defaultní třídy je způsobena tím, že do této třídy se počítá veškerý provoz, který mezi prvky v topologii probíhá. Než jsme tedy udělali screenshot MIB databáze a vyvolali výpis na routeru, uběhl nějaký čas a mezitím tak proběhla určitá komunikace. 6.1 Čtení statistik na XR routerech Dalším naším úkolem bylo odzkoušet čtení QoS statistik na XR routerech, které jsou virtualizované na počítačích v laboratoři EB429. Po nabootování jsme příkazem show snmp mib zjistli, že tyto routery databázi QoS MIB obsahují. Použili jsme router na adrese 158.196.135.23 a portu 5001. Na tomto routeru běží ios XR verze 5.1.2[Default]. Samotné čtení statistik probíhá naprosto stejně jako na routerech ISR pomocí příkazu snmpwalk. Rozdíl byl v aktivaci QoS MIB. Zde uvádíme příkazy, které se týkají SNMP a slouží pro aktivaci QoS databáze: Leden 2015 7/8
XR(config)# snmp-server ifindex persist XR(config)# snmp mibs cbqosmib persist XR(config)# snmp-server community public ro 7 Závěr Náš projekt se zaměřoval na QoS MIB, což je databáze pro správu, konkrétně pro QoS, což je kvalita služby. Tyto databáze obsahují souhrn výpisů všech možných nastavení CISCO routerů. Po uživateli je nutné znát konkrétní část stromu, kterou chce vypsat a ta je interpretována řadou čísel. Kvůli obsáhlosti těchto MIB existuje na webu CISCO speciální překladač, pomocí kterého jste schopní konkrétní prvek najít dle čísla, které ve stromu MIB databáze má. Našim úkolem tedy bylo nastudovat tuto hierarchii, pochopit ji a následně její konkrétní část zaobírající se QoS zúročit. Prvním důležitým milníkem při zpracovávání projektu bylo zjištění, že nám dostupné routery v učebně TPS tuto konkrétní MIB nemají. Až později jsme zjistili, že to je z toho důvodu, že routery obsahují neaktuální IOS (C2900-UNIVERSALK9-M, Version 15.5(1)T, REL a C2801-ADVIPSERVICESK9-M, Version 15.1(3)T4). Rozhodli jsme se tedy pro stažení novější verzi IOS a využití virtualizačního software GNS3 a VirtualBox. Následně zbývalo vytvořit vhodné nastavení sítě, pro což jsme vybrali Traffic Shaping. Ten se využívá pro regulaci šířky přenosového pásma právě tak, aby odpovídala požadovanému profilu provozu dle námi zadané definice daného provozu. Díky tomu se hojně využívá jako součást řešení kvality služeb, kdy každé z kvalit služeb omezíme rychlost dle její potřeby pro správnou funkčnost. Po nastavení a odzkoušení realizovaného návrhu sítě nám nezbývalo nic jiného, než si vypsat daný podstrom MIB databáze a zkontrolovat vypsané hodnoty. A opravdu, ve výpisu jsme byli schopni vyčíst námi nakonfigurované hodnoty jako skupiny provozu, rychlosti jim přiřazené, konkrétní provoz bitů v daných skupinách apod. Po doplnění zadání jsme navíc otestovali emulované XR routery. Tyto routery (ios XR verze 5.1.2) MIB databázi obsahovaly a pracovalo se s nimi velice obdobně jako s ISR routery. Jak jsme již psali výše, CISCO MIB je velice rozsáhlá a pokrývá všelijaká nastavení. Právě tato rozvětvenost je asi její největší slabinou, protože bez dostupného manuálu či CISCO překladače bude správce těžko hodnoty vypisovat. Naštěstí je CISCO překladač dostupný online pro kohokoliv. 8 Použitá literatura [1] Connecting GNS3 with a VirtualBox host. Nil [online]. 2012 [cit. 2015-01-12]. Dostupné z: http://nil.uniza.sk/virtualization/virtualbox/connecting-gns3-virtualbox-host [2] Monitoring QoS on Cisco routers. Sys4 [online]. 2013 [cit. 2015-01-12]. Dostupné z: https://sys4.de/en/blog/2013/02/07/monitoring-qos-cisco-routers [3] QoS monitoring. Tek-tips [online]. 2007 [cit. 2015-01-12]. Dostupné z: http://www.tektips.com/viewthread.cfm?qid=1431674 [4] SNMP Object Navigator. Cisco [online]. 2015 [cit. 2015-01-12]. Dostupné z: http://tools.cisco.com/support/snmp/do/browsemib.do?local=en&step=2&mibname=cisco-class- BASED-QOS-MIB Leden 2015 8/8