Konvence vytváření úloh

Z VirtlabWiki

Verze z 13:33, 24. 8. 2009; zobrazit aktuální verzi
← Starší verze | Novější verze →
Přejít na: navigace, hledání

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.

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

Osobní nástroje