Menu Zavrieť

Sieťový emulátor Wistar

Autor: Marek Ploštica

Wistar je nástroj, respektíve emulátor počítačových sietí, umožňujúci vytvárať a zdieľať sieťové topológie viacerých virtuálnych strojov. Ide o open-source emulátor, ktorý je možné spustiť na ľubovoľnej distribúcií operačného systému Linux. Bol vyvinutý spoločnosťou Juniper Networks a vydaný pod Apache licenciou. Využíva rozhranie „drag and drop“, vďaka ktorému je prepojenie inštancií do veľkých sietí pomerne jednoduché, avšak na druhej strane odpadá možnosť voľby konkrétneho rozhrania, na ktoré chceme pripojiť istú inštanciu. Vytvorené topológie sa dajú ľubovoľne uložiť, zdieľať, klonovať alebo odstrániť.
Cieľom pri tvorbe tohto nástroja, bolo poskytnúť priestor na experiment s virtuálnymi sieťami a virtuálnymi strojmi s Juniper JunOS tak, aby boli čo najjednoduchšie.
Tento emulátor využíva hardvérovú virtualizáciu KVM (Kernel-based Virtual Machine). Ide o virtualizačný modul, poskytujúci virtualizáciu pomocou hardvéru pre širokú škálu hosťujúcich operačných systémov vrátane Linux-u a Windows-u. Samotná virtualizácia spojená s KVM musí byť priamo podporovaná procesorom hosťujúceho systému, čo v dnešnej dobe nie je až taký problém. V prípade AMD sa táto technológia nazýva AMD-V a pre Intel existuje Intel VT-x.

Jednoduchosť inštalácie

Samotná inštalácia nie je komplikovaná. Vývojári majú vlastnú dokumentáciu, ktorá prebieha neustálou modifikáciou a okrem iného obsahuje aj odkazy na inštaláciu. Nevyhnutnosťou správnej inštalácie je ľubovoľná distribúcia Linuxu (v našom prípade Ubuntu 18.04), knižnica libvirt, KVM a zopár pythonových nástrojov. Po úspešnom stiahnutí a nainštalovaní vytvoríme priečinky potrebné pre fungovanie, nachádzajúce sa v adresári /opt/. Následne pokračujeme klonovaním GitHub repozitára do zvoleného adresára.
Jednotlivé image súbory operačných systémov sa vkladajú do priečinka /opt/wistar/user_images/.
Pre spustenie simulátora môžeme použiť vstavaný web server, prípadne viac robustnejší server ako napríklad Apache alebo nginx. Ďalej už stačí len otvoriť nami zvolený prehliadač, ako napríklad Google Chrome, zadať lokálnu IP (Internet Protocol) adresu spolu s definovaným portom. Po uskutočnení tejto akcie dochádza k zobrazeniu UI (User Interface) simulátora Wistar.

Hardvérové požiadavky emulátora na systém

V analyzovaných zdrojoch k tomuto nástroju a na internete sa nenachádzajú žiadne špecifikované minimálne hardvérové požiadavky pre korektné spustenie tohto simulátora. Dokonca ani spoločnosť Juniper Networks ich nespomína v samotnej prezentácii ohľadom simulátora. Samozrejme simulátor nie je možné rozbehnúť bez KVM virtualizácie a teda mimo linuxový OS.
Po nainštalovaní všetkých potrebných nástrojov ako KVM virtualizácie, pythonových knižníc vrátane naklonovania nástroja z gitu, nám emulátor zobral z HDD (Harddisk) približne 635 MB.
V našom prípade Wistar nevykazoval žiadne záseky pri emulovaní vyššie spomenutej topológie. Pri zapínaní bol procesor vyťažený približne na 80% no po ustálení a konfigurácii neprekročil hodnotu 15%. Operačná pamäť bola v prípade smerovačov Mikrotik a Ubuntu servera nastavená na hodnotu 512 MB. CSR1000v si vyžaduje 4 GB pamäte RAM, ale nám sa podarilo pustiť inštancie tohto typu aj pri nastavení na 2 GB. Pri konfigurácii CSR1000v nám pár krát ukázalo hlásenie o nedostatku pamäti RAM, avšak dalo sa s tým pracovať. Celkovo si vyššie spomenutá topológia zobrala približne 7 GB RAM vrátane nášho OS (okolo 5.5 GB bez rátania OS).
Wistar nevykazoval žiadne záseky ani pri virtualizovaní veľkého počtu uzlov (30 virtuálnych zariadení od spoločnosti Mikrotik, pričom virtuálna operačná pamäť bola nastavená na hodnotu 1GB). Samotné spúšťanie uzlov síce trvalo približne 10 minút, no po rozbehnutí všetkých virtuálnych strojov nenastali žiadne výrazné problémy.

Podpora platforiem

V dokumentácii k Wistar sa uvádzajú podporované platformy ako napríklad smerovače (Juniper vMX 15.1, Juniper vRR), prepínače (Juniper vQFX 15.1), koncové zariadenia (Ubuntu clouding od verzie 14.04, Generic Linux), firewally (Juniper vSRX 15.1) a ďalšie ako napríklad platforma pracujúca s manažovaním sietí (Juniper Junos Space). Wistar taktiež umožňuje spustenie iných virtuálnych strojov pri výbere typu označovaného ako „Other“. Tento typ zabezpečuje podporu image formátov qcow2 a vmdk.


Pri testovaní sme sa stretli s defektom pri platforme od spoločnosti Cisco. Operačný systém (xrv9k, Cisco 7200) od tejto spoločnosti sa nepodarilo spustiť. Avšak po dlhom čakaní (cca 5 minút) sa nakoniec podarilo rozbehnúť CSR1000v. Na druhej strane, podpora pre Juniper zariadenia (vMX 17.3R1, vMX 15.1F) dosahovala pozoruhodné výsledky pri spúšťaní. Pri spájaní uzlov sa vždy pri konfigurácii, napríklad RouterOS či CSR1000v, zobrazilo rozhranie, ktoré je niekde pripojené. Tu sme narazili na problém pri spájaní uzlov virtuálnych strojov od Juniper, pričom sa nezobrazovali pripojené rozhrania, čo znemožňovalo ich konfiguráciu. Testované platformy bežiace na Linuxe nevykazovali žiadne problémy pri používaní a konfigurácii (Ubuntu Cloud Server, TinyCore router). Taktiež test operačného systému RouterOS, od lotyšskej spoločnosti Mikrotik nepreukázal žiadne ťažkosti, či už pri inicializácii alebo samotnom konfigurovaní daných virtuálnych inštancií.
Jednotlivé platformy nemožno aktualizovať prostredníctvom Wistar, čo však nepredstavuje komplikácie pri aktualizácii pomocou UI konkrétnej platformy. Aktualizované a nami upravené inštancie sa ukladajú do adresára /opt/wistar/user_images/instances.
Pri tvorbe nových inštancií je dostupná ponuka o výbere počtu jadier (maximálne 10) a veľkosti operačnej pamäte (maximálne 32768MB). Voľba počtu rozhraní pre inštanciu sa tu nevyskytuje, čím sa však produkcia neznevýhodňuje, pretože počet rozhraní sa dynamicky mení s počtom pripojení ku danej inštancii.

Potreba získať OS virtuálneho zariadenia

Wistar neobsahuje žiadne predinštalované operačné systémy. Z toho dôvodu sa vyžaduje vlastniť konkrétny operačný systém, ktorý chceme spustiť v rámci tohto emulátora.

Podpora režimu klient/server

Wistar je spustiteľný na akejkoľvek distribúcii Linuxu, čo umožňuje aj jeho spustenie na hardvérovo výkonnejšom serveri. Prístup ku jednotlivým zariadeniam je ďalej realizovaný pomocou vzdialeného prístupu, kde do prehliadača zadáme IP adresu servera a definovaný port. Týmto spôsobom môže pracovať na rôznych topológiách viacero používateľov.

Prehľadnosť prostredia simulátora a jednoduchosť jeho ovládania

S Wistar sa stretávame iba v grafickom používateľskom prostredí. Prístup doň začína spustením web servera (či už vstavaného alebo Apache servera) a následným otvorením ľubovoľného prehliadača. Po pripojení sa na lokálnu stránku s definovaným portom sa zobrazia možnosti daného emulátora. Pri testovaní nám slúžili Google Chrome a Mozilla Firefox. Zistili sme, že v oboch prípadoch fungoval Wistar rovnako.

Wistar – používateľské rozhranie

Používateľské prostredie si zakladá na pomerne jednoduchom ovládaní a javí sa ako užívateľsky priateľské a intuitívne. Zo začiatku sa nám predloží voľba zobrazenia nami vytvorených topológií. Hlavné menu tvoria tlačidlá Topologies, Manage Hypervisor, Images a Templates. Topologies umožňuje vytvoriť si novú topológiu, zobraziť už zhotovené topológie, prípadne akúkoľvek importovať. V sekcii Manage Hypervisors sa zobrazia všetky virtualizované stroje, skadiaľ môžeme nad nimi udržiavať istú kontrolu, či už zapínať, vypínať alebo pristupovať ku CLI (Command-line Interface) jednotlivých inštancii. Zložka Images spravuje individuálne images súbory konkrétnych platforiem.
Pridávanie nových virtuálnych strojov je pomerne jednoduché. Stačí zadať názov, typ platformy a cieľovú cestu, kde sa nachádza (/opt/wistar/user_images/) image danej platformy.
Po prepnutí do nami určenej topológie sa zobrazí prehľadné plátno s inštanciami zvolených platforiem. Ako už bolo spomenuté vyššie, pridávanie inštancii je nenáročné. Grafické zobrazenie inštancie závisí od použitého typu. Pre názornú demonštráciu nám poslúži inštancia typu „Other“, ktorá predstavuje smerovač, na rozdiel od Ubuntu Cloud Image, ktorý je zobrazovaný ako koncové zariadenie.


Každú zmenu v topológii je potrebné potvrdiť tlačidlom Re-Deploy v pravej časti emulátora. Čo však nespôsobí nutný reštart topológie po zmene, len nás upozorní, že to máme urobiť vlastnoručne. V ľavej časti rozhrania máme možnosť zapnúť všetky potrebné uzly naraz alebo jednotlivo. To isté platí aj v prípade vypínania.
Wistar neumožňuje zvoliť na aké rozhranie chceme pripojiť konkrétnu inštanciu. Túto operáciu vykonáva automaticky, čiže počet rozhraní sa dynamický mení s počtom pripojení.
Občas sa stalo, že emulátor po spustení viacerých virtuálnych mašín prestal správne pracovať a po kliknutí na nejakú inštanciu, nám ukazovalo klik pár centimetrov vyššie, čo spôsobovalo ovládacie problémy. Taktiež možnosť označenia viacerých objektov a následne príklad vymazanie nie je súčasťou podpory emulátora.

Podpora zo strany vývojárov a komunity

Dalo by sa predpokladať, že keď bol tento emulátor vyvíjaný spoločnosťou Juniper Networks, tak podpora od vývojárov bude na mimoriadne vysokej úrovni. Opak je však pravdou a posledné zmeny v zdrojových súboroch tohto softvéru sa nachádzajú v roku 2019.
Nedá sa povedať, že návody a popis fungovania emulátora, ktoré sa nachádzajú na ich stránke sú neporozumiteľné, napriek tomu samotná aktualizácia dokumentácie patrí k negatívnym článkom tohto riešenia. Podľa stránky sa vraj pracuje na jej vylepšení, nakoľko táto informácia bola ohlásená v roku 2016, nepoznamenali sme zatiaľ žiadne zmeny.
Komunita takisto v tejto oblasti zlyháva. Posledné riešené problémy sa nachádzajú koncom roka 2019 a napríklad pri riešení problémov ohľadom inštalácie a správneho bootovania IOS od spoločnosti Cisco sme nenašli žiadne východisko a nikto túto problematiku pre daný emulátor neriešil. Vo väčšine prípadov sme boli odkázaní sami na seba.

Možnosť prepojenia simulátora s reálnou sieťou

V adresári /opt/wistar/wistar-master/ sa nachádza súbor configuration.py, umožňujúci konfigurovať niektoré základné nastavenia, ako napríklad SSH kľúč, predvolené používateľské meno a heslo pre inštancie a podobne. Nachádza sa tu aj sekcia pre zmenu predvoleného sieťového mosta (ďalej bridge). V prípade zmeny externého bridgu z br0 na virbr0 zabezpečíme prístup do reálnej siete každej vytvorenej inštancie.
Tu však vznikla kolízia v prípade RouterOS, kde ak smerovač nebol pripojený so žiadnym iným zariadením, tak mal prístup do reálnej siete. Ak bol zapojený s inými zariadeniami v topológii, tak už nebolo možné pripojiť sa na internet. Tento problém sa dá vyriešiť manuálnym pridaním externého bridgu priamo z používateľského rozhrania simulátora.

Schopnosti simulátora ako vzdelávacieho nástroja

Wistar je nástroj pre virtualizáciu sieťových zariadení podobný simulátoru GNS3, s tým, že jeho zameranie je primárne určené pre Juniper systémy. To znamená, že by mal mať podporu pre Juniper smerovače, prepínače a firewally. Takže pri vzdelávaní a príprave študentov na Juniper certifikáciu by mal byť nástroj na veľmi slušnej úrovni. Lenže počas testovania sme narazili na chybu ohľadom konfigurácie rozhraní, pričom nebolo možné zistiť použité rozhranie, respektíve ho nikde nezobrazovalo.
Linuxové operačné systémy nepredstavovali žiadne komplikácie s rozbehnutím a konfiguráciou jednotlivých rozhraní a protokolov.
Naproti tomu problémy ďalej nastávajú pri práci s virtuálnymi zariadeniami, ktoré nie sú priamo podporované a sú tu označované ako „Other“. Nami testovaný IOS (Cisco 7200, Cisco 2691) nie je vo formáte QCOW2, a tak nebolo možné ani len nahrať tieto OS do nástroja. Vo všetkých ostatných prípadoch nami testovaných strojov (TinyCore image, Ubuntu 18.04 Cloud image, RouterOS, CSR1000v, XRV9k, vMX 17.3 Olive, vMX 15.1 Olive) nebol žiadny problém. Horšie to bolo v prípade bootovania, kde sa nám nepodarilo rozbehnúť za nijakých okolností IOS od spoločnosti Cisco konkrétne XRV9k.
Na testovanie funkčnosti určitých protokolov sme použili topológiu pozostávajúcu aj z operačného systému RouterOS od spoločnosti Mikrotik. Keďže sa tento operačný systém okrajovo preberá na predmete Počítačové siete 2, tak prišiel ako vhodný kandidát na testovanie. Protokoly ako napríklad IPv6 (Internet Protocol version 6), OSPF a podobné fungovali tak ako mali. Takisto Etherchannel nemal problémy s rozbehnutím.
Horšie to bolo v prípade protokolov ohľadom prepínania. Linuxové jadro blokuje nejaké prepínacie protokoly ako napríklad LLDP (Link Layer Discovery Protocol) alebo STP (Spanning Tree Protocol). Každopádne na internete existuje veľa spôsobov ako upraviť linuxové jadro aby nespôsobovalo problémy v prípade konfigurácie týchto protokolov [6].
Prístup ku jednotlivým zariadeniam je ponúkaný tromi spôsobmi: VNC (Virtual Network Computing) prístup, terminálový prístup a funkcia, ktorá je pomenovaná Linux CLI Automation.
V prípade VNC stačí kliknúť na ikonu, nachádzajúcu sa na pravej strane od konkrétnej inštancie, ktorá spôsobí otvorenie nového okna s daným CLI inštancie. Wistar priamo nepodporuje SSH (Secure Shell) z používateľského rozhrania, ale na jednotlivé stroje sa dá pripojiť z hosťovského počítača. Ďalším spôsobom pripojenia ku inštanciám je použitie #virsh console príkazu na hosťovskom počítači. Poslednou metódou je použitie Linux CLI Automation, ktoré podporujú iba stroje na linuxovej distribúcii. Umožňuje priame zadávanie príkazov cez Wistar UI.

Záverečné zhodnotenie

Z celkového hľadiska by mal Wistar potenciál stať sa vhodným nástrojom pre výučbu, lenže chabá starostlivosť od vývojárov spôsobuje neaktuálnosť a neriešiteľnosť problémov v rámci nástroja.
Z dôvodu nízkych nárokov na hardvér a jednoduchej inštalácie, by sa teoreticky mohol používať na konfigurovanie zariadení od spoločnosti Mikrotik, avšak z komplexného hľadiska nemá význam používať tento nástroj na vzdelávanie v oblasti sieťových technológií. V porovnaní s GNS3, podporujúcim takisto Juniper ako aj Cisco zariadenia, tento emulátor zaostáva.

Rate this post

1 Comment

  1. UpozornenieInštalácia sietového emulátora Wistar - NIL - Network Information Library

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.