Bevezető
Aki hálózat tervezésére adja a fejét, nem mondhatja el, hogy nagyon sok olyan fejlesztő eszköz áll a rendelkezésére, melyekben a kívánt hálózatot megtervezheti, annak megadott funkcióit letesztelheti, ráadásul mindezt olyan vegyes környezetben is elvégezheti, ahol a rendszer bizonyos részei virtuális környezetben vagy akár éles hardveren elérhetők.
A Cisco által fejlesztett jól ismert Packet Tracer hálózatszimulációs program ugyan az egyik legelterjedtebb az oktatásban, de mint a neve is mutatja, csupán szimulálja az egyes hálózati eszközök működését, vagyis csak azok a funkciók tesztelhetők le vele, melyeket támogat. A legújabb 8.01-es verzióban ugyan már lehetőség van a PT-n belüli eszközök külső elérésére, de ez egy viszonylag bonyolult programozási felületen keresztül érhető el.
A GNS3 program 2008-as megjelenése óta töretlenül fejlődik, és működése a Dynamips szimulációs programra alapul, mely egy Cisco IOS-t betöltve a támogatott IOS-ek valamennyi funkcióját elérhetővé tette. Kezdetekben önálló programként működött, mely ugyan elérhetővé tette a külső virtuális vagy éles hardveren futó eszközöket is (a világhálóval együtt), de csupán a Cisco routerek IOS-eit volt képes kezelni. A későbbiekben kiegészítették egy olyan VM-mel (virtuális géppel), amely már képes volt IOU-k (Cisco IOS on Unix) futtatására. Ezek az IOU-k olyan teljes értékű IOS-ek, melyek egy UNIX folyamatként tudnak futni, és ebben a környezetben már teljes értékű forgalomirányító, kapcsoló vagy akár ASA IOS-ek is használhatók voltak. Ez a VM akár a GNS3 kliensről is elérhető volt, akár egy webes felületen is lehetőséget adott a topológiák konfigurálására. Sajnos a GNS3-ban futó IOS-ek és a külső eszközök kommunikációjának beállítása számos nehézségbe ütközött, és sokszor nem volt egyszerű feladat.
És akkor térjünk rá bejegyzésünk igazi céljára, az EVE-NG bemutatására.
EVE-NG (Emulated Virtual Environment Next Generation) bevezető
Az EVE-NG (Emulated Virtual Environment Next Generation) a GNS3-hoz hasonlóan egy virtuális gépet bocsájt a rendelkezésünkre (A rendszer nem csak virtuális gépen érhető el, de mi most ezt a változatot fogjuk megismerni.), melyben egyrészt kliens program nélkül webes felületen keresztül teszi lehetővé a hálózati topológia felépítését, másrészt teljes hozzáférést ad a virtuális gépen futó Linux-hoz, így az egyes eszközök vagy nested módban futó más virtuális gépek menedzselése közvetlenül is megoldható.
Az EVE-NG fizetős (EVE-NG Professional és EVE-NG Learning Center Version) és szabadon felhasználható (Free EVE Community Edition) formában is elérhető, természetesen ez utóbbi korlátozott szolgáltatásokkal. A három kiadás képességei az alábbi linken érhetők el.) Egyéni felhasználásra nekünk a szabad verzió tökéletesen megfelelő. (Számunkra legfontosabb korlátja a maximum 63 eszköz használata, de ez sem okoz gondot.)
Az EVE-NG letöltése és installálása
A rendszer letöltése és használatba vétele rendkívül egyszerű. A virtuális gép az eve-ng.net oldal Download menüpontjában érhető el. Válasszuk a Mega Mirror tükörről az OVA file-t. (A cikk írása után 2022. július 8-án kitettek egy újabb verziót. Ehhez ezt a file-t kell letölteni.) Miután letöltöttük, csomagoljuk ki az állományt, és az így kapott VM file-t importáljuk be egy VMWare vagy egy VirtualBox-ba, és lehetőség szerint NAT-olt hálózatban indítsuk el a gépet.
A virtuális gép elindulása után jelentkezzünk be. (Az alapértelmezett felhasználói név: root, a jelszó: eve) Ekkor lehetőségünk van megváltoztatni a jelszót, beállíthatjuk a gép hoszt és domain nevét, az NTP szerver elérhetőségét (nem szükséges), az IP cím megszerzésének módját (érdemes DHCP-t választani először), illetve hogy közvetlenül vagy proxy-n keresztül kapcsolódunk-e a hálózathoz. A gép újraindulása után már ezek a beállítások élnek. Amennyiben rendben kapott a gép IP címet, akkor login prompt felett látható, hogy milyen IP címen keresztül érhetjük el rendszert.
Megjegyzendő, hogy a gép indulásakor a rendszer logo-ja foglalja el a képernyőt, ami csak akkor zavaró, ha valami miatt hosszú ideig tart az indulás, ugyanis nem látjuk, hol akadt el a folyamat. (Ez legtöbbször akkor történik meg, ha valamilyen okból nem kap IP címet.) Ilyenkor az ESC billentyű lenyomásával tudunk átkapcsolni a betöltő képernyőre.
EVE-NG – Első labor létrehozása
Ha minden rendben sikerült, akkor kedvenc böngészőnkből elérhetjük a fejlesztői környezetet. A webes bejelentkezéshez használjuk a felhasználói név: admin, jelszó: eve adatokat. A bejelentkezéskor választhatjuk ki, hogy milyen konzollal akarjuk elérni az eszközöket. Ha natív konzolt választunk, akkor egy külső terminál vagy vnc programmal érhetjük el az eszközöket, belső virtuális gépeket, míg ha a HTML5 konzolt választjuk, a böngészőnk egyik fülén jelennek meg ezek a kimenetek. Eleinte célszerű a HTML5-öst választani.
A bejelentkezés után első alkalommal megjelenik az EVE-NG fájlkezelője. Itt lehet könyvtárakat létrehozni, azokban pedig a laborfájlainkat (hálózati topológiákat) lehet elhelyezni.
Készítsünk el egy tetszőleges névvel egy labor fájlt, és nyissuk meg. A böngészőnkben megjelenik egy üres szerkesztőmező, ahol ezután a tervezendő hálózat topológiáját tudjuk elkészíteni.
Bátran próbáljuk ki a baloldali ikonokon keresztül elérhető funkciókat. (A bejegyzésnek nem célja, hogy ezeket részletesen mutassuk be, bár erre nincs is szükség, olyan egyértelműek.)
Készítsük el az első topológiánkat: Először a bal oldali sávban a legfelső ikont válasszuk (Add an object), majd a megjelenő menüből a Node menüpontot. (Ez a menü a szerkesztőfelületen az egér jobb gombjának a lenyomásával is elérhető.)
Első ránézésre csodálkozva tapasztalhatjuk, hogy hányféle eszközt választhatunk a listából, de aztán kiderül, hogy alapértelmezetten ezekből csupán a Virtual PC (VPCS) választható. (Az inaktív eszközök szürke színűek, az aktívak kék színnel vannak megjelenítve.) Kattintsunk erre az eszközre.
A megjelenő ablakban állíthatjuk be a paramétereit. Állítsuk be a VPC nevét PC1-re. (A többi paraméter is egyértelmű, bátran próbáljuk ki.) A Save gombra kattintva PC1 megjelenik a szerkesztőfelületen. A szürke színe jelzi, hogy kikapcsolt állapotban van. Bal egérgombbal kattintva rá, szerkeszthetjük vagy elindíthatjuk, míg jobb egér gombbal kattintva ennél több lehetőséghez jutunk.
Állítsunk be egy IP címet a PC1-en. Ehhez kattintsunk a PC ikonjára, indítsuk el (Start), a PC ikonja kékre vált, majd újra kattintsunk rá. Amennyiben a HTML5 konzolt választottuk bejelentkezésnél, a böngészőnk egy újabb fülén megjelenik a konzolablak. PC1 IP címe és alapértelmezett átjárója az ip paranccsal állítható be. A save parancs elmenti a VPC konfigurációját.
VPCS> ip 192.168.46.200/24 192.168.46.2
Checking for duplicate address…
PC1 : 192.168.46.200 255.255.255.0 gateway 192.168.46.2
VPCS> save
Saving startup configuration to startup.vpc
. done
Vegyük észre, hogy abból a hálózatból választottunk IP címet és alapértelmezett átjárót, amelyben az EVE-NG is elérhető. (Persze mindenki a saját kiosztott hálózatában kell dolgozzon. Ehhez nézzük meg, hogy. a böngészőnkben milyen IP címre jelentkeztünk be!) Meg is vagyunk, PC1 már képes önmagát megpingetni. De Hogyan érhetnénk el az alapértelmezett átjárót és így a külső hálózatokat?
Adjunk a topológiánkhoz egy Management(Cloud0) Network objektumot. (Jobbgomb, Network, majd válasszuk a Type listából a Management(Cloud0)-t.) Állítsuk le a PC1-et (ebben a verzióban csak leállított eszközök köthetők össze), majd az egeret vigyük a PC fölé, és a megjelenő kis konnektor jelről drag&drop-pal húzzunk egy kapcsolatot a Network objektumhoz. Miután elengedtük az egér gombját, megjelenik egy ablak, amelyben a kapcsolat paramétereit is beállíthatjuk. (Jelen esetben nincsen mit beállítani, lévén a PC-nek egyetlen hálózati portja van.)
Ha kész vagyunk, indítsuk el PC1-et, és már sikeresen meg is tudjuk pingetni mondjuk a Google egyik névszerverét (8.8.8.8). Ilyen egyszerűen el lehet érni a külső hálózatokat EVE-NG-ből.
Image állományok az EVE-NG-ben
Az EVE-NG-ben a topológiában felhasznált eszközeinket (a VPC és a hálózatok kivételével) el kell készítenünk. Ehhez az image állományukat kell a megfelelő helyre feltölteni. Milyen image állományokat támogat az EVE?
QEMU: A QEMU egy 2-es típusú (tehát az operációs rendszeren egy szoftverrétegként futó) hypervisor (vagyis egy olyan szoftver, amely virtuális gépeket tud futtatni). Mivel hatékonyan tud együttműködni a KVM-mel, nagyon gyors virtualizációt tesz lehetővé.
IOU/IOL: Az IOU (IOS on Unix) vagy az IOL (IOS on Linux) gyakorlatilag egy UNIX (Linux) környezetben felhasználói folyamatként futó IOS.
Dynamips: A Dynamips egy olyan program, mely képes bizonyos Cisco forgalomirányítók IOS-ének emulálására úgy, hogy a támogatott IOS-eket betölti.
Amennyiben rendelkezünk egy image állománnyal, el kell döntenünk, hogy melyik környezethez tartozik, és ennek megfelelő könyvtárba kell feltölteni a virtuális gépünkön. A feltöltés SFTP protokollal történhet, ehhez egy megfelelő SFTP kliens programra van szükségünk. (Például Windows környezetben a WinSCP.) Az SFTP kliens programból gyakorlatilag az EVE-NG virtuális gépbe kell bejelentkezni a szokásos IP címen (lásd böngésző címsora), a root felhasználói névvel, és az első alkalommal beállított jelszóval. Ezután navigáljunk el a /opt/unetlabs/addons könyvtárba, ahol láthatjuk a fenti környezeteknek megfelelő könyvtárakat.
Jegyezzük meg! Ha bármilyen állományt felmásoltunk ezekbe a könyvtárakba, akkor le kell futtatnunk egy szkriptet annak érdekében, hogy az EVE-NG számára megfelelő jogosultságokkal legyen ellátva az állományok, és láthatóvá váljanak a webes felületen. Ez a szkript a következő:
/opt/unetlab/wrappers/unl_wrapper -a fixpermissions
Honnan szerezzük be az image-eket? Ez egy kényes kérdés, hiszen ezek nagy része fizetős szoftver. Nem is megyek bele ebbe a kérdésbe, talán annyi támpontot adhatok, hogy a https://networkrare.com oldalon számos image (forgalomirányító, kapcsoló, ASA stb.) elérhető, de a cikkben szereplő image nevekre rákeresve, az interneten is rájuk találhatunk.
Az első Dynamips forgalomirányítónk
Legyen az első feltöltött eszközünk egy Dynamips formátumú forgalomirányító. Ehhez töltsük fel a c7200-advipservicesk9-mz.152-4.S5.image állományt a /opt/unetlabs/addons/dynamips könyvtárba, futtassuk le a jogosultságokat helyreállító szkriptet, és láss csodát, az eszközök listájában megjelenik kékkel a Cisco forgalomirányító.
Az eszközt kiválasztva újra egy olyan ablak jelenik meg, ahol a paramétereit beállíthatjuk, például azt, hogy a forgalomirányító bővítőhelyein milyen interfészek jelenjenek meg. Külön figyelmet érdemel az Image lehulló lista, amely akkor jut szerephez, ha több, hasonló image-t töltöttünk fel. Innen kell kiválasztani, melyiket akarjuk használni.
A Dynamips image-ek nagy korlátja, hogy nem képesek 2. rétegbeli eszközök, vagyis a kapcsolók kezelésére. Ahhoz, hogy ilyen eszközöket is használhassunk a topológiánkban, IOU image-t kell telepítenünk.
Az első IOL kapcsolónk
Töltsük le a i86bi_linux_l2-adventerprise-ms.high_iron_20170202.bin image állományt a networkrare.com oldalról (link), majd töltsük fel a virtuális gépünk /opt/unetlabs/addons/iol/bin könyvtárába, és futtassuk le a jogosultságokat beállító szkriptet. (Az image állomány két másikkal egy tömörített állományban található.) Ennek eredményeként az eszközök között elérhetővé válik az IOL eszköz.
Válasszuk ki az eszközt, állítsuk be a nevét, és cseréljük le az ikonját egy kapcsoló szimbólumra. Próbáljuk elindítani a kapcsolónkat. A rendszer hibaüzenettel jelzi, hogy nem sikerült. Ennek az az oka, hogy az IOL image-eket csak akkor lehet használni, ha rendelkezünk érvényes licenccel. Itt most megint ingoványos talajra tévedtünk, hiszen ezt csak a Cisco-tól lehetne hivatalosan beszerezni. Annak érdekében, hogy ki tudjuk próbálni kapcsolónkat, mi saját magunknak generálunk egyet. Ehhez egy aprócska python programra van szükségünk. A programért látogassunk el az alábbi oldalra, és a 3. pontban látható forráskódot másoljuk be egy szöveges állományba (legyen ez pl. a IOUkeygen.py), töltsük fel a virtuális gép root könyvtárába, és futtassuk le a python3 IOUkeygen.py parancs kiadásával. A futtatás eredményeként a képernyőn megjelenik egy ehhez hasonló bejegyzés:
Ezt a két sort másoljuk be egy iourc nevű fájlba, majd ezt másoljuk be a feltöltött L2-es image-ünk mellé. (A fájlt nem szükséges rejtetté tenni.) Ezután már elindítható és használható a kapcsoló. (Ne felejtsük el a jogosultságokat beállítani a szkripttel!)
Az első IOL forgalomirányítónk
Nagyon könnyű dolgunk van. A korábban letöltött tömörített állományból (amelyben a kapcsoló image volt) a i86bi-linux-l3-adventerprisek9-15.4.1T.bin fájlt töltsük fel a kapcsoló image mellé (/opt/unetlabs/addons/iol/bin), végezzük el a jogosultság beállítását, és a Node menüpontból kiválasztva az IOL eszközt, már ezt az L3 image-t is választhatjuk.
Vegyük észre, hogy az eszköz beállításánál tudunk újabb Ethernet és Serial interfész csoportokat az eszközhöz rendelni.
Az első ASA eszközünk
Az ASA-t qemu image formájában töltjük fel az EVE-NG-re. Ehhez a https://mega.nz/file/cmZDkKhK#hKizfIDtoBgYZekP1BCT2b_XzHwQ7va2bwGwsYWvZ18 hivatkozásról töltsük le az image állományt, majd tömörítsük ki. Készítsünk el a qemu könyvtárban egy asa-9.1.5 alkönyvtárat, másoljuk fel ide a kitömörített image fájlt, és most már kiválaszthatjuk a Cisco ASA-t az eszközökből.
Az ASA enable jelszava üres, tehát ha kéri, csak üssünk ENTER-t.
Ez az ASA image nem rendelkezik licenccel, így csak korlátozottan használható. Amennyiben egy VPN Plus licenccel rendelkező image-re van szükségünk, azt a wget https://dtechsmag.com/images/asa-9.1.5/hda.qcow2 paranccsal tudjuk letölteni a virtuális gépen. (A letöltött fájlt az asa-9.1.5 könyvtárba másoljuk.)
Az első Linux állomásunk
Készítsünk most egy olyan eszközt, amelyen egy Linux-ot futtatunk. Az EVE-NG-re feltölthető Linux image-ket az alábbi linken keresztül érhetjük el: https://mega.nz/folder/30p3TKob#42_S__9wwPVO0zHIfC4xow Töltsük le például a linux-tinycore-6.4.tar.gz állományt, tömörítsük ki, és könyvtárával együtt másoljuk fel a qemu könyvtárba, tegyük helyre a jogosultságokat, és ezután már elérhető ez asz eszköz is:
Természetesen más Linux image állományokat is letölthetünk innen, és elérhetővé tehetjük azokat az EVE-NG-ben. Ilyenkor a Linux eszközt kiválasztva az Image listából tudjuk kijelölni, melyik image állománnyal szeretnénk dolgozni.
A különböző Linux disztribúciókhoz vagy telnet vagy vnc (esteleg rdp) protokollal csatlakozhatunk. A grafikus felülettel elérhetőkhöz mindenképpen vnc-t állítsunk be.
Az első Windows állomásunk
Végezetül egy Windows 7 munkaállomást is indítsunk el az EVE-NG-n belül. A szükséges image fájl itt érhető el. (A 2-es pontban választhatjuk az állomány letöltését.) Tömörítsük ki, majd másoljuk fel a qemu könyvtárba egy win7 könyvtár alá. A jogosultságok beállítása után már használhatjuk is. (Az elérését állítsuk vnc-re!)
EVE-NG kliens oldali segédprogramok
Az EVE-NG használatához nem árt, ha rendelkezünk pár segédprogrammal. (Ilyen például egy terminálprogram, egy SFTP kliens program vagy a Wireshark.) Ezeket akár egyesével is felinstallálhatjuk, de célszerűbb az https://www.eve-ng.net/index.php/download/ oldalról letölteni, ahol Windows Integration Pack néven találjuk meg. (Ott van az OSX-es verziója is.)
EVE-NG és a Wireshark
A Wireshark egy olyan nyílt forráskódú csomagkezelő szoftver, amely segítségével az egyes eszközök közötti hálózati forgalom figyelhető meg. Amennyiben meghagytuk az EVE-NG alapértelmezett beállításait, a használata nagyon egyszerű: A futó eszközön bal gombbal kattintva kiválasztjuk a Capture menüpontot, majd kiválasztjuk a megfigyelni kívánt interfészt.
Ezután elindul a Wireshark, és már láthatjuk is a megfigyelt forgalmat. (Bizonyos esetekben nem indul el azonnal a csomagfigyelés, hanem felsorolja a megfigyelhető hálózati kártyákat a program. A listából az utolsó, névvel nem rendelkező kártyát kell kiválasztani!) A Wireshark a csomagok megfigyeléséhez SSH-val bejelentkezik az EVE-NG gépünkre. Ehhez az alapértelmezett jelszót (eve) használja. Amennyiben ezt mi megváltoztattuk volna, akkor ezt a Wireshark tudomására kell hoznunk. Ennek érdekében lépjünk be a felinstallált EVE kliens csomag könyvtárába (Windows esetében ez a C:\Program Files\EVE-NG), és nyissuk meg a wireshark_wrapper.bat állományt, majd a SET PASSWORD= sorban írjuk át az alapértelmezett jelszót az újra. Amennyiben még így sem járunk sikerrel, akkor arra gyanakodhatunk, hogy a bejelentkezéshez használt kulcsok sincsenek rendben. Ilyenkor érdemes ugyanebben a könyvtárban kiadni a plink.exe root@192.168.1.111 parancsot, ahol értelemszerűen az IP cím az EVE-NG virtuális gépünk aktuális címe. A parancs rákérdez a jelszóra, és legenerálja a szükséges kulcsokat, a virtuális gépet pedig felveszi az ismert hosztok listájába (Ugyanígy frissíthetjük a kulcsokat, ha például a putty-tyal bejelentkezünk a virtuális gépre.) Ilyen kulcsfrissítésre akkor van legtöbbször szükségünk, ha több EVE-NG virtuális géppel is rendelkezünk ugyanazon a gépen. (Erre a két hibára akkor gyanakodhatunk, ha csomagelkapás indításakor megjelenő parancssor ablakban egy Access denied, vagy a Connection abandoned hibaüzenet is megjelenik.)
Utószó
Remélhetőleg a cikk segítségével mindenki el tudja kezdeni ennek a nagyszerű környezetnek a használatát. Természetesen nagyon sok más image is elérhető, bár némelyiknek a használatba vétele nem ilyen egyszerű. Bátran próbálkozzunk! Ne feledjük el, hogy az egyes gépek elég nagy erőforrást lefoglalhatnak, így nem mindegy, hogy milyen gazdagépen futtatjuk az EVE-NG-t.