Virtlab:Společná část diplomové práce
Z VirtlabWiki
Obsah |
Abstrakt
Smyslem této práce je rozšíření virtuální laboratoře počítačových sítí o možnost propojení více lokalit s umožněním tvorby distribuovaných síťových topologií. Součástí této práce bylo vytvoření programů pro vlastní řešení virtuálního propojení síťových prvků, distribuovaný systém rezervací prostředků a s tím související úpravy a nové funkce ve webovém rozhraní.
Klíčová slova
virtuální síťová laboratoř, Virtlab, distribuovaný systém, uživatelské prostředí
Abstract
(Bude doplněno po schválení české verze.)
Keywords
(Bude doplněno po schválení české verze.)
Seznam použitých zkratek a symbolů
Je potřeba ještě doplnit! IP - Internet Protocol PHP - PHP Hypertext Preprocessor (Professional Home Pages) SQL - Structured Query Language TCP - Transmission Control Protocol UDP - User Datagram Protocol VLAN - Virtual Local Area Network WWW - World Wibe Web
Omezení současné verze Virtlabu
Nejstarším omezením byla pevná fyzická topologie. Jestliže bylo potřeba změnit fyzickou topologii, musel zodpovědný člověk jednotlivé prvky lokality ručně propojit do nově požadované topologie. Tento výrazně omezující faktor se podařilo překonat pomocí ASSSK-1. Toto zařízení dokáže propojovat seriové linky na základě příkazů, které jsou mu předávány. Zapojení určené fyzické topologie, lze tedy jednoduše automatizovat. I když ASSSK-1 dokáže propojovat seriové linky i ethernet, byla pro propojování ethernetu časem použita jiná technika, aby se množství propojitelných linek nesnižovalo – když pro propojování seriových linek nemáme žádné jiné řešení.
Zmíněné propojování ethernetu bylo časem realizováo technikou zvanou Q-in-Q na Cisco přepínačích řady 3550. Tato technika, jak už zkratka napovídá, je založena na technologii 802.1q, která zavádí VLANy. Přidáním 2B dat do hlavičky ethernetového rámce lze identifikovat jednotlivé VLANy. V našem případě se ono přidání provádí ve skutečnosti dvakrát. Jedno označení mohou provádět propojovaná zařízení (musíme jim umožnit se propojovat 802.1q ethernetem), druhá označení provede propojovací-tunelovací zařízení, aby odlišilo jednotlivé toky dat, které odpovídají logickým spojům mezi propojovanými zařízeními.
Pro úplnost je třeba dodat, že musíme tunelovat i protokoly druhé vrstvy ISO modelu (STP, CDP, VTP), aby propojovaná zařízení nepoznala, že jsou propojena pomocí přepínače.
I když byl vyřešen problém automatického zapojování logických topologií, stále bylo třeba vyřešit několik věcí. Jedním z omezujících faktorů, je skutečnost, že v jeden okamžik může ve Virtlabu běžet pouze jedna úloha, i kdyby byl dostatek úloh pro úlohu jinou. Odpovědnost za toto nese popis úlohy, ve které jsou definovány fyzické prvky, které se musejí použít. V popisech úloh se nemluví o logických směrovačích s daným počtem rozhraní, ale o konkretním fyzickém prvku (např.: směrovač označený jako R15). Proto bylo potřeba vymyslet popis topologií na logické úrovni (byl použit formát XML), popsat fyzické prvky lokality (rovněž ve formátu XML), zpracovat informace z těchto dokumentů a následně realizovat namapování jednotlivých logických prvků na prvky fyzické tak, aby byly splněny všechny požadavky topologie.[1]
Dalším omezením současné verze je nemožnost sdílení prvku mezi několika Virtlab lokalitami. V realitě se objevují situace, kdy jedna z Virtlab lokalit zakoupí nějaké nákladné zařízení (konkrétně: VŠB zakoupila několik zařízení Cisco ASA pro výuku bezpečnosti v počítačových sítích), ale ono zařízení nebude plně využíváno. V dobách kdy není používáno v lokalitě, kde je nainstalováno, by jej ale plně využila lokalita jiná, která si vlastní zařízení dovolit nemůže. Tento stav vyústil v nový návrh Virtlabu - přesněji v návrh distribuovaného Virtlabu. Tento nápas s sebou přinesl řadu problémů, které bylo třeba vyřešit.[2]
Distrubuovaný Virtlab
Použitá terminologie [3]
- Lokalita
- Lokalita je jedna lokální, autonomní instance Virtlabu schopná samostatného provozu i spolupráce s jinými lokalitami prostřednictvím připojení k volnému Internetu. Spolupráce spočívá jednak v nabízení svých laboratorních prvků pro fyzické topologie požadované uživateli z jiných lokalit (tím vznikají distribuované topologie pomocí propojovacích tunelů) a jednak v používání laboratorních prvků nabízených jinými lokalitami pro fyzické topologie požadované uživateli vlastní lokality. Lokality jsou pojmenovávány textovými řetězci[4].
- Lokalita obsahuje:
- Laboratorní prvky
- Laboratorní prvky jsou síťové prvky v jednotlivých lokalitách, připojené k lokálnímu segmentu virtuálního spojovacího pole, které jsou k dispozici pro práci studentů na jednotlivých úlohách. Může jít o fyzické síťové prvky nebo prvky simulované (UML, Dynamips). Laboratorní prvky jsou globálně pojmenovávány ve tvaru jmeno@lokalita[4]. Vlastnosti jednotlivých laboratorních prvků jsou popsány v XML.
- Uživatelé
- Uživatelé jsou zaváděni v jednotlivých lokalitách. Mají jména jednoznačná v rámci lokalit. Globálně jednoznačné jméno uživatele má tvar jmeno@lokalita[4]. Uživatelé se autentizují v lokalitě, do které náleží. V rámci lokality mohou být definovány lokální skupiny uživatelů. Přiřazení uživatele požadujícího sestavení úlohy do skupiny uživatelů může ovlivnit práva na výběr prvků při mapování logické topologie úlohy na fyzickou (toto mapování sestavuje mapovací algoritmus běžící v lokalitě uživatele, takže má definice skupin uživatelů k dispozici), nebo další funkce Virtlabu.
- Logická topologie úlohy
- Logická topologie úlohy je popis požadavků na laboratorní prvky požadovaných pro řešení určité úlohy včetně popisu požadavků na jejich vzájemné propojení. Každý laboratorní prvek je v popisu zastoupen jedním logickým laboratorním prvkem. Logická topologie je popsána v XML. [7]
- Fyzická topologie úlohy
- Fyzickou topologií úlohy rozumíme soubor laboratorních prvků-zařízení (i z různých lokalit) namapovaných, algoritmem mapování logické topologie na fyzickou, na jednotlivé logické prvky odpovídající logické topologie úlohy, včetně přiřazení fyzických rozhraní laboratorních prvků ke spojům logické topologie. Fyzická topologie může být distribuovaná, tedy obsahovat laboratorní prvky z různých lokalit a spoje mezi nimi realizovat prostřednictvím propojových tunelů.
- Úloha
- Úlohou rozumíme definici zadání úkolu pro uživatele popisující mimo jiné logickou topologii úlohy. Úloha může dále obsahovat i vzorové řešení v podobě konfigurace jednotlivých zařízení.
- Spuštění úlohy
- Spuštěním úlohy rozumíme v čase vymezené propojení laboratorních prvků pro práci studentů podle požadavků popsaných logickou topologií úlohy. Časový interval sestavení úlohy (timeslot) je chápán obecně a není vázán na žádný fixní časový rastr. Zdrojem logické topologie může být buďto tabulka předdefinovaných úloh nebo GUI (u topologie na přání studenta).
- Timeslot
- Timeslotem je nazýván časový úsek rezervovaný studentem pro řešení určité úlohy. Začátek ani konec není vázán žádným pevným časovým rastrem. Prvních 5 minut timeslotu je vyhrazeno na vymazání předchozí konfigurace z laboratorních prvků použitých v úloze a spojení fyzické topologie, student během nich nemůže přistupovat na laboratorní prvky.
- Virtuální spojovací pole
- Distribuovaný spojovací systém založený na technologii VLAN a tunelování VLAN (802.1q rámců) pomocí UDP (vlastní enkapsulační formát) přes volný Internet. Spojování laboratorních síťových prvků v lokalitách se děje jejich zařazováním do stejných VLAN (příp. VLAN tunelů QinQ při spojování trunků) na přepínačích Cisco 3550, tunely přes Internet jsou zajišťovány vlastním SW – tunelovacím démonem běžícím na tunelovacím serveru.
- Řidící skripty virtuálního spojovacího pole
- Skripty, které na základě konfiguračních souborů a textového popisu propojení požadované fyzické topologie vygenerují konfigurační příkazy pro všechny prvky všech lokálních segmentů virtuálního spojovacího pole (vč. tunelovacích serverů) ve všech lokalitách. Textový popis propojení fyzické topologie obsahuje v jednotlivých řádcích dvojice jmen prvků a jejich rozhraní, které mají být propojeny. Skripty spouští před zahájením úlohy cron na virtlab serveru lokality, jejíž uživatel rezervaci úlohy vyžádal. Konfigurační příkazy budou zaslány do segmentů virtuálních spojovacích poli všech lokalit zúčastněných v distribuované topologii dané úlohy prostřednictvím jejich konfiguračních serverů spojovacího pole.
Hlavní části laboratoře
Rezervační server [8]
Konzolový server [8]
Tunelovací server [8]
Konfigurační server [8]
Webový server [9]
- ↑ Celá tato problematika je částí diplomové práce Jana Vavříčka
- ↑ Celá tato problematika je částí diplomové práce Tomáše Hrabálka
- ↑ Terminologie je výsledkem dlouhodobé diskuze, celého vývojářského týmu, ale přesné ji definoval až Ing.Petr Grygárek Ph.D., jako hlavní vedoucí celého projektu Virtlab.
- ↑ 4,0 4,1 4,2 UTF-8 znaky
- ↑ User Mode Linux - simulace koncových počítačových stanic, ke kterým se student může vzdáleně připojit a konfigurovat je.
- ↑ emulátor procesoru MIPS. Pomocí něj lze na PC simulovat Cisco směrovač 7200.
- ↑ V rámci logické topologie mluvíme o vrcholech (logický prvek topologie) a hranách-linkách (propojení dvou logických prvků). Terminologie byla převzata z Teorie grafů.
- ↑ 8,0 8,1 8,2 8,3 O tomto zařízení pojednává část diplomové práce Tomáše Hrabálka.
- ↑ Toto zařízení je předmětem diplomové práce Jana Vavříčka.