Konvence vytváření úloh
Z VirtlabWiki
Obsah |
Pravidla
- Z důvodu dobré modularity při pedagogickém využití držme pokud možno systém "jedna úloha=jeden problém k procvičení=jeden obrázek topologie".
- Ulohy s vice obrazky topologie/vice zadanimi budou spise specialni pripad.
- Take technicky je vice zadani v ramci jedne ulohy nevhodne i z duvodu nemoznosti vlozit prekonfigurace a cilove konfigurace pro kazdou variantu zadani
- U casove narocnosti uloh s Volitelnymi ulohami uvest samostatne cas na zakladni ulohu a na volitelne casti.
- Z důvodu udržitelnosti při změnách nebudeme stejné soubory použivat ve více úlohách (raději zkopírujeme).
XML úlohy
Balíček úlohy obsahuje topology.xml a popis zabalení úlohy task.xml, které musí být validní proti jejich schématům.
- URL pro topology.rng: https://virtlab.cs.vsb.cz/relax/topology.rng - > topology.xml
- Okaz do SVN topology.rng
- URL pro taskupload.rng: https://virtlab.cs.vsb.cz/relax/taskupload.rng - > task.xml
- Okaz do SVN taskupload.rng
Struktura úlohy
Zatim budeme mit dva typy uloh. Nejcasteji budou pouzivany "klasicke", a'la osvedceny format z RCNA slozky s ulohami s nasledujici strukturou:
- Název (Title)
- Cíl (Goal)
- Čas řešení (Required Time)
- Teoretický základ (Theoretical Background) - text nebo link, VOLITELNE
- Topologie (Topology) - obrazek, primo v hlavnim HTML dokumentu
- Volitelné tabulky s adresami, čísly DLCI, VLAN apod.(Optional Tables)
- Konfigurace (Configuration)
- Test funkce (Function Test)
- Volitelné úlohy (Optional Tasks)
Dale budeme mit ulohy typu case study s volnejsi strukturou; vice obecneho povidani na zacatku, zadny popis konfigurace krok po kroku, zadne vysledne konfigurace - vysledky mohou byt ruzne podle toho, jak k reseni student pristoupi. ---
V obrázcích označovat (Ethernet i Serial) interface symbolicky if1, if2, ..., v textu se na ně takto odkazovat. Nově je možné použít i syntaxe pro automatické přepisování podle aktuálního namapování.
Pokyny k implementaci RCNA úloh do Virtlabu
Popis XHTML úlohy
Obrázky
Pro kreslení obrázků bude použit zásadně editor Dia.
V obrázcích bude využíváno symbolů síťových prvků a'la Cisco z Dia.
Odkaz ze zadání úlohy na obrázek (resp. jakýkoli soubor uložený v databázi Virtlabu):
<img src="download.php?file=atribut_name" alt="Alternativní popis" title="Popis" />
Do obrázků topologie v Dia umí systém Virtlab při dodržení konvencí automaticky doplnit jména fyzických interface prvků namapovaných pro jednotlivou rezervaci. Mapování interface do DIA obrázku
V CSS stylu je úlohy bude "přepínač" umožňující mít v XHTML souborech s úlohou IMG s topologií jednak formou odkazu do Virtlabu realizujícího subsituci dynamicky přidělených jmen interface a současně s tím IMG s odkazem na lokální statický .png soubor ve stejném adresáři pro účely lokálního prohlížení.
* IMG budou jednou ve classu "local" a jednou v classu "virtlab". Změnou stylu se jeden z classu stane neviditelný.
.local {display: none} .virtlab {display: block}
Úlohy s více obrázky / topologiemi / pod-zadáními
- V plne obecnosti studenty mate.
- Primárně systém "jeden problém-jedna úloha".
- U uloh s více topologiemi drzme logiku "jedno zadani na vice moznych topologiich"
- Interpretace časové náročnosti úlohy v úloze s více zadáními: suma časových náročností jednotlivých pod-zadání.
CSS Style
Abychom do HTML se zadanim/postupem konfigurace ulohy nevkladali natvrdo znacky jako Bold nebo Italic, bylo by zasluzne vyrobit styl se znackami pro typicke sekce (jako text konfigurace IOS apod.), ktery by nam umoznil menit vzhled centralne ve stylu. CSS bude na dohodnutem URL a souboru se zadanim/postupem ulohy se na nej budou odkazovat.
URL CSS pro úlohy: https://virtlab.cs.vsb.cz/css/task-design.css - Původní
URL CSS pro úlohy: https://virtlab.cs.vsb.cz/css/task_style.css - Nový
Tvurci uloh by meli pouzit relativni cestu k CSS, aby se zachovala prenositelnost uloh mezi lokalitami: " ./css/task-design.css "
Popis CSS stylu
- značka code se v aplikaci css stylů nechová stejně jako div nebo pre, nepodařilo
se u ni nastavit border a šířku tak jako u ostatnich . Také se neobejde
bez použití
na koncích řádků. Nemůže obsahovat div ale span a podobné html značky ano.
Bylo rozhodnuto použít div a vlastni styl code.
Soubor s předkonfigurací
Pro každý logický prvek element s názvem jménoLogickéhoPrvku, uvnitř elementu kompletní konfigurace (jen potřebné příkazy) pro cut-paste (tak aby se dalo použít pro automatické předkonfigurace). Jména interfaces budou označená dohodnutym #device-name:link-name#, zdůvodu možnosti automatického nahrazení jmény rozhraní namapovanými pro konkrétní rezervaci.
Kategorizace úloh
Predmet(Course): SPS,TPS,CCNA1,CCNA2,CCNA3,CCNA4,CCNP1,CCNP2,CCNP3,CCNP4,NS1,NS2 Tema(Topic): Routing,Switching,Security,Telco Obtiznost(Level): Zakladni(Basic),Stredni(Intermediate),Pokrocila(Advanced) Určení (Purpose): Produkční (Production), Experimentální (Experimental), System Test
Features síťových prvků a jejich interface
Features se definují k síťovým prvkům a jejich jednotlivým portům ve vybaveni.xml a lze je vyžadovat v popisu požadované virtuální topologie. Features prvků vyjadřují např., že OS umí něco speciálního nebo že je v zařízení nějaky speciálni modul apod.
Tvar feature je tento:
typ-feature:hodnota-feature
Dohodnuté řetězce jsou zatím tyto:
<vertex_feature>
Pro PC:
oscap: // Operating System Capability honeypot-XXX - OS obsahuje honeypot zkonfigurovany podle specifikace XXX ...
Pro router (IOS)
ioscap: CA IPSec IPv6 ... module:
Ukázka:
<vertex_detail type="router" name="rg"> <vertex_feature>ioscap:IPv6</vertex_feature> </vertex_detail>
Pro switch
switch-impl:null
- 1-portový switch reálně neexistující (jen je pro něj vyhrazená VLAN, pro všechny porty stejná a přiřazená na trunku port VLMUX1, aby portsetter neshazoval) - rámce negeneruje, přijaté jdou do vzduchu. Podpora tunserveru není nutná
switch-impl:simulated (ZATÍM NEIMPLEMENTOVÁNO)
- víceportový switch reálně neexistující, simulovaný tunserverem (zvláštní modul zajišťuje vzájemné přemosťování mezi porty, provoz ani nejde na vnitřní VLANy k VLMUXům)
Obecné
virtualize:desirable|no|yes
Informuje, zda se má daný prvek virtualizovat, pokud to jde. Zatím zejména pro switche - virtuální nemanageovatelný switch řešený tunserverem. Časem to může řešit instalce Quagga apod.
<edge_feature>
portcap: // Port capability trunk ...
Používané OS prvků
U PC:
<os>Linux-POS-ISP</os> - ISP router pro projekt POS 2008/09 <os>Linux</os> - obecna Linuxova stanice <os>Linux-NS</os> - Linux se servery (RADIUS, TACACS, Syslog, ...) a penetračními nástroji pro NS1+NS2.
Dále budou asi vyalokovány typy OS identifikující různé konfigurace honeypots (pokud bude na výběr jen z jejich předdefinované sady)
U routerů:
Vlastnost "<os>" v definici vybavení (vybaveni.xml) bude u IOSu zapisována jako název image file
U switchů:
Vlastnost "<os>" v definici vybavení (vybaveni.xml) bude u IOSu zapisována jako název image file