Proširenje mrežnih usluga emulacijom hardvera u GNS3 E. Ciriković *, I. Heđi*, D. Ivačić * * Visoka škola Virovitica, Virovitica, Republika Hrvatska enes.cirikovic@vsmti.hr, ivan.hedi@vsmit.hr, dominik.ivacic@vsmti.hr Sažetak - Primjenom adekvatnih softverskih alata za emulaciju mrežnog hardvera i simulaciju računalnih mreža na postojećoj infrastrukturi lokalnih računalnih mreža obrazovnih institucija i manjih poduzeća omogućuje se proširenje skupa dostupnih usluga u domeni hibridnih resursa. U radu je predstavljen primjer konfiguracije emuliranog Mikrotik usmjeritelja s funkcijom vatrozida kao komunikacijskog i sigurnosnog sučelja između virtualnog HTTP poslužitelja i vanjske mreže te integracija simulacijske okoline s produkcijskom mrežom. Za emulaciju mrežnog hardvera i HTTP poslužitelja odabran je besplatni grafički mrežni simulator otvorenog koda - GNS3, koji se ovim primjerom pokazao kao praktično povoljan alat za savladavanje tematskih cjelina u nastavnim kolegijima s naglaskom na računalne mreže kao i u stručnim primjenama fleksibilne alokacije postojećih računalno-komunikacijskih resursa. Ključne riječi GNS3, MikroTik, simulacija, mreže I. UVOD Suživot koncepata virtualizacije i emulacije u kontekstu primjene fizički manifestiranih računalnih mreža omogućio je poboljšanje i proširenje već postojećih usluga i sustava u nastavnim, laboratorijskim i produkcijskim primjenama. Iako su navedeni koncepti apstraktni i često nedostupni krugu krajnjih korisnika, na tržištu se učestalo pojavljuju proizvodi koji predstavljaju kompromis između jednostavnosti i dobrobiti korištenja te pozadinske složenosti svih uključenih tehnologija i načela potrebnih za rad takvih sustava. Grafički mrežni simulatori stekli su svoju popularnost najprije u profesionalnim okruženjima mrežnih stručnjaka, no sve je više prepoznat i njihov akademski potencijal pa se koriste kao pomoćni alati pri svladavanju teorijskih i praktičnih načela računalnih mreža i mrežnih usluga [1]. Njihovo intuitivno i parametarski bogato okruženje korisnicima omogućuje emulaciju, parametrizaciju i testiranje virtualnih i stvarnih računalnih mreža različitih stupnjeva složenosti i namjena u realnom vremenu bez potrebe posjedovanja mrežnog hardvera, uz mogućnost emuliranja mrežne opreme renomiranih proizvođača te stvaranja hibridnih okruženja spajanjem virtualnih i realnih mreža [2]. Uvodnim pregledom osnovnih svojstva i mogućnosti poznatog grafičkog mrežnog simulatora GNS3 rad se osvrće na praktičnu primjenu proširenja usluga lokalne računalne mreže uspostavom virtualne instance HTTP poslužitelja u GNS3 okruženju te pokazuje potencijal primjene kako u produkcijskim scenarijima tako i u uvjetima svladavanja nastavnih tema računalnih mreža. II. EMULACIJA MREŽNOG HARDVERA U GNS3 SIMULATORU U osnovi namjene navedenog simulatora ujedno su prisutne i njegove glavne prednosti što uključuje mogućnosti simulacija računalnih mreža u realnom vremenu uz integraciju s fizičkim mrežama bez potrebe za stvarnim posjedovanjem posredničkog mrežnog hardvera te lake dostupnosti njihovih softverskih reprezenata u obliku emuliranih sustava. Slobodnom distribucijom pod GNU GPLv3 licencom te lakom dostupnošću putem centralne web lokacije [3], uz inicijalnu korisničku registraciju, omogućeno je preuzimanje instalacijske datoteke GNS3 simulatora te pristup tzv. marketplace web portalu namijenjenom preuzimanju besplatnih ili komercijalnih mrežnih softvera, dodatnih simulacijskih komponenti i slika sustava emuliranih uređaja, pripremljenih laboratorija i mrežnih tečajeva realiziranih u okruženju GNS3 simulatora. Za potrebe rada preuzeta je posljednja inačica simulatora u izdanju 2.1.8 te je postavljena na računalo s Windows 10 operacijskim sustavom s performansama sukladnim minimalnim tehničkim zahtjevima samog simulatora. Uz osnovnu komponentu simulatora tijekom instalacijskog postupka odabrane su i dodatne komponente neophodne za realizaciju konačne ideje rada. S obzirom da se u središtu simulirane topologije nalazi emulirani sustav Mikrotik usmjeritelja, dodana je komponenta QEMU u predloženoj inačici 2.4.0. Radi se o softverskoj komponenti otvorenog koda namijenjenoj hardverskoj emulaciji i virtualizaciji kojom se omogućuje pokretanje sustava i aplikacija pisanih za određene procesorske arhitekture (x86, x86-64, PowerPC, ARM i dr.) na različitim platformama primjenom dinamičke translacije koda [4]. Neophodan korak inicijalne konfiguracije odnosi se i na postavljanje Microsoft KM-TEST Loopback mrežnog softverskog adaptera koji ima ulogu posrednika između fizičkih mrežnih resursa i parametara računala te simulacijskog okruženja. Kako je navedena komponenta sastavni dio Windows operacijskog sustava, instalacija se provodi putem čarobnjaka za dodavanje novog hardvera u sklopu sistemske aplikacije Device manager te se po završetku postupka pojavljuje u popisu mrežnih adaptera pod nazivom MS Loopback. U TCP/IPv4 svojstvima dotičnog adaptera naknadno su definirane proizvoljne vrijednosti parametara IP adrese 10.0.0.1 te maske podmreže od 24 bita (255.255.255.0). Kako bi se omogućila funkcija posredovanja u dijeljenju mrežnih resursa fizičkog Ethernet adaptera te simulirane mreže u MIPRO 2019/CE 551
svojstvima fizičkog adaptera aktivirana je opcija Internet Connection Sharing u postavkama samog fizičkog adaptera prema slici 1. katalogiziranih s lijeve strane glavnog prozora radne površine te su ispuštena na željeno mjesto zamišljene topologije kao što je prikazano slikom 3. Slika 1. Postavke dijeljenja mrežnih resursa fizičkog mrežnog adaptera s Loopback adapterom Preliminarna provjera povezivosti i općenitog funkcioniranja simulatora ostvarena je generiranjem testne topologije koja je u potpunosti realizirana unutar GNS3 simulatora. To podrazumijeva upravljanje simulacijom putem lokalne instance GNS3 poslužitelja integrirane u samom simulatoru koja se predefinirano dodjeljuje svakom novom projektu. Prije pokretanja novog projekta te kreiranja početne topologije u GNS3 simulator dodan je element mrežnog usmjeritelja proizvođača Mikrotik. S obzirom na postojeće praktično iskustvo s fizičkim proizvodima ovog proizvođača te slobodno dostupnim slikama sustava kompatibilnih s korištenim softverom za emulaciju, za potrebe simulacije odabrana je slika sustava Mikrotik Cloud Hosted Router u inačici chr-6.41.1 preuzeta sa službene lokacije GNS3 simulatora [5]. Kreiranje virtualne instance Mikrotik usmjeritelja posredstvom QEMU emulatora integriranog u aplikativni dio GNS3 simulatora provedeno je kroz personalizaciju parametara predloška, uz minimalnu potrebu za izmjenom ponuđenih parametara, osim u dijelu prilaganja odgovarajuće datoteke slike sustava te odabiru broja mrežnih adaptera, odnosno sučelja [6]. Ostali parametri, poput količine radne memorije te procesorske alokacije odgovaraju minimalnim hardverskim zahtjevima samog usmjeriteljskog uređaja (slika 2). Slika 2. Parametri komponente Mikrotik usmjeritelja definirane posredstvom QEMU VM predloška U prozor radne površine novog projekta GNS3 simulatora dodana su i povezana dva elementa početne topologije: prethodno definiran Mikrotik usmjeritelj te element Cloud. Oba elementa povučena su iz kolekcije raspoloživih mrežnih komponenti simulatora Slika 3. Početna topologija s Mikrotik usmjeriteljem te elementom Cloud Ulogu sučelja simulirane mrežne topologije prema MS Loopback adapteru, odnosno posredno prema fizičkom Ethernet sučelju simulacijskog računala, preuzima element Cloud kojemu je u konfiguracijskim postavkama jednostavnim odabirom predloženih adaptera podešena veza Ethernet sučelja s nazivom Loopback adaptera. S obzirom da je simulator postavljen u operacijskom sustavu Windows 10, prije provjere povezivosti dva elementa početne topologije u aplikaciji Windows Firewall With Advanced Security omogućena je lokalna propusnost ICMP Echo Request paketa u oba smjera aktivacijom predefiniranih pravila File and Printer Sharing (Echo Request - ICMP) - Domain/Public. Drugim riječima, aktivacijom navedenog pravila Windows vatrozida omogućena je dozvola odgovora na dolaznu naredbu ping. Samim povezivanjem sučelja elementa početne topologije pomoću ponuđenog grafičkog alata za kreiranje veza, sučelje ether1 Mikrotik usmjeritelja, prema slici 3, logički je pripalo podmreži 10.0.0.0/24 u kojoj je smješteno i sučelje elementa Cloud, odnosno MS Loopback adapter. Da bi provjera dostupnosti sučelja ether1 s pozicije naredbenog retka simulacijskog računala bila uspješna, emulirana komponenta Mikrotik usmjeritelja prethodno je upaljena jednostavnim pokretanjem funkcije Start iz pripadajuće kartice opcija alatne trake grafičkog sučelja simulatora. Pokretanjem funkcije Console iz pripadajuće kartice opcija usmjeritelja te kratke automatske inicijalne instalacije CHR operacijskog sustava virtualne komponente, pristupilo se naredbenom sučelju operacijskog sustava unosom predefiniranog korisničkog imena admin i lozinke bez znakova. Unosom i izvršenjem naredbe ip address add add=10.0.0.2/24 int=ether1 inicijalizirano je sučelje ether1 te je uspostavljena funkcionalna veza s MS Loopback adapterom. Provjera ICMP Echo dostupnosti prema MS Loopback adapteru izvršena je iz naredbenog sučelja usmjeritelja naredbom ping 10.0.0.1 te je prikazom na slici 4 pokazana uspješna komunikacija između navedenih elemenata. 552 MIPRO 2019/CE
Slika 4. Prikaz uspješne ICMP Echo provjere s Mikrotik usmjeritelja prema MS Loopback adapteru III. PROŠIRENJE USLUGA LOKALNE MREŽE USPOSTAVOM HTTP POSLUŽITELJA U GNS3 Za potrebe realizacije finalne topologije koja je po iskorištenju hardverskih resursa složenija od prethodno prikazane testne verzije te zahtijeva stabilnost u radu, poslužiteljska GNS3 instanca izdvojena je od aplikacije grafičkog sučelja te je implementirana kao virtualni stroj u VMWare Workstation Player virtualizacijskoj platformi. Navedenim virtualnim strojem omogućeno je posluživanje usluga simulacije gotovog Docker kontejnera Nginx HTTP poslužitelja [7] čime je u okolini GNS3 aplikacije postignuta funkcijska podjela konačne topologije na dvije instance GNS3 poslužitelja. Uz postojeću VMWare Player aplikaciju, na simulacijskom računalu omogućena je i BIOS opcija za podršku hardverskoj virtualizaciji te je dodan VMWare VIX API paket [8] neophodan za posredovanje pristupa virtualnim strojevima ugošćenih u VMWare okruženju putem drugih vanjskih aplikacija. U konkretnom slučaju, VMWare virtualnom stroju GNS3 poslužitelja generiranog na temelju GNS3 OVA datoteke u inačici 2.19 [9] pristup se obavlja iz lokalne inačice grafičkog sučelja GNS3 simulatora, uz prethodno omogućeno svojstvo korištenja GNS3 virtualnog stroja u radu samog simulatora (slika 5). simulirane topologije. Ovime je ujedno kreirano sučelje podrazumijevanog izlaza za sve uređaje iz domene zadane lokalne mreže 192.168.0.0/24, a podrazumijevana ruta navedene podmreže, koja odgovara sučelju elementa Cloud, odnosno Loopback adaptera, definirana je izvršenjem naredbe ip route add gateway 10.0.0.1 prefsrc=10.0.0.2. Provedbom sljedećih izvorišnih i odredišnih pravila vatrozida uspostavljena je funkcionalnost NAT mehanizma pretvorbe privatnih IP adresa iz podmreže 192.168.0.0/24: ip firewall nat add action=dst-nat chain=dstnat dst-address=10.0.0.2 to-address=192.168.0.1 ip firewall nat add action=src-nat chain=srcnat src-address=192.168.0.0/24 toaddress=10.0.0.2. Kontrola valjanosti NAT mehanizma izvršena je provjerom dostupnosti javnog Googleovog DNS poslužitelja 8.8.8.8 ICMP Echo porukom s lokacije naredbenog sučelja Mikrotik usmjeritelja. Slikom 6 prikazana je uspješna provjera dostupnosti poslužitelja čime je ujedno ostvaren otvoren pristup Internetu potreban za ispunjenje lokalne i globalne dostupnosti usluge budućeg HTTP poslužitelja. Slika 6. Prikaz provjere valjanosti NAT mehanizma slanjem ICMP Echo poruke prema poslužitelju 8.8.8.8 Dodatnom konfiguracijom adrese DNS poslužitelja u postavkama Mikrotik usmjeritelja osigurana je dostupnost simboličkih računalnih adresa. Pristupom postavkama kroz grafičko sučelje Mikrotik usmjeritelja uz pomoć uslužne aplikacije Winbox prikazana je i druga realno primjenjiva mogućnost upravljanja i konfiguracije dotičnih uređaja. Tako je IP adresa DNS poslužitelja određena unutar IP grupe postavki pod kategorijom DNS u prozoru s postavkama podešenih na IP adresu javnog Google DNS poslužitelja prema slici 7. Slika 5. Dodavanje instance GNS3 virtualnog poslužitelja u GNS3 simulatoru S obzirom da priključenje HTTP poslužitelja realnom mrežnom okruženju u uvjetima zadane topologije zahtijeva uspostavu funkcionalnosti NAT mehanizma u sustavu Mikrotik usmjeritelja, navedeni je mehanizam realiziran primjenom naredbi u prethodno otvorenom naredbenom sučelju Mikrotik usmjeritelja. Uz prvobitno kreirano vanjsko sučelje usmjeritelja, s dodijeljenom IP adresom 10.0.0.2/24, naredbom ip address add address 192.168.0.1/24 interface=ether2 definirana je IP adresa sučelja ether2 smještenog na strani lokalne mreže MIPRO 2019/CE 553
privatnoj strani usmjeritelja iza sučelja ether2. Funkcija prosljeđivanja HTTP paketa omogućena je konfiguracijom parametara u sklopu grafičkog sučelja Mikrotik usmjeritelja posredstvom aplikacije Winbox. Unutar izborničke grupe IP, pod funkcionalnosti vatrozida definirani su sljedeći parametri pridruženi konfiguracijskoj grupi NAT mehanizma (slika 9): u kartici General: Chain=dstnat;Protocol=6(tcp); Dst. Port=80; In. Interface=ether1 u kartici Action: Action=dst-nat; To Addresses=192.168.0.2; To Ports=80. Slika 7. Prikaz grafičkog sučelja usmjeritelja i definiranje IP adrese DNS poslužitelja Slanjem ICMP Echo poruke iz naredbenog sučelja usmjeritelja prema simboličkoj adresi www.google.com ponovno je provjerena uspješna povezivost prema internetu te ispravan rad dodane funkcionalnost zapisa DNS poslužitelja. A. Uspostava usluge HTTP poslužitelja Usluga HTTP poslužitelja u simuliranoj mrežnoj topologiji realizirana je iskorištenjem podrške za kontejnersku virtualizaciju Linux operacijskog sustava unutar GNS3 okruženja, postavljanjem predefiniranog Docker kontejnera. Tako je za potrebe demonstracije HTTP poslužitelja odabran ajnouri/nginx Docker kontejner, koji je potom implementiran u lokalnoj virtualnoj mreži iza sučelja ether2 Mikrotik usmjeritelja. Automatizirana instalacija slike sustava s predpodešenim Nginx HTTP poslužiteljem realizirana je unosom navedenog naziva github repozitorija Docker kontejnera unutar GNS3 opcije Docker Containers te jednostavnim ubacivanjem novodefinirane komponente iz repozitorija dostupnih uređaja u područje prozora simulacije. Spajanjem uvezene komponente poslužitelja sa sučeljem ether2 Mikrotik usmjeritelja kreirana je konačna topologija mreže nakon čega su provedeni dodatni konfiguracijski postupci kako bi se omogućio pristup sadržajima HTTP poslužitelja s bilo kojeg računala iz mreže u kojoj se nalazi mrežni adapter simulacijskog računala gdje je dotični poslužitelj ugošćen (slika 8). Slika 9. Postavke prosljeđivanja HTTP prometa Dodatnim postupkom isključenja HTTP servisa grafičkog sučelja u postavkama samog usmjeritelja oslobođena su TCP vrata 80 čime su ostvareni uvjeti slobodnog pristupa uslugama Nginx poslužitelja na standardnom broj TCP vrata bez potrebe za dodatnim konfiguriranjem samog poslužitelja. Primjenom usluge portproxy Windows operacijskog sustava simulacijskog računala, omogućena je dostupnost HTTP usluge klijentima iz mreže simulacijskog računala. Svi dolazni TCP paketi s brojem vrata 80 koji dolaze na Ethernet sučelje simulacijskog računala prosljeđuju se vanjskom sučelju ether1 Mikrotik usmjeritelja s adresom 10.0.0.2 sa standardnim TCP brojem vrata 80. Navedeno je ostvareno izvršenjem sljedeće naredbe u naredbenom retku simulacijskog računala pokrenutog pod administratorskim ovlastima: netsh interface portproxy add v4tov4 listenport=80 listenaddress=192.168.88.148 connectaddress=10.0.0.2 connectport=80. Parametrom listenaddress određena je IP adresa mrežnog adaptera simulacijskog računala smještenog u mreži 192.168.88.0/24 te se pozivom web lokacije http://192.168.88.148 s proizvoljnog testnog računala iz prethodno specificirane mreže pokazuje konačan prikaz početne web stranice HTTP servisa. Slika 8. Prikaz komponenata konačne realizacije simulirane mreže Na javnom (vanjskom) sučelju Mikrotik usmjeritelja podešeno je prosljeđivanje HTTP prometa prema poslužitelju koji je prema prikazanoj shemi smješten na 554 MIPRO 2019/CE
mogućih funkcionalnosti. Prikazanim spojem različitih koncepata i tehnologija otvoren je prostor za daljnja proširenja u primjenama učenja, poučavanja te profesionalnih, odnosno stručnih primjena u području računalnih mreža. Slika 10. Prikaz početne stranice uspostavljenog HTTP servisa IV. ZAKLJUČAK Prikazanim postupcima sinteze elemenata i konfiguracijskih postupaka u realnim i virtualnim mrežnih topologijama pružen je obrazac primjene grafičkih mrežnih simulatora izvan isključivo simulacijskog konteksta. Uvođenjem emuliranih hardverskih komponenti stvoreno je sučelje prema fizičkom mrežnom okruženju kao i elementi zaslužni za proširenje samih usluga unutar domene lokalnih mreža. Osim što je pružen konkretan i poučan primjer implementacije jednog tipa mrežnog usmjeritelja s integriranom funkcijom vatrozida, pokazana je i idejna platforma za primjene Docker kontejnera u obliku HTTP poslužitelja kao i drugih LITERATURA [1] J. C. Neumann, "The book of GNS3", No Starch Press, 2015. [2] D. Bombal, J. Duponchelle, "GNS3 getting started", 2018, https://docs.gns3.com/1pvtrw5eab8rjz11maeyd9_aly8kkdh gamb0wpcz8a38/index.html (20.11.2018.) [3] https://www.gns3.com (20.11.2018.) [4] P. Sampath, R. Rao, "Efficient embedded software development using QEMU", 2011, https://static.lwn.net/images/conf/rtlws11/papers/proc/p09.pdf (18.3.2019.) [5] https://docs.gns3.com/appliances/mikrotik-chr.html (20.11.2018.) [6] I. Grgurević, "Analiza Grafičkog mrežnog simulatora GNS3", 2011, http://estudent.fpz.hr/predmeti/r/racunalne_mreze/materijali/primjer_pr ogramskog_zadatka_-_1.pdf (20.11.2018.) [7] https://github.com/ajnouri/nginx (20.11.2018.) [8] https://my.vmware.com/web/vmware/details?downloadgroup=pl AYER-1400-VIX1170&productId=734 (20.11.2018.) [9] https://github.com/gns3/gns3-gui/releases (20.11.2018.) MIPRO 2019/CE 555