Možnosti reakce na události na rozhraních (Interface Events) Lukáš Margeťák, Michal Zdařil Abstrakt: Tato práce se zabývá možnostmi reakcí na události, které vznikají na rozhraních. V první části je uveden krátký pohled do skriptovacího jazyka TCL a možnost registrování jednotlivých skriptů k daným událostem, které obsluhuje EEM (Embedded Event Manager). Dále jsou rozebrány 3 možnosti reakce na tyto události a to: změna konfigurace síťového prvku, odeslání informačního emailu a informativní výpis do konzole. Klíčová slova: Tcl, Cisco, Script, Interface, Email 1 Úvod...2 2 Modelová situace...2 3 Konfigurace...2 3.1 Nastavení zhozeného rozhraní do stavu UP...2 3.2 Odeslání informativního emailu...3 3.3 Zpráva na konzoli...4 4 Závěr...4 5 Použitá literatúra...5 listopad 2010 1/5
1 Úvod V dnešním dynamickém světe je potřeba rychle reagovat na události, které generují síťové prvky. Jendním z typů událostí vyžadujících rychlou reakci jsou události na rozhraních. Vzhledem k tomu, že rychlost reakce administrátora na změnu stavu rozhraní nemůže být zdaleka tak rychlá jako v případe, že ho systém nějakým způsobem aktivně upozorní, nebo přímo vykoná nezbytnou operaci. Efektivní řešení těchto problémů nabízí implementace skriptovacího jazyka TCL v rámci aktivních síťových prvků společnosti Cisco. TCL je skriptovací jazyk založený na Lispu. Jedná se o jazyk s jednoduchou syntaxí, který je však mocným nástrojem v rukách toho, kdo s ním umí správně zacházet. Mezi jeho charakteristické vlastnosti patří beztypovost, interpretovanost, práce s řetězci, rozšířitelnost, zdarma dostupné zdrojové kódy, přenositelnost. V našem projektu se budeme zabývat skriptováním v prostředí prvků společnosti Cisco. Podpora TCL skriptů je málo známou, avšak velmi důležitou vlastností IOSu. Příkazy jazyka TCL mohou být vykonávány přímo v rámci CLI (Command Line Interface). Slouží na to příkaz tclsh zadaný v privilegovaném režimu. Příkazy jsou zadávány řádek po řádku. Takto jsou příkazy posílány interpretu jazyka TCL, který je hned vykoná a zpracuje výsledek. Další možností je provádění skriptů uložených na vzdáleném TFTP servru. Slouží na to příkaz tclsh tftp://ip_adresa/nazev.tcl taktéž v privilegovaném režimu. Poslední a zdaleka nejužitečnější využití TCL skritpů je reakce na různorodé události, které vyvstávají za běhu aktivního síťového prvku. K obsuze těchto událostí slouží EEM (Embedded Event Manager). EEM je nástroj pro obsluhu událostí, který umožňuje na dané události reagovat. EEM obdrží upozornění, pokud dojde k vyvolání události. K jednotlivým událostem jsou registrovány příslušné obslužné skripty. Po zkopírování skriptu z TFTP servru do vnitřní paměti síťového prvku a definováni umístění skriptů příkazem event manager directory user policy flash:, je skript zaregistrován příkazem event manager policy nazev.tcl. Při vyvolání události je skript vyvolán EEM a reaguje na událost. Skripty jsme testovali na routru Cisco 7200, verze IOS byla 15.0(1) M. 2 Modelová situace Existuje mnoho příčin, které mohou vyvolat událost. V našem projektu jsme se zaměřili na události na rozhraních. Možností je hned několik: pád aktivního rozhraní zahlcení linky přicházející pakety, které překračují povolené MTU Ukážeme zde řešení reakcí na události, které by moholi být využity v praxi. 3 Konfigurace V následujících dvou příkladech budeme simulovat pád rozhraní Loopback0 ke spuštení obslužného skriptu reagujícího na tuto událost. V posledním příkladu je ukázán skript, který reaguje pokud dojde k zahlcení rozhraní více než 75%. 3.1 Nastavení zhozeného rozhraní do stavu UP Po simulaci pádu rozhraní Loopback0 je inicializován skript, který na zhozeném rozhraní nastaví uživatelem definovanou IP adresu a nastaví rozhraní do stavu UP. Skript používa knihovnu CLI, která náleží do jemnného prostoru ::cisco::eem. Tato knihovna umožňuje otevřít virtuální terminál v němž jsou prováděny jednotlivé přikazy. Pro správný chod skriptu musíme mít nastavené minimálne tři virtuální linky (pomocí příkazu: line vty 0 2). Tyto virtuální linky musí být volné. V proměnné FD je uloženo číslo VTY linky používané pro spojení. listopad 2010 2/5
Na obrázku je zobrazen výstup vykonaného skriptu po pádu rozhraní Loopack0. 3.2 Odeslání informativního emailu Poslední příklad, který řeší reakce na vyvolanou událost, je zřejmě jeden z nejefektivnějších. Skript zaregistrovaný v EEM reaguje na událost na rozhraní a začne vykonávat příkazy skriptu. Tento jednoduchý skript vytvoří email podle zadaných parametrů, odešle jej na definovaný emailový server, jenž jej dále zpracuje. Poté, co je email doručen administrátorovi, ten může adekvátně reagovat. listopad 2010 3/5
Na obrázku je zobrazen výstup vykonaného skriptu po pádu rozhraní Loopack0. 3.3 Zpráva na konzoli Po zahlcení rozhraní na víc než 75% dojde k vyvolání události a script vykoná informativní výpisy na konzoli. Událost se nám však nepodarilo nasimulovat. 4 Závěr V dnešní uspěchané době může i nejmenší zaváhání způsobit výpadek velké části sítě. Proto se jeví jako logický krok mít k dispozici různé automatizované mechanizmy, které budou schopny v krátkém okamžiku buďto samostatně reagovat, popřípadě upozornit administrátora na možný problém. Na této práci jsme listopad 2010 4/5
ukázali, že pomocí skriptů můžeme vyřešit některé problémy bez zásahu administrátora nebo v případě netriviálního problému upozornit kompetentní osoby. 5 Použitá literatúra BLAIR, Raymond; DURAI, Arvind; LAUTMANN, John. TcL Scripting for Cisco IOS. 1. [s.l.] : Cisco Press, 2010. 320 s. ISBN 1-58705-945-2. Cisco [online]. 2011 [cit. 2011-01-13]. Cisco. Dostupné z WWW: http://www.cisco.com listopad 2010 5/5