Průzkum možností Cisco AXP modulu do směrovačů Cisco Petr Gadula Adrian Toman Abstrakt: Tento dokument popisuje možnosti platformy Cisco AXP, její možné použití, základní nastavení, vytváření a instalaci aplikací jiných výrobců softwaru. Klíčová slova: Cisco, AXP modul, Cisco Linux, VMware, virtualizace 1 Úvod.............................................................................................................................2 2 Teorie............................................................................................................................2 2.1 Co to je AXP.........................................................................................................2 2.2 Hardwarové moduly..............................................................................................2 2.3 Architektura AXP..................................................................................................2 2.4 Informace o Cisco Linux......................................................................................3 2.5 Balíčky..................................................................................................................3 3 Nastavení......................................................................................................................3 3.1 Základní nastavení Cisco Linux............................................................................4 3.2 Jak vytvořit balíček...............................................................................................4 3.3 Jak nainstalovat balíček........................................................................................5 3.4 Ověření nainstalovaného programu......................................................................6 4 Závěr.............................................................................................................................6 5 Literatura a zdroje.........................................................................................................6 A Přílohy............................................................................................................................7
prosinec 2008
1/7
1 Úvod V našem projektu jsme se snažíli zdokumentovat možnosti modulu Cisco AXP (NME-APPRE-522-K9) ve směrovačí serie 2800. Zaměřili jsme se na zprovoznění operačního systému Cisco Linux OS běžícího na AXP modulu, ve virtualním stroji a dále na zdokumentování postupu tvorby nového programového balíčku pro Cisco AXP.
2 Teorie 2.1 Co to je AXP Cisco Application eXtension Platform (AXP) se skládá z hardwarové karty (ve třech možných variacích) a z modifikovaného operačního systému Cisco Linux. Na tomto operačním systému je možné spouštět aplikace třetích stran. Tvůrci těchto aplikací však musí vlastnit elektronický certifikát ověřený firmou Cisco. Tento certifikát je nutný k vytvoření balíčku. Jak tento certifikát získat, je popsáno v dalších kapitolách. Je také třeba říci, že AXP reprezentuje „síťovou virtualizaci“. Pod pojmem „síťová virtualizace“ si můžeme představit to, že přesouváme aplikace typicky běžící na serverech do síťových prvků, v našem případě do směrovačů. Do AXP modulu tedy můžeme přesunout například aplikace monitorující síť, webové servery a mnoho dalších.
2.2 Hardwarové moduly Společnost Cisco nabízí 3 druhy AXP modulů. Jednotlivé moduly se od sebe liší svými hardwarovými specifikacemi a svou architekturou. První modul je typu Advanced Integration Module(AIM) a další dva EtherSwitch Network Module (NME). ● AIM-APPRE-102-K9 – nabízí 300Mhz procesor, 256 MB ram a 1GB flash paměť, AIM ● NME-APPRE-302-K9 – nabízí 1GHz procesor, 512 MB ram a 80GB harddrive, NME ● NME-APPRE-522-K9 – nabízí 1,4GHz procesor, 2GB ram a 160GB harddrive, NME Moduly jsou kompatibilní se směrovači firmy Cisco série 1841 (AIM), 2800 (NME) a 3800 (NME).
2.3 Architektura AXP V Cisco Linuxu, který běží v AXP modulu, je stejný příkazový řádek jako v IOSu nebo jiných Cisco zařízeních (žádný Bash). Cisco Linux umožňuje ladění a virtualizace aplikací. Podporuje několik vývojových jazyků – C, Python, Perl a Java. Další důležitou vlastností je využití Cisco SDK. S pomocí tohoto SDK můžou aplikace přistupovat k nastavení směrovače, to znaméná měnít konfigurační soubory na směrovači.
Obrázek 1. Komunikace směrovače s AXP modulem.
prosinec 2008
2/7
Obrázek 1 znázorňuje možnosti komunikace AXP modulu s Cisco IOS směrovače. K této komunikaci se využívá IOS API na AXP modulu. Toto API nabízí funkce k monitorování a konfiguraci IOS a vytváří mezní vrstvu mezi aplikacemi třetích stran a samotným IOS. Je tedy možné vytvořit aplikaci, která monitoruje stav směrovače nebo mění jeho nastavení, ale při tom nemá úplný přístup do IOS směrovače.
2.4 Informace o Cisco Linux Na AXP modulu běží Cisco Linux Virtuální server. Pro každou aplikaci se vytváří samostatá virtualní instance se všemi potřebnými zdroji (obr 2.). Toto zajišťuje striktní separování všech běžících aplikací a zabraňuje nežádoucím interferencím. Operační systém AXP modulu je konfigurovatelný přes CLI.
Obrázek 2. Virtualizace v AXP.
2.5 Balíčky Do Cisco OS lze programy třetích stran instalovat jedině v podobě balíčku. Pro vytváření balíčků se používá skript, který je obsažen v AXP SDK. AXP SDK obsahuje sadu nástrojů nutných pro vývojáře aplikací pro AXP modul. Vytvoření balíčku je podmíněno certifikátem X.509 a autorizačním certifikátem od firmy Cisco. Toto zajišťuje, že na AXP modul se nedostanou nežádoucí programy. Více informací o tom, jak vytvořit balíček, najdete v kapitole 3.2 „Jak vytvořit balíček“.
3 Nastavení Cisco nabízí na svém webu obraz Cisco Linuxu pro VMware, takže je možné si vyzkoušet manipulaci s tímto systémem i bez hardwarového modulu. V našem případě jsme testovali systém ve virtuálním stroji VMware Player 2.5.1 v hostujících OS Kubuntu 8.04.1 x86_64 a Windows Vista 32bit. Ve VMware Playeru jsme nastavili síťovou kartu v módu NAT, kde IP adresa hostujícího byla nastavena na 172.16.5.1/24. Na hostujícím OS běžel FTP server Proftpd a Cerberus. Pokud použijeme hardwarový modul, tak je třeba nastavit IOS v Cisco ISR podle obrázku a Cisco Linux stejně jako v případě VMwaru.
Obrázek 3. Spojení mezi Cisco ISR a Cisco AXP modulem. Následujícími příkazy nakonfigurujeme spojení mezi Cisco ISR a Cisco AXP modulem viz výše na obr. 3. • interface Integrated-Service-Engine 1/0 prosinec 2008
3/7
• ip address 192.168.2.1 255.255.255.0 • service-module ip address 192.168.2.2 255.255.255.0 • service-module ip default-gateway 192.168.2.1 Přihlásit se do shellu modulu můžeme následujícím příkazem service-module Integrated-Service-Engine 1/0 session. Ukončit ovládání modulu a vrátit se zpět do konfigurace ISR můžeme příkazem exit, v případě problému s ovládáním stiskem kláves Control-Shift-6 x.
3.1 Základní nastavení Cisco Linux Cisco Linux se ovládá velmi podobně jako běžný IOS v Cisco ISR či jiná Cisco zařízení. Máme k dispozici mód EXEC a konfigurační režim. Do základního příkazového módu se ve VMware Playeru dostaneme prostým nabootováním, na reálném hardwaru se přihlásíme na směrovač, který obsahuje AXP modul a zadáme service-module service-engine slot/port session, kde slot a port zadáme podle skutečné situace. Abychom mohli modul řádně použít, tak je třeba nainstalovat software (balíčky), a to je možné pouze z FTP serveru. V konfiguračním režimu si nastavíme IP adresy interního a externího ethernetového rozhraní a IP adresu FTP serveru s povoleným uživatelem. Nastavujeme ji kvůli pohodlí, protože je zbytečné zadávat FTP URL při každé instalaci balíčků. software download server url ftp://172.16.5.1/erase/ username uz password ftp interface eth0 ip address 172.16.5.2 255.255.255.0 Nakonec vše zálohujeme do konfiguračního souboru. copy running-config startup-config
3.2 Jak vytvořit balíček Tvorba balíčku má nasledující postup. Nejdříve si připravíme vlastní kód aplikace spolu se startovacím a ukončujícím skriptem. Dále vyextrahujeme (skriptem obsaženým v SDK) obsah RPM balíčků, na kterých je aplikace závislá. Nakonec tyto soubory spolu s certifikáty nakopírujeme do adresáře, kde budeme vytvářet balíček s pomocí AXP SDK. Abychom získali správné certifikáty, měli bychom postupovat následovně. • Obstaráme si certifikát X.509. • A to buď od nějaké certifikační autority • nebo si vygenerujeme vlastní např. openssl genrsa -out private.key 1024 openssl req -new -x509 -days 365 -key private.key -out dev_certificate.sig • Tento certifikát pošleme firmě Cisco. • Pokud Cisco tento certifikát schválí, tak nám pošle autorizační certifikát dev_authorization.sig. • Nakopírujeme certifikáty do našeho projektového adresáře, nejlépe do source/certs.
prosinec 2008
4/7
Obrázek 4.Tvorba balíčku. Nakonec spustíme balíčkovací nástroj pkg_build.sh, který po zadání několika parametrů vygeneruje pkg soubor. Při tomto postupu jsme narazili na několik problémů, které jsme museli vyřešit. Skript pkg_build.sh vyžaduje po spuštění nastavení parametrů a bohužel nefunguje doplňování tabulátorem, což by se při zadávání cest k souborům velmi hodilo. Po zadání parametrů a při zpracovávání vypisuje chybu, že mu chybí program gawk. Ten jsme doinstalovali a po dalším spuštění skriptu se vytváření zastavilo u Processing manifest file information, kde po stisknutí ctrl+c vypsal chybu fgrep: error while loading shared libraries: libpcre.so: cannot open shared object file: No such file or directory. Tuto knihovnu jsme v systému našli v adresáři /usr/lib, ale vytváření stále selhávalo. Vyzkoušeli jsme stejný postup na 32 bit systému, doinstalovali jsme balík libpcre3, doplnili jsme symbolický link na knihovnu libpcre.so do adresáře /usr/lib a celý skript proběhl bez problémů. S velkou pravděpodobností je tedy nutné použít Cisco AXP SDK na 32 bitovém Linuxu, i když jsme to nikde nenašli explicitně napsáno.
3.3 Jak nainstalovat balíček Balíčky si buď můžeme vytvořit sami nebo použít již předkompilovaný firmou Cisco. Cisco nabízí na svých stránkách následující balíčky pro VMware instanci Cisco Linuxu. Bohužel jsme nenašli žádné pro hardwarový modul. axp-app-dev.vmw.1.1.1.pkg axp-cli-plugin.vmw.1.1.1.pkg axp-eemapi.vmw.1.1.1.pkg axp-iosapi.vmw.1.1.1.pkg axp-perl-5.8.8.vmw.1.1.1.pkg axp-ssh-4.6p1-k9.vmw.1.1.1.pkg axp-tomcat5.vmw.1.1.1.pkg axp-vserial.vmw.1.1.1.pkg Balíček se skládá ze dvou souborů, a to s příponou pkg a prt1. Soubor pkg obsahuje jen informace o balíčku jako velikost, popis, verzi, podpis, jméno a další a soubor prt1 obsahuje vlastní data. Jméno balíčku má formát <package>.
..pkg, takže například balíček axp-ssh-4.6p1-k9.vmw.1.1.1.pkg obsahuje program SSH ve verzi 4.6p1-k9 na platformě VMware a balíček je ve verzi 1.1.1. prosinec 2008
5/7
Spustíme si FTP server, který je dostupný buď přímo přes ethernetový port AXP modulu, který se nastavuje v Cisco Linuxu jako eth1, nebo přes interní virtuální ethernetovou linku spojující směrovač a modul, která je značena jako eth0. Pokud jsme už v Cisco Linuxu nastavili adresu FTP serveru (viz kapitola 3.1), tak pro instalaci balíčku stačí zadat příkaz software install clean <package-file-name>. Je také možné instalovat software přímo z FTP serveru pomocí příkazu software install clean url ftp://ftp-server-ip-address/package-filename.pkg [username username password password].
3.4 Ověření nainstalovaného programu Pokud jsme nainstalovali balíček, tak můžeme ověřit, že je nainstalovaný příkazem app-service ? na příkazovém řádku Cisco Linuxu, kde otazníkem se nám zobrazí seznam jednotlivých virtualizovaných prostředí. Příkazem app-service <jméno aplikace> vstoupíme do servisního módu zadané aplikace a příkazem show processes ověříme, zda-li naše aplikace běží. Případný stav aplikace můžeme zjistit příkazem show state. Příkaz show running-configuration nám ukáže současnou konfiguraci prostředí, ve kterém běží tato aplikace.
4 Závěr V první řadě jsme zkusili zprovoznit originální přídavné balíčky ve VMwaru, což se nám bez větších problémů povedlo. O to samé jsme se chtěli pokusit na hardwarovém modulu, ale v době psaní textu byl Cisco ISR s tímto modulem nefunčkní. Již dříve jsme však vyzkoušeli základní konfiguraci tohoto modulu, která byla bezproblémová. V další řadě jsme se pokusili vytvořit a nainstalovat vlastní aplikaci pro AXP modul. Samotné vytvoření balíčku nakonec proběhlo úspěšně po vyřešení problémů popsaných v kapitole 3.2 „Jak vytvořit balíček“, instalace balíčku se však nezdařila. Při instalaci balíčku systém nebyl schopný ověřit pravost podpisu (chybová hláška v příloze). Myslíme si, že by to mohlo být způsobeno použitím nesprávného certifikátu nebo nekompatibilní verzí certifikátu a verzí Cisco Linuxu. Tyto domněnky se nám bohužel nepodařilo ověřit.
5 Literatura a zdroje Na webové stránce jsou k dispozici příručky pro uživatele a vývojáře Cisco AXP modulu, a dále VMware obraz Cisco Linuxu a přídavné balíčky. [1] Cisco Application eXtension Platform User Guide [online]. Aktualizováno 4.9.2008. [2] Cisco Application eXtension Platform Quick Start Guide [online]. Aktualizováno 10.7.2008. [3] Cisco Application eXtension Platform Developer Guide [online]. Aktualizováno 13.11.2008. [4] Cisco Application eXtension Platform Command Reference [online]. Aktualizováno 30.9.2008. [5] AXP SDK. Dostupné z www: [6] Release Notes pro Cisco AXP platformu 1.1.1
prosinec 2008
6/7
A Přílohy Screenshot neúspěšné instalace balíčku v Cisco Linuxu ve VMware.
prosinec 2008
7/7