Virtuální laboratoř počítačových sítí
Z VirtlabWiki
(Rozdíly mezi verzemi)
Verze z 18:16, 27. 8. 2008 Gry72 (Diskuse | příspěvky) ← Předchozí porovnání |
Aktuální verze Mil051 (Diskuse | příspěvky) |
||
Řádka 1: | Řádka 1: | ||
- | {|align=right | + | Navrhněte, implementujte a ověřte řešení virtualizační platformy nad OS Linux umožňující efektivně dynamicky vytvářet a odstraňovat instance virtuálních počítačů s různými obrazy operačního systému a počty síťových rozhraní. Zajistěte možnost perzistence souborového systému mezi následnými aktivacemi virtualizované instance OS. |
- | |__TOC__ | + | |
- | |} | + | |
- | [[Image:Eng.gif]] | + | * Analyzujte současné řešení virtualizace PC ve Virtlabu na bázi XEN |
- | ; [[Brief Project Overview in English]] | + | * Analyzujte existující volně dostupná virtualizační řešení (KVM, XEN, VirtualBox, ...) z pohledu požadavků systému Virtlab. |
- | ; [[Media:Prezentace-ENG.pdf|Project Presentation in English]] | + | ** Zohledněte možnost napojení virtualizovaných síťových rozhraní na externí přepínač přes VLAN pomocí trunk linky. |
+ | * Zvolte nejvhodnější řešení a navrhněte jeho návaznost na souborový systém hostitelské platformy | ||
+ | ** zvažte použití LVM apod. | ||
+ | * Implementujte vybrané řešení a poskytněte vhodné ovládací skripty | ||
+ | * Ověřte funkčnost a dynamické charakteristiky implementovaného řešení | ||
- | ==Úvodem== | ||
- | Smyslem projektu '''Virtlab''' je zpřístupnit laboratorní prvky pro praktickou výuku počítačových sítí '''vzdáleně prostřednictvím Internetu'''. Studenti si mohou pomocí WWW rozhraní rezervovat laboratorní prvky na určitý časový interval a následně k nim přistupovat pomocí běžného WWW prohlížeče s podporou Java appletů. Propojení laboratorních prvků se uskuteční '''automaticky podle výběru konkrétní úlohy''' ze souboru nabízených laboratorních úloh, nebo si student může zadat '''svou vlastní topologii'''. | + | Požadavky na software serveru: |
- | [[Image:virtlab_architektura.jpg|thumb|center|500px|Základní architektura]] | + | * podpora "snapshot" obrazu pevného disku pro snadné spouštění vice virtuálních PC se stejnou konfigurací (diskovým obrazem) Standardně se pokaždé spouští vždy "čistý" systém (to co je v obraze disku) |
+ | * možnost snadného spouštění více "druhů" (vice před připravených obrazů) virtuálních PC | ||
+ | * možnost uchovávat konfigurace a opakovaně spouštět uživatelem konfigurované instance | ||
- | Systém nyní dovoluje '''spolupráci více lokalit''' vzájemně sdílejících síťové prvky a realizaci '''virtuálních síťových topologií přes Internet'''. Fyzické síťové prvky nutné pro vytvoření studentem vybrané topologie jsou v době rezervace '''vyhledávány dynamicky''' ve všech lokalitách. | + | * přístup ke konzoli virtuálních PC přes RAW TCP stream (telent na vysokém portu - telnet bez negociace) |
+ | * možnost konfigurace limitů přidělené RAM (ideálně dynamicky při spouštění instance) | ||
+ | * podpora vice síťových rozhraní ve virtuálním PC na straně hypervisoru mapovaných na VLANy | ||
+ | * možnost dynamické specifikace počtu síťových rozhraní v okamžiku spouštění instance (stejný obraz na disku ze kterého systém bootuje s různým počtem sítových rozhraní třeba i v každém virtuálním PC). | ||
+ | * podpora CDP (Cisco Discovery Protocol - existuji implementace pro Linux) v instancích (nutno předávat jednoznačnou identifikaci při startu virtuálního PC) | ||
- | ==Historie== | + | * Administrativní funkce (restart všech instanci, korektní vypínání serveru, automatické spouštění instancí po startu serveru) |
+ | * Snadné přidávání odebírání a aktualizace obrazů, ze kterých se virtuální PC vychází. Návaznosti na uložené konfigurace uživatelů - jejich odstraňování ... | ||
- | Myšlenka virtuální laboratoře se vyvinula z potřeby poskytnout možnost řešení praktických laboratorních úloh studentům kombinovaného studia a také zpřístupnit jinak méně využité a často nákladné laboratorní síťové prvky pro samostatnou práci v časech mimo výuku. | + | * Bezpečnostní aspekty (oddělení instancí navzájem, oddělení síťového provozu, ...) |
- | + | ||
- | Její vznik inicioval [[Uživatel:Gry72|Petr Grygárek]] a postupně ji realizuje s pomocí '''diplomantů''', zejména inženýrského studia, na '''katedře informatiky'''. Základní koncepce systému byla definována '''v roce 2005''' v diplomové práci [[Uživatel:Nem114|Pavla Němce]], který implementoval i základní prototyp aplikace. O rok později prototyp rozšířil formou diplomové práce [[Uživatel:Kub348|Roman Kubín]], který implementoval bezpečnostní prvky, podporu práce studentů s tutorem a v návaznosti na [[ASSSK | Automatizovaný systém správy síťových konfigurací]] (ASSSK a.k.a. Tatabazmek) vyvinutý v rámci diplomové práce Davida Seidla možnost '''definice vlastní topologie''' propojení síťových prvků podle přání studenta. | + | |
- | + | ||
- | Koncepci automatizovaného systému pro spojování topologií poté Petr Grygárek zobecnil, aby bylo možné propojovat '''nejen sériové porty, ale i Ethernet porty včetně trunk spojů'''. Příslušné konfigurační skripty implementoval [[Uživatel:Dvo139|Jiří Dvořák]], čímž vzniklo tzv. '''virtuální spojovací pole'''. Později byla s pomocí [[Uživatel:kuc274|Tomáše Kučery]] do systému implementovány pracovní stanice simulované s použitím instancí '''User Mode Linux''' a za podpory Jiřího Dvořáka také '''virtuální směrovače Cisco 7200''' realizované s použitím projektu '''DynaMIPS/DynaGen'''. [[Uživatel:mil051|Martin Milata]] následně nahradil simulaci stanic pomocí UML použitím '''XEN''', který se ukázal se systémem Virtlab lépe integrovatelný (přístup na konzole pomocí čistého TCP spojení). | + | |
- | + | ||
- | Diplomant Ing. Davida Seidla Petr Sedlář v roce 2007 reimplementoval ASSSK-1 s použitím FPGA (nové zařízení je nazýváno ASSSK-2), což zjednodušilo opakovanou realizaci a řešení výrazně zlevnilo. Ve stejné době dokončili diplomanti [[Uživatel:Vav166|Jan Vavříček]] a [[Uživatel:hra196|Tomáš Hrabálek]] na '''distribuované verzi''' Virtlabu, která umožňuje vytvářet rozsáhlejší topologie z laboratorních prvků umístěných v '''několika lokalitách''' připojených k Internetu a optimálně mapovat fyzické laboratorní prvky pro topologie úloh paralelně požadovaných různými studenty. [[Uživatel:Dvo139|Jiří Dvořák]] reimplementoval podle návrhu Petra Grygárka konfigurační skripty spojovacího pole pro podporu více lokalit, což umožnilo vytváření virtuálních topologií přes Internet pomocí tunelovacího serveru Tomáše Hrabálka. Spojovací systém je nyní nazýván '''distribuovaným virtuálním spojovacím polem''', které dovoluje tunelovat provoz mezi '''segmenty''' virtuálního spojovacího pole umístěnými v jednotlivých lokalitách. | + | |
- | + | ||
- | ==Aktuální vývoj (duben 2008)== | + | |
- | + | ||
- | V současné době je provozována distribuovaná virtální laboratoř mezi VŠB-TU Ostrava a SLU OPF v Karviné. Distribuovaná topologie byla vybudována '''s podporou grantu Fondu rozvoje sdružení Cesnet č. 213/2006'''. | + | |
- | + | ||
- | V. Bortlík v rámci své DP zobecňuje konfigurační skripty distribuovaného virtuálního spojovacího pole a tunelovací server do podoby univerzálního tunelovacího systému - '''heterogenního distribuovaného virtuálního spojovacího pole''', které má za cíl enkapsulovat potenciálně různorodé technologie používané pro spojování laboratorních prvků v jednotlivých lokalitách a sjednotit způsob předávání provozu mezi prvky různých lokalit definicí jednotného formátu enkapsulace rámců tunelovaných přes Internet. Podporováno bude tunelování provozu mezi dvojicemi LAN i WAN portů síťových prvků. | + | |
- | + | ||
- | V návaznosti na vývoj heterogenního distribuovaného virtuálního spojovacího pole momentálně dále pracujeme na řešeních, která umožní přes Internet tunelovat nejen ethernetové, ale i sériové WAN linky laboratorních prvků. Jedná se zejména o vývoj vlastní víceportové synchronní sériové karty do PC s ovladači pro Linux, další rozšíření ASSSK2 a vývoj plně distribuovaného spojovacího pole na bázi převodníků Ethernet-RS232 propojených počítačovou sítí. | + | |
- | + | ||
- | V rámci dokončovaných DP se do systému integruje mechanismus sond pro sledování provozu na libovolné z linek laboratorní topologie (zatím jen Ethernet, později bude zobecněno) a Honeypot server pro simulaci většího množství sítí a služeb. | + | |
- | + | ||
- | '''K vývoji systému mezi sebou rádi uvítáme další spolupracovníky a to i formou diplomových prací (Bc. i Mgr.)''' | + | |
- | + | ||
- | ==[[Vývojový tým]]== | + | |
- | + | ||
- | [[Image:vyvojovy_tym.jpg|thumb|center|600px|Vývojový tým (v ne zcela kompletní sestavě)]] | + | |
- | + | ||
- | ==Kontakty== | + | |
- | + | ||
- | '''Koordinátor vývoje:''' | + | |
- | + | ||
- | e-mail petr''<tecka>''grygarek''<zavinac>''vsb''<tecka>''cz | + | |
- | + | ||
- | tel. +420 59 732 3243 | + | |
- | + | ||
- | '''Celý vývojový tým:''' | + | |
- | + | ||
- | virtlab''<zavinac>''cs''<tecka>''vsb''<tecka>''cz | + |
Aktuální verze
Navrhněte, implementujte a ověřte řešení virtualizační platformy nad OS Linux umožňující efektivně dynamicky vytvářet a odstraňovat instance virtuálních počítačů s různými obrazy operačního systému a počty síťových rozhraní. Zajistěte možnost perzistence souborového systému mezi následnými aktivacemi virtualizované instance OS.
- Analyzujte současné řešení virtualizace PC ve Virtlabu na bázi XEN
- Analyzujte existující volně dostupná virtualizační řešení (KVM, XEN, VirtualBox, ...) z pohledu požadavků systému Virtlab.
- Zohledněte možnost napojení virtualizovaných síťových rozhraní na externí přepínač přes VLAN pomocí trunk linky.
- Zvolte nejvhodnější řešení a navrhněte jeho návaznost na souborový systém hostitelské platformy
- zvažte použití LVM apod.
- Implementujte vybrané řešení a poskytněte vhodné ovládací skripty
- Ověřte funkčnost a dynamické charakteristiky implementovaného řešení
Požadavky na software serveru:
- podpora "snapshot" obrazu pevného disku pro snadné spouštění vice virtuálních PC se stejnou konfigurací (diskovým obrazem) Standardně se pokaždé spouští vždy "čistý" systém (to co je v obraze disku)
- možnost snadného spouštění více "druhů" (vice před připravených obrazů) virtuálních PC
- možnost uchovávat konfigurace a opakovaně spouštět uživatelem konfigurované instance
- přístup ke konzoli virtuálních PC přes RAW TCP stream (telent na vysokém portu - telnet bez negociace)
- možnost konfigurace limitů přidělené RAM (ideálně dynamicky při spouštění instance)
- podpora vice síťových rozhraní ve virtuálním PC na straně hypervisoru mapovaných na VLANy
- možnost dynamické specifikace počtu síťových rozhraní v okamžiku spouštění instance (stejný obraz na disku ze kterého systém bootuje s různým počtem sítových rozhraní třeba i v každém virtuálním PC).
- podpora CDP (Cisco Discovery Protocol - existuji implementace pro Linux) v instancích (nutno předávat jednoznačnou identifikaci při startu virtuálního PC)
- Administrativní funkce (restart všech instanci, korektní vypínání serveru, automatické spouštění instancí po startu serveru)
- Snadné přidávání odebírání a aktualizace obrazů, ze kterých se virtuální PC vychází. Návaznosti na uložené konfigurace uživatelů - jejich odstraňování ...
- Bezpečnostní aspekty (oddělení instancí navzájem, oddělení síťového provozu, ...)