Konvence vytváření úloh
Z VirtlabWiki
Verze z 13:40, 28. 11. 2008 Bam015 (Diskuse | příspěvky) (→Soubor s předkonfigurací) ← Předchozí porovnání |
Aktuální verze Gry72 (Diskuse | příspěvky) (→Features síťových prvků a jejich interface) |
||
Řádka 6: | Řádka 6: | ||
* Z důvodu udržitelnosti při změnách nebudeme stejné soubory použivat ve více úlohách (raději zkopírujeme). | * 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 == | + | == XML úlohy: popis archivu a logické topologie úlohy == |
Balíček úlohy obsahuje topology.xml a popis zabalení úlohy task.xml, které musí být validní proti jejich schématům. | Balíček úlohy obsahuje topology.xml a popis zabalení úlohy task.xml, které musí být validní proti jejich schématům. | ||
<ul> | <ul> | ||
Řádka 32: | Řádka 32: | ||
--- | --- | ||
- | V obrázcích označovat (Ethernet i Serial) interface symbolicky if1, if2, ..., v textu se na ně takto odkazovat. | + | 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]] == | == [[Popis XHTML úlohy]] == | ||
Řádka 45: | Řádka 47: | ||
<img src="download.php?file=atribut_name" alt="Alternativní popis" title="Popis" /> | <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]] | + | 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]]. Pokud MIME typ odkazovaného souboru říká, že jde o zdrojový text DIA, je automaticky proveden jeho převod do PNG. Tomu lze zabránit uvedením GET parametru save=1 (v URL za ?, nezáleží na pořadí parametrů) - např. pokud chceme z GUI stáhnout přímo vložený .dia zdrojový text. |
+ | |||
+ | V CSS stylu úlohy je "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í. | ||
+ | Elementy IMG budou jednou ve classu "local" a jednou v classu "virtlab". Změnou stylu se jeden z classu stane neviditelný. Implicitně je v CSS toto: | ||
+ | |||
+ | .local {display: none} | ||
+ | .virtlab {display: block} | ||
+ | |||
+ | |||
+ | Použití v dokumentech: | ||
+ | |||
+ | <img class="local" src=".." /> | ||
+ | <img class="virtlab" src=".." /> | ||
== Úlohy s více obrázky / topologiemi / pod-zadáními == | == Úlohy s více obrázky / topologiemi / pod-zadáními == | ||
Řádka 61: | Řádka 75: | ||
URL CSS pro úlohy: https://virtlab.cs.vsb.cz/css/task_style.css - Nový | 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''' " | |
- | Tvurci uloh by meli pouzit relativni cestu k CSS, aby se zachovala prenositelnost uloh mezi lokalitami: " '''./css/task-design.css''' " | + | |
=== Popis CSS stylu === | === Popis CSS stylu === | ||
Řádka 71: | Řádka 85: | ||
bez použití <br/> na koncích řádků. Nemůže obsahovat div ale span a podobné html značky ano. | bez použití <br/> 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. | Bylo rozhodnuto použít div a vlastni styl code. | ||
+ | |||
+ | === Kompatibilita CSS stylu === | ||
+ | |||
+ | Seznam testovaných platforem a web prohlížečů: | ||
+ | |||
+ | Windows XP | ||
+ | IE 6 | ||
+ | IE 7 | ||
+ | IE 8 | ||
+ | Mozilla Firefox 3 | ||
+ | Opera 9.62 | ||
+ | Safari 3.2.3 | ||
+ | Google Chrome 2.0.172.30 | ||
+ | Linux / Ubuntu 9 | ||
+ | Mozilla Firefox 3 | ||
+ | Mac Os / iMac | ||
+ | Safari | ||
+ | |||
+ | Testování provedeno na testovací úloze Test2 v lokalitě Ostrava. Test2 používá oba dva způsoby zápisu sekce code. | ||
+ | Ve všech prohlížečích se formátování úlohy zobrazuje stejně, až na nepatrné rozdíly v vertikálním odsazení jednotlivých xhtml elementů stránky - jde o rozdíly řádově v jednotkách pixelů, které nijak nenarušují formát úlohy. Safari (iMac) zobrazuje texty tučnější a texty v části code naopak tenčí a světlejší. | ||
+ | |||
+ | Tabulka ze sekce Optional tables je zarovnána vlevo v prohlížečích (IE7, IE 8, Firefox, Opera, Safari, Chrome) a v IE6 a IE7 je zarovnána na střed. | ||
==Soubor s předkonfigurací== | ==Soubor s předkonfigurací== | ||
Řádka 93: | Řádka 129: | ||
Dohodnuté řetězce jsou zatím tyto: | Dohodnuté řetězce jsou zatím tyto: | ||
- | '''<vertex-feature>''' | + | '''<vertex_feature>''' |
Pro PC: | Pro PC: | ||
Řádka 110: | Řádka 146: | ||
module: | module: | ||
- | '''<edge-feature>''' | + | 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 | ||
+ | site:SITENAME | ||
+ | device:DEVNAME@SITENAME | ||
+ | |||
+ | 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 | portcap: // Port capability | ||
trunk | trunk | ||
... | ... | ||
+ | interface:DEVNAME@SITENAME:INTFNAME | ||
== Používané OS prvků == | == Používané OS prvků == | ||
Řádka 122: | Řádka 183: | ||
<os>Linux-POS-ISP</os> - ISP router pro projekt POS 2008/09 | <os>Linux-POS-ISP</os> - ISP router pro projekt POS 2008/09 | ||
<os>Linux</os> - obecna Linuxova stanice | <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ů: | U routerů: | ||
+ | |||
+ | Vlastnost "<os>" v definici vybavení (vybaveni.xml) bude u IOSu zapisována jako název image file | ||
U switchů: | U switchů: | ||
+ | |||
+ | Vlastnost "<os>" v definici vybavení (vybaveni.xml) bude u IOSu zapisována jako název image file |
Aktuální verze
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: popis archivu a logické topologie ú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. Pokud MIME typ odkazovaného souboru říká, že jde o zdrojový text DIA, je automaticky proveden jeho převod do PNG. Tomu lze zabránit uvedením GET parametru save=1 (v URL za ?, nezáleží na pořadí parametrů) - např. pokud chceme z GUI stáhnout přímo vložený .dia zdrojový text.
V CSS stylu úlohy je "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í. Elementy IMG budou jednou ve classu "local" a jednou v classu "virtlab". Změnou stylu se jeden z classu stane neviditelný. Implicitně je v CSS toto:
.local {display: none} .virtlab {display: block}
Použití v dokumentech:
<img class="local" src=".." /> <img class="virtlab" src=".." />
Ú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.
Kompatibilita CSS stylu
Seznam testovaných platforem a web prohlížečů:
Windows XP IE 6 IE 7 IE 8 Mozilla Firefox 3 Opera 9.62 Safari 3.2.3 Google Chrome 2.0.172.30 Linux / Ubuntu 9 Mozilla Firefox 3 Mac Os / iMac Safari
Testování provedeno na testovací úloze Test2 v lokalitě Ostrava. Test2 používá oba dva způsoby zápisu sekce code. Ve všech prohlížečích se formátování úlohy zobrazuje stejně, až na nepatrné rozdíly v vertikálním odsazení jednotlivých xhtml elementů stránky - jde o rozdíly řádově v jednotkách pixelů, které nijak nenarušují formát úlohy. Safari (iMac) zobrazuje texty tučnější a texty v části code naopak tenčí a světlejší.
Tabulka ze sekce Optional tables je zarovnána vlevo v prohlížečích (IE7, IE 8, Firefox, Opera, Safari, Chrome) a v IE6 a IE7 je zarovnána na střed.
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 site:SITENAME device:DEVNAME@SITENAME
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 ... interface:DEVNAME@SITENAME:INTFNAME
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