105
Slovenská technická univerzita Fakulta informatiky a informačných technológií Ilkovičova 3, 842 16 Bratislava 4 Simulátor komunikácie v počítačovej sieti Projektová dokumentácia Tím 8. Predmet: Tímový projekt I. Vedúci projektu: Ing. Igor Grellneth, PhD. Členovia tímu: Bc. Roman Broniš Bc. Andrej Kozemčák Bc. Pavel Cséfalvay Bc. Peter Morvay Bc. Lukáš Káčer Bc. Adam Sloboda Akademický rok: 2010/2011

počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

Slovenská technická univerzita Fakulta informatiky a informačných technológií

Ilkovičova 3, 842 16 Bratislava 4

Simulátor komunikácie v

počítačovej sieti

Projektová dokumentácia

Tím 8.

Predmet: Tímový projekt I. Vedúci projektu: Ing. Igor Grellneth, PhD. Členovia tímu: Bc. Roman Broniš Bc. Andrej Kozemčák

Bc. Pavel Cséfalvay Bc. Peter Morvay Bc. Lukáš Káčer Bc. Adam Sloboda

Akademický rok: 2010/2011

Page 2: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

ii

Obsah

0 Úvod ................................................................................................................................................. v

0.1 Účel a rozsah dokumentu ........................................................................................................ vi

0.2 Zadanie projektu ..................................................................................................................... vi

0.3 Slovník pojmov ........................................................................................................................ vi

0.4 Použité skratky ....................................................................................................................... vii

1 Špecifikácia ...................................................................................................................................... 1

1.1 Dokumentačná časť projektu .................................................................................................. 1

1.1.1 Inštalačná príručka .......................................................................................................... 1

1.1.2 Používateľská príručka ..................................................................................................... 1

1.2 Implementačná časť ................................................................................................................ 1

1.2.1 Sfunkčnenie systemu ....................................................................................................... 2

1.2.2 Zjednodušenie inštalácie ................................................................................................. 2

1.3 Rozšírenia ................................................................................................................................ 2

1.3.1 Podpora IPv6 pre PC stanice a laboratórne úlohy ........................................................... 2

1.3.2 Zobrazovanie aktuálneho vyťaženia CPU a RAM ............................................................. 3

1.4 Vyhodnocovanie a testovanie labov ....................................................................................... 3

2 Analýza ............................................................................................................................................ 4

2.1 Analýza aktuálneho stavu projektu VLAB ................................................................................ 4

2.2 Zjednodušenie inštalácie ......................................................................................................... 4

2.3 Rozšírenia ................................................................................................................................ 5

2.3.1 Analýza možností zobrazovania využitia systémových prostriedkov .............................. 5

2.3.2 Podpora IPv6 pre PC stanice a laboratórne úlohy ........................................................... 5

Page 3: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

iii

2.3.3 Vyhodnocovanie a testovanie LABov .............................................................................. 6

2.4 Sfunkčnenie nového VLABu ..................................................................................................... 7

2.4.1 Starý server VLAB ............................................................................................................ 7

2.4.2 Inštalácia nového serveru ................................................................................................ 7

2.5 Dynamips IdlePC hodnoty ....................................................................................................... 9

2.6 Využitie RAM IOSmi ............................................................................................................... 12

2.6.1 Spúšťacie skripty ............................................................................................................ 12

3 Návrh ............................................................................................................................................. 17

3.1 Podpora IPv6 ......................................................................................................................... 18

3.2 Zobrazenie a vyťaženie CPU a RAM ....................................................................................... 18

3.3 Zjednodušenie inštalácie ....................................................................................................... 19

3.4 Sfunkčnenie starého VLABu .................................................................................................. 20

3.5 Vyhodnocovanie labov .......................................................................................................... 21

4 Návrh systému ............................................................................................................................... 22

5 Implementácia ............................................................................................................................... 28

5.1 Výber implementačného jazyka a prostredia ........................................................................ 28

5.2 Opis realizácie ........................................................................................................................ 29

5.2.1 Webové rozhranie ......................................................................................................... 29

5.2.2 Funkčné vyhodnocovanie .............................................................................................. 30

5.2.3 Konfigurácia VLAB ......................................................................................................... 32

5.2.4 Základná konfigurácia .................................................................................................... 32

5.2.5 Testovanie ..................................................................................................................... 36

5.3 Tvorba testovania .................................................................................................................. 43

Page 4: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

iv

5.3.1 Spôsob navrhovania testovania .................................................................................... 49

6 Overenie výsledku ......................................................................................................................... 58

7 Záver .............................................................................................................................................. 59

8 Zdroje............................................................................................................................................. 60

9 Príloha A ........................................................................................................................................ 61

9.1 Vytvorenie testovania pre Basic Router Configuration ......................................................... 61

9.1.1 Zadanie úlohy Basic Router Configuration .................................................................... 61

9.1.2 Vzorová konfigurácia ..................................................................................................... 63

9.1.3 Navrhnuté testovanie .................................................................................................... 64

9.1.4 Výpis pri dosiahnutí plného počtu bodov...................................................................... 64

9.2 Vytvorenie testovania pre Basic BGP configuration .............................................................. 65

9.2.1 Zadanie úlohy Basic BGP configuration ......................................................................... 65

Page 5: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

v

0 Úvod

Informatika je veda, ktorá je síce pomerne mladá, ale v súčastnosti je jedna z najrýchlejšie sa

vyvíjajúcich. K jej najväčším úspechom v súčastnoti patrí hlavne Internet, ktorý je zdrojom

obrovského množstva informácií. Aktuálna vízia udáva, že do roku 2025 bude mať prístup k internetu

približne 5 miliard ľudí. *1]

Internet je postavený na jednej z prvých počítačových komunikačných sietí - ARPANET. Táto

malá vojenská sieť, ktorá prepájala najprv desiatku osobných počítačov, neskôr univerzity, dnes spája

celý svet. To, čo vzniklo ako jednoduché prepojenie počítačov medzi sebou, sa postupne začalo

rozširovať o ďalšie zariadenia, ktoré dokázali rozšíriť dostupnosť pripojenia k sieti ďalej a k viacerím

používateľom. K tomuto účelu sa do siete začali pridávať postupne bridge, huby, switche a routre…

Účelom týchto zariadení nebolo len poskytnúť pripojenie pre viac vzdialených zariadení, ale vytvoriť

systém. Tak vznikla adresácia, siete a podsiete. Internet je svojim spôsobom len jedna veľká sieť

skladajúca sa z obrovského množstva menších sietí. Tieto malé siete majú svoje účely. Niektoré patria

do sféry domácich sietí, firemných sietí, univerzitných sietí, a pod. Na to, aby sme vedeli ako fungujú

takéto siete a vedeli ich spravovať slúžia aj rozličné predmety na našej škole, ktoré sa tématikou

počítačových sietí zaoberajú. *2]

Pri štúdiu sa musí študent oboznámiť s rozličnými protokolmi v počítačových sieťach, typmi

prepojení zariadení, ako funguje v sieťach adresácia a mnoho iného. Konkrétne v predmet Počítačové

siete II. sa študenti oboznamujú so switchmi a routermi, ich funkciou a učia sa ako tieto zariadenia

správne používať. Pre skúšanie konfigurácie týchto zariadení im slúžia prevažne cvičenia, kde majú

študenti k týmto zariadeniam fyzický prístup. Študent má teda len obmedzený čas, ktorý môže využiť

na oboznamovanie sa so zariadeniami. Čo v prípade, ak by študent potreboval viac času na získanie

všetkých potrebných znalostí a zručností?

Je pravda, že študent si môže pre dodatočné štúdium vybaviť prístup do školských laboratórií,

no toto riešenie je zložité, pretože by študent potreboval v laboratóriu kvalifikovaný dozor. Druhou

možnosťou je, že si študent zabezpečí zariadenia vlastné. Toto riešenie je pre študentov finančne

náročné, keďže takéto zariadenia cenovo sú drahé a študent potrebuje minimálne štyri (dva routre a

dva switche) aby si mohol vyskúšať všetky potrebné nastavenia. Tretia možnosť je využiť softvérový

simulátor sieťovej komunikácie. Medzi takéto patrí napríklad Cisco Packet Tracer.[3+ Vďaka tomuto

programu si môže študent vyskúšať rozličné nastavenia zariadení v rozličných sieťových topológiách.

Takéto riešenie by mohlo byť ideálne, no tento produkt je platený. Preto študenti častokrát siahajú

po nelegálnych verziách Packet Tracera. Naskytuje sa riešenie nájsť k programu Packet Tracer zdarma

Page 6: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

vi

dostupný ekvivalent. Takéto riešenie existuje a skladá sa z programov dynamips a dynagen. Tieto

programy sú voľne dostupné, no pre prácu s nimi je potrebné vlastniť IOSy zariadení, ktoré chceme

simulovať. Pre študenta je to ďalšia slepá ulička, keďže IOS si treba zakúpiť a inštalácia samotného

systému je pomerne komplikovaná.

Ako riešenie prišla idea navrhnúť vlastný sieťový simulátor, ktorého používanie by bolo voľne

dostupné študentom. Pod vedením Ing. Grellnetha PhD. tak vznikol projekt VLAB - Virtuálny sieťový

simulátor. [4]

0.1 Účel a rozsah dokumentu

Tento dokument vznikol ako projektová dokumentácia k predmetu Tímový projekt na Fakulte

Informatiky a Informačných technológií, STU Bratislava. Vypracoval ho tím PSS číslo 8 z roku 2010/11.

Je určený najmä pre účely hodnotenia a neskôr ako dokumentácia pre nadviazanie na projekt.

Dokument má zatiaľ rozsah odpovedajúci odovzdávanému projektu počas zimného semestra.

Obsahuje časti špecifikácia požiadaviek, analýza a návrh riešenia pre softvérovú simuláciu sieťovýh

prostriedkov.

0.2 Zadanie projektu

Názov: Simulátor komunikácie v počítačovej sieti

Znenie: Navrhnite a zrealizujte programový systém pre simuláciu sieťovej komunikácie na druhej a

tretej vrstve sieťovej architektúry RM OSI.

Systém má umožňovať:

definovanie topológie simulovanej siete

simuláciu rôznych prepájacích zariadení (napr. prepínač, smerovač, firewall … )

simuláciu komunikácie medzi prepájacími zariadeniami. Funkčnosť navrhnutého systému overte v sieti so simulovanými zariadeniami pomocou komunikácie

medzi koncovými zariadeniami.

0.3 Slovník pojmov

Nasleduje zoznam pojmov, ktoré v slovenskom jazyku neamjú vhodný preklad a tak sme sa

ich v dokumenterozhodli písať v pôvodnom tvare. Tieto výrazy sú v texte uvedené kurzívou.

Pôvodné výrazy sme neskloňovali uvádzame ich v tvare bez pomlčky, použili sme základ slova

Page 7: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

vii

a k nemu sme pridali príponu podľa slovenskej gramatiky. Väčšina týchto skratiek pochádza ešte

z predchádzajucich tímových projektov[7].

Bash je unixový príkazový shell interpreter naprogramovaný v rámci projektu GNU. Názov je

akronym k názvu Bourne again shell - je založený na Bourne Shellu (bsh), čo bol

najpoužívanejší unixový shell

Demo je predvádzací program.

Enterprise v preklade podnik, podniková.

Ethernet je technológia počítačových sietí.

Firewall je sieťové zariadenie a/alebo softvér, ktorého úlohou je oddeliť siete s rôznymi

prístupovými právami a kontrolovať tok dát medzi týmito sieťami.

Flash pamäť celým menom Flash-EEPROM, je zrýchlená elektricky preprogramovateľná

pamäť ROM (Read-Only Memory).

Frame Relay jeho podstata spočíva v zriadení prístupových okruhov a v zriadení virtuálnych

okruhov.

Hypervisor je konzola programu Dynamips.

Proxy je špeciálny typ servera - prostredníka v komunikácii, ktorý sa umiestňuje medzi klienta a

servery, s ktorými komunikuje. Proxy server sa tvári voči klientovi ako server a voči serveru ako

klient.

Root alebo inak administrátor má schopnosť pristupovať ku všetkým súborom v systéme.

Telnet je sieťový komunikačný protokol, ktorý umožňuje pripojenie k inému zariadeniu na sieti.

Wrapper je mechanizmus, ktorý umožňuje riadiť prístup k službám vášho servera na základe

adresy, z ktorej prichádza požiadavka klienta.

0.4 Použité skratky

Kvôli prehľadnosti a účelnosti dokumentu sme sa rozhodli používať všeobecne známe

skratky, Rovnako väčšina z nich pochádza z predchádzajúcich tímových projektov.

ACL Access Control List

ASA Adaptive Security Appliance

CCNA Cisco Certified Network Associate

CCNP Cisco Certified Network Professional

IANA Internet Assigned Numbers Authority

ID Identification Database

IM Instant Messaging

Page 8: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

viii

IOS Internetwork Operating System

IP Internet Protocol

IPv6 Internet Protocol verzia 6

IPS Intrusion Prevention Sensor

IPv6 Internet Protocol version 6

ISDN Integrated Services Digital Network

LAB Laboratórna úloha v prostredí VLABu

LAN Local Area Network

NAT Network Address Translation

OS Operating System

OSPF Open Shortest Path First

PAT Port Address Translation

PNG Portable Network Graphics

RFC Request for Comments

RIP Routing Information Protocol

RM OSI Reference Model Open System Interconnected

RSH - Remote Shell, Vzdialená konzola. Táto skratka označuje nástroj a protokol, pomocou ktorého sa

vykonácajú príkazy na vzdialenom zariadení v sieti pod špecifikovaným používateľom.

SPI Stateful Packet Inspection

SSH Secure Shell

SSL Secure Sockets Layer

TCP Transmission Control Protocol

UDP User Datagram Protocol

UML Unified Modeling Language

VDE Virtual Distributed Ethernet

VLAB Virtual Lab

VLAN Virtual LAN

VPN Virtual Private Network

WAN Wide Area Network

Page 9: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

1

1 Špecifikácia

V časti špecifikácia si povieme aké úlohy sme v rámci projektu odhalili.

1.1 Dokumentačná časť projektu

Projekt VLAB vznikal ako projekt viacerých tímov v predmete Tímový projekt a taktiež boli

určité jeho časti aj náplňou diplómových prác. Tento projekt je veľmi komplexný a rozsiahli, čo má za

následok určitú neprehladnosť pri jeho inštalácii, správe a používaní. Preto sme sa rozhodli

sprehľadniť momentálny stav vytvorením používateľskej dokumentácie a inštalačnej príručky.

1.1.1 Inštalačná príručka Inštalačná príručka má za cieľ oboznámiť správcu s inštaláciou pri nasadzovaní VLABu na nový

stroj, čím mu má zjednodušiť a tak aj zrýchliť celý proces inštalácie. Pôvodná dokumentácia nebola na

dostatočnej úrovni, veľa častí nie je zdokumentovaných, alebo chýba. Pri našej novej inštalácií sa

vyskytol návrh inštaláciu sprehľadniť a zjednodušiť. Zavedením odlišného postupu inštalácie je preto

nutné vytvoriť novú inštalačnú príručku.

1.1.2 Používateľská príručka Používateľská príručka by mala zabezpečiť sprehľadnenie systému ako používateľom z radu

študentov a učiteľov tak aj správcom systému. Preto by sa mala skladať z troch častí navrhnutých pre

daný typ používateľa podľa ich predpokladaných vedomostí a možností práce so systémom.

Používateľská príručka pre študentov musí byť ľahko čitateľná a zrozumiteľná aj pre používateľov,

ktorý majú len základné vedomosti s používaním počítaču. Príručka má obsahovať najmenej

rezervácie, vytváranie a používanie LABov. Časť určená pre učiteľov má obsahovať okrem časti pre

študenta aj rozšírenie v podobe popisu registrácie tried a používateľov. Posledná časť určená pre

správcov systému musí obsahovať ako časti pre študentov a učiteľov, tak aj rozšírenie o rozšírené

možnosti správy rezervácií, používateľov a LABov, tak i výpisy štatistických informácií a logov.

1.2 Implementačná časť

V rámci implementačnej časti si povieme, čo je nutné v rámci projektu naimplementovať.

Page 10: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

2

1.2.1 Sfunkčnenie systemu Systém je hlavne určený pre študentov študujúcich predmety ps2 a WAN technológie.

Samozrejme ho môžu používať aj študenti študujúci program CISCO. Pretože daný systém bol už

dlhšiu dobu nefunkčný budeme ho musieť znovu sfunkčniť aby ho študenti mohli používať.

Sfunkčnenie systému bude veľmi dôležité aj pre nás aby sme systém mohli znovu vyvíjať vylepšovať a

testovať. Zároveň, keď bude systém funkčný budú ho môcť používať aj študenti a budú nám môcť

hlásiť veci, ktoré v systéme nefungujú a mi sa na ne budeme môcť zamerať, zistiť prečo nefungujú a

následne ich opraviť.

1.2.2 Zjednodušenie inštalácie Systém sme prebrali v nefunkčnom stave a preto sme ho museli rozbehať odznova. Pri

rozbiehaní sme zistili, že neexistuje žiaden inštalačný skript a preto budeme musieť všetky súbory na

nový systém nahadzovať ručne. V dokumentácií sa nám podarilo nájsť návod ako program na nový

systém nainštalovať, ale tento návod bol dosť zložitý a miestami bol už zastaraný. Preto súčasný stav

ohľadom inštalácie pokladáme za nevyhovujúci a v budúcnosti ho plánujeme podstatne zjednodušiť.

Chceli by sme vytvoriť jednoduchý skript, ktorý by program nainštaloval za nás a my by sme nemuseli

postupne ručne kopírovať všetky zdrojové kódy na ich miesto a nastavovať oprávnenia pre jednotlivé

súbory.

1.3 Rozšírenia

Našou úlohou je posunuť projekt ďalej. V rámci toho sme by sme chceli implemtovať

nasledujúce rozšírenia.

1.3.1 Podpora IPv6 pre PC stanice a laboratórne úlohy Pre Internet začínajú byť problémom obmedzenia IP protokolu verzie 4 (IPv4). Odhaduje sa,

že v roku 2011 už nebudú ďalšie voľné IP adresy, IANA pridelí posledné bloky piatim regionálnym RIR

(Regional Internet Registry). Každý región, v Európe je to Réseaux IP Européens Network

Coordination Centre (RIPE NCC), dostane po jednom bloku. V ázijsko-pacifickom regióne sa jeden

blok vyčerpá za približne jeden a pol mesiaca.

Úplné vyčerpanie je teda nevyhnutné a rýchlo sa blíži. V poslednej dekáde sa softvér a

operačné systémy prispôsobovali aby boli na IP verzie 6 (IPv6) pripravení. Pre študentov je

Page 11: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

3

nevyhnutné aby sa oboznámili s protokolom, ktorý sa v ďalších rokoch stane dominantným, a mohli si

vyskúšať ako sa s ním pracuje a aké zmeny prináša.

Naším cieľom je rozšíriť VLAB o podporu simulácie IPv6 siete.

1.3.2 Zobrazovanie aktuálneho vyťaženia CPU a RAM VLAB je nástroj na simuláciu sieťovej komunikácie. Táto simulácia je so zvyšujúcim sa počtom

simulovaných zariadení viac náročnejšia na systémové prostriedky - konkrétne procesor a hlavnú

pamäť. Pre správ VLABu je preto častokrát nutné pre správcu pri riešení problémov pripájať sa ku

konzole stroja, na ktorom VLAB beží a príkazmi je schopný si zobraziť aktuálny stav využitia

prostriedkov.

Takéto riešenie má viac nedostatkov. Správca by mal mať znalosti, ako si príkazmi zistiť stav

systému, ale je to zdĺhavá činnosť. Pre zjednodušenie môže použiť aplikáciu ako napríklad top (resp.

htop), ktorá mu zobrazí aktuálny stav využitia prostriedkov. Nevýhodou takéhoto riešenia je, že

zobrazuje iba aktuálny stav a pre správcu je potrebné častokrát si vedieť zobraziť aj staršie údaje, aby

získal predstavu, ako boli systémové prostriedky vyťažené.

Pre riešenie tohoto problému sme sa rozhodli zanalyzovať možnosti merania prostriedkov,

navrhnúť ich používateľsky jednoduchú prezentáciu, ktorú následne implementujeme do VLABu.

1.4 Vyhodnocovanie a testovanie labov

Pre študenta je síce nápomocné, že si môže pomocou VLABu vyskúšať konfigurovanie

sieťových zariadení pre jednotlivé predpripripravené zapojenia podľa rôznych úloh, no určite ho aj

zaujíma, či danú úlohu zvládol. Preto sme sa rozhodli rozšíriť VLAB aj o možnosť automatickej

kontroly študentovej konfigurácie. Pre túto kontrolu je možné zvoliť viacero prístupov, z ktorých

každý ma svoje pre a proti.

Page 12: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

4

2 Analýza

V časti analýza sa bližšie pozrieme na oblasti definované v špecifikácií a samotný VLAB.

Ukážeme si, čo sme už pre rozbehnutie VLABu spravili.

2.1 Analýza aktuálneho stavu projektu VLAB

Projekt VLAB má viacročnú historiu. Ide o projekt, na ktorom už pracovali dva rôzne tímy na

predmete Tímovy projekt. Taktiež na tomto projekte pracoval aj ing. Peter Péti vo svojej diplomovej

práci. Výstupom týchto snažení sú okrem iného 3 dokumenty, v ktorých sú podrobné analýzy

jednotlivých častí VLABu.

V diplomovej práci ing. Pétiho ako aj v dokumentácií tímu č. 9 zo školského roku 2008/2009

sú aj inštalačné príručky VLABu. Aj keď sú tieto dva dokumenty najnovšie, po krátkej analýze sme

však zistili, že niesú najaktuálnejšie nakoľko boli na tomto projekte robené úpravy aj po odovzdaní

týchto dokumentov. Podľa informácií vedúce projektu ing. Grellnetha, PhD. išlo hlavne o opravy

chýb, ktoré boli odhalené pri používaní projektu študentami. Išlo o nezdokumentované úpravy a

existovali iba na nasadenom VLABe na školskom serveri, no počas analýzi nám bolo povedané, že

tento server je už nejakú dobu zrušený, a nebolo jasné či existuje nejaká záloha. Na základe toho sme

sa rozhodli, že rozchodíme VLAB podla inštalačnej príručky z diplomovej práce, nakoľko bola podľa

nás najkvalitnejšia. Táto inštalačná príručka bola pre linuxovú distribúciu Gentoo no my sme sa

rozhodli, že budeme VLAB vyvíjať na linuxovej distribúcií Debian. Po nainštalovaní balíčkov

potrebných pre funkčnosť VLABu sme narazili na niekoľko problémových skutčností. Približne v tom

istom čase sme sa ale dostali k zálohe zo starého servera na ktorm VLAB fungoval čo nám pomohlo

ujasniť si tieto problémy a sfunkčniť VLAB aj s nezdokumentovanými opravami a vylepšeniami.

Nakoľko sme si ako jeden z cieľov dali zjednodušenie celého inštalačného procesu,

nebudeme v tejto analýze (bližšie) rozoberať kroky v ktorých sa popisovaná inštalácia líši od nami

vykonanej inštalácie, keďže predpokladáme, že sa tento postup bude v priebehu nasledujúcich

mesiacov meniť. Uvádzame preto len priebežnú zjednodušenú verziu v časti Sfunkčnenie nového

VLABu.

2.2 Zjednodušenie inštalácie

Projekt VLAB je rozsiahly či už do počtu častí, ktoré sám obsahuje, ale aj do počtu externých

častí od ktorých je závislý. Preto je pochopiteľné, že sú potrebné značné vedomosti a schopnosti na

Page 13: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

5

jeho inštaláciu, resp. zduplikovanie a oddelenie vývojovej a produkčnej inštancie. O tomto fakte sme

sa na začiatku našej práce aj sami presvedčili, a preto by sme tento proces chceli čo možno najviac

zjednodušiť.

2.3 Rozšírenia

V tejto časti si ozrejmíme aké rozšírenia bude nutné spraviť.

2.3.1 Analýza možností zobrazovania využitia systémových prostriedkov Pre správcu VLABu je častokrát potrebné poznať nielen aktuálne využitie systémových

prostriedkov, ale aj aké bolo ich vyťaženie v minulosti.

Obľúbený spôsob zobrazovania aktuálneho vyťaženia prostriedkov je pomocou

aplikácie ps pod OS Linux / UNIX. Pomocou tejto aplikácie je vhodnou modifikáciou prepínačov

a úpravou výstupom možné dostať aktuálne vyťaženie CPU a RAM ako pre procesy konkrétneho

používateľa, tak i pre všetky procesy v systéme.

Samotné aktuálne informácie o stave systému sú síce dôležité, ale z pohľadu správcu by bolo

dobré poznať predošlé vyťaženie systémových prostriedkov. Výstup programu ps je preto potrebné

ukladať s časovým údajom, kedy boli hodnoty získané. Pravideľný zber údajov zabezpečíme napríklad

pravideľným spúšťaním príkazov pomocou programu cron.

Súbor obsahujúci vyťaženie CPU a RAM v konkrétnom čase je možné pomocou programov

vytvárajúcich premeniť do jednoduchej podoby obrázku grafu závislosti vyťaženia CPU a RAM v čase.

Za programy, ktoré dokážu vytvárať grafy na základe údajov spomeniem napríklad RRDTool

a GNUPlot. Výstupy týchto programov sú v podobe obrázkov typu PNG, ktoré je možné ľahko

zobrazovať v používateľskom rozhraní VLABu.

Takýmto spôsobom správca ľahko získa prehľad o stave systému.

2.3.2 Podpora IPv6 pre PC stanice a laboratórne úlohy Systémy Cisco IOS majú zabudovanú podporu IPv6 už niekoľko rokov, čo bolo overené

testovaním aj na verziách IOS použitých vo VLAB.

User-Mode Linux (UML) jadro použité v pôvodnej verzii VLAB bohužiaľ túto podporu nemá.

Jadro je verzie 2.6.23, ktoré má možnosť podpory IPv6, preto bude nutné vytvoriť nové jadro, ktoré

bude mať túto podporu.

Page 14: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

6

Systém, ktorý UML jadro používa, obsahuje iba program ifconfig, ktorý je nedostatočný pre

konfiguráciu IPv6 a často aj IPv4, preto bude nutné tiež pridať nový balíček nástrojov ip.

Pretože sa jedná iba o zmenu verzie IP protokolu, čo sa nedotkne vyšších ani nižších vrstiev,

mali by byť pôvodné laby použiteľné s oboma verziami IP protokolu.

2.3.3 Vyhodnocovanie a testovanie LABov Analýzov sme zistili tieto tri možnosti vyhodnodcovania LABov.

Vyhodnocovanie konfiguračných súborov

Tento prístup navrhuje ako možné rozšírenie aj ing. Péti vo svojej diplomovej práci [8].

Kontrola by spočívala v porovnávaní častí vypracovanej konfigurácie k vzorovému riešeniu. Ide v

princípe o jednoduchý prístup, no pri zložitejších úlohách treba myslieť na to, že správna konfigurácia

nie je iba jedna.

Testovanie pomocou diagnostických sieťových nástrojov

Pri tomto spôsobe testovania sa nekontrolujú samotné konfigurácie zariadení, ale dostupnosť

jednotlivých sieťových prepojení a služieb. Na základe výstupov jednotlivých diacnostických nástrojov

(ako napr. ping alebo netcat) vieme s určitosťou povedať, či je výsledný efekt konfigurácie taký ako sa

v zadaní úlohy očakáva, no už nevieme vyhodnotiť, či sa tento efekt dosiahol spôsobom predpísaným

v zadaní. Napríklad vyhodnotíme, že ǚsetky smerovače smerujú správne, no nevieme či na to

používajú správny protokol. Tento spôsob má však relatývne veľký problém už so samotným

pripojením sa na smerovače a UML, keďže tieto sa môžu nachádzať v rôznych stavoch. Taktiež treba

počítať s tým, že formát výstupu jednotlivých nástrojov nie je všetkých zariadeniach rovnaký.

Analýza na zaklade vypisov zariadeni (show)

Na kontrolu zadani sa daju použiť príkazy (typu show) ktoré IOS obsahuje a primárne slúžia pre

administrátora, aby si vedel po sebe skontrolovať, či systém funguje tak, ako by si predstavoval. IOS

umožňuje pridať do konfigurácie aj takzvané TCL skripty, ktoré sa dajú vhodne využiť na

skombinovanie týchto diagnostických nástrojov. Tieto skripty potom vedia slúžiť či už ako súčasť

automatického vyhodnocovania, alebo ako poloautomatické vyhodnotenie, ktoré si študent bude

môcť spustiť sám na zariadení.

Page 15: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

7

2.4 Sfunkčnenie nového VLABu

2.4.1 Starý server VLAB Pôvodný projekt VLAB bežal pod správou Petra Pétiho. Jednalo sa o virtuálny server

poskytnutý fakultou, ktorý mal nainštalovaný operačný systém Gentoo 2007, ktorý už nie je

podporovaný a bolo by veľmi náročné aktualizovať celý systém. Po zvážení všetkých nevýhod sme sa

rozhodli nainštalovať celý projekt VLAB nanovo s cieľom, aby v budúcnosti nebolo nutné kvôli

aktualizácii znovu podnikať takéto závažné a časovo náročné zmeny.

2.4.2 Inštalácia nového serveru Projekt dostal pridelený nový virtuálny server, ktorý je prístupný na pôvodnej

adrese vlab.fiit.stuba.sk. Na tento server sme nainštalovali operačný systém Debian GNU/Linux.

Vytvorili sme zálohu poslednej verzie softvéru na starom serveri a postupne sme obnovili

webovú aplikáciu, databázu aj samotnú emuláciu. Niektoré časti dostupnej dokumentácie

nezodpovedali súčasnému stavu a preto bolo nutné zistiť pokusmi ako softvér pracuje, ktoré

programy a skripty sú ešte aktuálne a využívané a ktoré je možné bezpečne odstrániť.

Základné závislosti projektu

Projekt závisí na niekoľkých serveroch, ktoré umožňujú spustenie webového rozhrania a

databázy. V zátvorke sú uvedené názvy balíčkov v systéme Debian:

- Apache 2 – webový server (apache2),

- PHP 5 (libapache2-mod-php5),

- MySQL – databázový server (mysql-server).

Závislosti skriptov

V zátvorke sú uvedené názvy balíčkov v systéme Debian:

- Dynamips – emulátor Cisco hardvéru (dynamips),

- Dynagen – nástroj na ovládanie Dynamips (dynagen), - PEMU – emulátor pre Cisco PIX (nemá balíček),

- User-Mode Linux pre emuláciu počítačov v topológiách (uml-utilities a špeciálne skompilovaný),

- Telnet – pre pripojenie konzoly UML (telnetd)

- Virtual Distributed Ethernet – virtuálny prepínač (vde2),

- cpulimit – obmedzenie vyťaženia PEMU (cpulimit),

- sudo – nástroj pre spúšťanie programov a skriptov pod iným užívateľom (sudo).

Závislosti webovej aplikácie

Page 16: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

8

V zátvorke sú uvedené názvy balíčkov v systéme Debian:

- Smarty – šablónovací engine pre jazyk PHP (smarty),

- Smarty compiler.defun-plugin plugin (http://lammfellpuschen.de/compiler.defun/)

- PEAR (PHP Extension and Application Repository) pre

balíčky HTML_QuickForm2 a Image_GraphViz(php-pear).

Reorganizácia projektu

Súbory projektu boli pôvodne rozmiestnené na viacerých miestach. Pre zvýšenie prehľadnosti

sa všetky súvisiace súbory presunuli do podadresárov v adresári /srv. Z webovej aplikácie boli

oddelené adresáre pre dočasné dáta.

/srv/cisco obrazy Cisco softvéru

/srv/uml User-Mode Linux systém

/srv/vlab/web webová aplikácia

/srv/vlab/scripts skripty

/srv/vlab/tmp miesto pre ukladanie dočasných a pracovných súborov pre webovú aplikáciu,

skripty a emulátory

Kvôli zmenám umiestnenia bolo nutné upraviť veľké množstvo zdrojových súborov, ktoré

používali pevné cesty k súborom. Toto prispelo ku konfigurovateľnosti a využijeme to pri inštalácii

oddelenej vývojovej verzie.

Počas reorganizácie boli nájdené súbory, ktoré projekt už nepoužíva, a boli pre zvýšenie

prehľadnosti odstránené.

Vytvorenie nového User-Mode Linux jadra (UML)

Správne vytvorenie User-Mode Linux jadra sa ukázalo ako problematické – jadro zo starého

projektu je nekompatibilné s novým serverom. Podarilo sa nám vytvoriť funkčnú konfiguráciu pre

jadro verzie 2.6.23, akékoľvek novšie jadro (2.6.24, 2.6.32, 2.6.36) nepracovalo správne. Taktiež sa

nám nepodarilo použiť 64-bitové jadro.

S použitím našej konfigurácie je možné bez ďalších úprav skompilovať jadro 2.6.23.17

nasledujúcimi príkazmi (32-bitové i386 jadro je možné skompilovať na amd64 systéme):

make oldconfig ARCH=um SUBARCH=i386

Page 17: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

9

make ARCH=um SUBARCH=i386

Výsledné je veľmi veľké kvôli symbolom, tie je možné odstrániť príkazom:

strip linux

2.5 Dynamips IdlePC hodnoty

Kvôli zmene serveru sa museli odskúšať všetky použité obrazy IOS a zistiť novú hodnotu

IdlePC. Tieto nové sme aktualizovali v konfiguráciách topológií, čo výrazne znížilo zaťaženie

serveru.

IdlePC hodnota – Pri emulovaní sieťových zariadení je nutné, aby sme zefektívnili

vykonávanie jednotlivých inštrukcií procesora. Keďže procesory v zariadeniach sú architektúry MIPS,

ich inštrukcie nie sú kompatibilné s inštrukciami v x86 procesoroch. Aby sme odľahčili x86 procesoru,

musíme ho naučiť, ktoré inštrukcie v procesore zariadenia zodpovedajú takzvaným waiting loop

inštrukciám. Toto sa robí pomocou nastavenie idlePC hodnoty.

Po spustení nového operačného systému zariadenia, emulovací systém nevie rozpoznať

waiting loop a tak jedno zariadenia využíva jedno jadro procesora na 100 %. Po správnom nastavení

idlePC hodnoty vieme dosiahnuť využívanie len niekoľkých percent CPU.

Následne si ukážeme, ako sme hľadali správnu idlePC hodnotu. Pre jednoduchosť sme

overovali naše hypotézy na programe GNS3, ktorý využíva dynamips, dynagen na operačnom

systéme Windows. Keďže správna idlePC hodnota je špecifická pre každú kombináciu OS zariadenia

a hardware emulovacieho systému, toto meranie sme brali len orientačne a najmä z dôvodu overenia

hypotéz. Zvolili sme si 3 rôzne platformy konkrétne Cisco routre 2961, 3640 a 7200.

Na testovanie sme využili notebook Lenovo T60 v konfigurácii 1951WMB s procesorom Intel

T2400 dualcore s 1,83 GHz a 2,5GB RAM.

Použili sme tieto verzie IOSov:

- c7200-jk8s-mz.122-15.T17.bin - c3640-ik9o3s-mz.124-25b.bin - c2691-adventerprisek9-mz.124-25c.bin

Ako prvé sme sa pokúsili nájsť idlePC hodnotu, ktorá pri použití jedného routra využívala

procesor na čo najmenej percent. Podarilo sa nám pri všetkých troch platformách nájsť idlePC

hodnotu, pri ktorej sa využitie procesora s jedným zariadením pohybovala na úrovni 0 - 5 percent.

Aby sme našli ideálnu hodnotu, museli sme zvoliť väčšiu topológiu. Zvolili sme si topológiu

Page 18: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

10

pozostávajúcu z 8 routrov, a na každom routri sme ako simuláciu sieťových protokolov použili

kombináciu 3 routovacích protokolov, konkrétne: RIPv2, EIGRP a OSPFv2.

Obrázok 1.: Jednoduchá topológia

Topológia testovacej siete

Prvá platforma po skonvergovaní využila približne 30 % CPU. Následne sme skúsili použiť

platformu, ktorá je vlajkovou loďou spoločnosti Cisco a to 7200. Samotný dynamips je optimalizovaný

na beh tejto platformy a tak sme očakávali lepšie výsledky. Pri topológii s 8 routrami spotrebovávala

emulácia približne 25 percent CPU. Následne sme skúsili nájsť hranicu, koľko routrov sa dá na našom

hardware emulovať pri neprejavovaní výraznejších latencií. Dostali sme sa na hranicu 16 routrov

s využitím CPU na 80 – 90 %. Pri pridaní ďalšieho routra sme už dosiahli vyťaženie na 100 %. Pre

ilustráciu sme priložili aj obrázok s topológiou, na ktorej sme testovali hraničné možnosti.

Page 19: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

11

Obrázok 2.: Zložitá topológia

Topológia na testovanie hraničných možností

Keďže latencie pingov sú v dynamipse značne väčšie ako pri reálnych zariadeniach rozhodli

sme sa použiť pre meranie odozvy fyzickú prácu so zariadeniami, konkrétne vypisovanie routovacích

tabuliek na zariadenich. Pri topológii so 16 routrami sa aj pri zmene v topológii a teda prepočítavaní

na každom routri dalo s routrami svižne pracovať a neregistrovali sme žiadne výrazné latencie.

Platforma 7200 nepodporuje switchové karty, preto sme otestovali aj tretiu platformu a to

3640. Pri tejto platforme sme dosiahli mierne lepšie výsledky ako pri platforme 2961. Preto sme sa

v ďalšej implementácii rozhodli používať platformy 7200 na emuláciu routrov a 3640 pri emuláciu

switchov.

Najviac sa nám osvedčili tieto idlePC hodnoty:

- c7200-jk8s-mz.122-15.T17.bin - 0x60709500 - c3640-ik9o3s-mz.124-25b.bin - 0x605f1120 - c2691-adventerprisek9-mz.124-25c.bin - 0x60a48d14

Page 20: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

12

2.6 Využitie RAM IOSmi

Pri emulovaní sieťových zariadení je značne limitujúcim faktorom aj veľkosť RAM na PC. Tu je

možné nastavovať rôzne hodnoty pre konkrétnu platformu. Žiaľ množstvo pridelenej RAM sa nedá

znižovať do nekonečna. Ak zmenšíme veľkosť RAM príliš, zariadenie pri bootovaní vypíše chybu,

alebo sa jednoducho zasekne a nenabootuje. Pri všetkých vyššie zmienených IOSoch sme overili plnú

funkčnosť pri veľkosti RAM 128 MB. O samotné spravovanie RAM sa stará proces dynamips-wxp. Na

efektívnejšie využitie viacjadrových systémov sa naraz spustí viacero procesov dynamips-wxp. Pri

spustení 17 IOSov sme mali spustených 7 procesov, ktoré spolu využívali 1111MB RAM. Jeden proces

mal prednastavené používanie maximálne 512 MB RAM. Keďže používame menej, ako 8 jadrové

systémy, skúsili sme nastavit ako limit jedného procesu 768 MB RAM. V takomto prípade sme

používali rovnako 7 procesov a dokonca až 1177 MB RAM. Tu sme overili, že na nastavení limitnej

hodnoty nad 512 MB RAM pre jeden dynamips proces sa jeho správanie nemení. Pri pokusoch sme

zaznamenali využitie jedným procesom najviac 330 MB RAM.

V projekte sme využili znalosti z tejto analýzy a k vybraným IOSom sme už len dopočítali

špecifické idlePC hodnoty.

V ďalšej časti si povieme, aké skripty sú vo VLABe využité.

2.6.1 Spúšťacie skripty Skripty majú za úlohu vytvoriť potrebné podmienky na spustenie programu dynamips a

fungujú nasledujúcim spôsobom.

Cez webové rozhranie spustíme simuláciu. Ako vstupné údaje programu pre pošle tieto

údaje: id simulácie, dĺžku simulácie, login užívateľa a jeho prihlasovacie heslo. Po obdržaní vstupných

údajov sa spustí skript startup.sh, ktorý nájde volný port a vytvorí nového užívateľa a vytvorí preňho

dočasné adresáre, do ktorých bude ukladať svoje súbory.

Po vytvorení nového užívateľského účtu sa spustí skript startup_user.sh, ktorý načíta z

databázy informácie o spustenej simulácií a z nich vytvorí konfiguračný súbor pre program dynamips

a zároveň vytvorí xml súbor, ktorý sa nám zobrazí na webovej stránke. V tomto xml súbore budú

uložené informácie o danej simulácií. Potom skript pustí program dynamips a program pemu.

Nakoniec skript skontroluje, či bol program dynamips spustený a do databázy uloží, že práve

prebieha daná simulácia.

Potom sa spustí skript create_users.sh, ktorý pre každé nami emulované zariadenie vytvorí

užívateľský účet a domovský adresár. Zároveň pre každého užívateľa nastaví cpu limit.

Page 21: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

13

Na záver sa spúšťa skript shutdown.sh. Skript má za úlohy zabiť všetky programy, ktoré sme

spustili počas danej simulácie. Zároveň vymaže všetkých užívateľov, ktorých sme vytvorili pre potrebu

danej simulácie a vymaže ich adresáre. Nakoniec ešte raz skontroluje či zabil všetky programy a ak

nie tak ich zabije ešte raz.

Skript test.sh je špeciálny skript určený na testovanie. Robí to isté čo skript startup.sh, len s

tým rozdielom, že ho spúšťame z konzoly.

Podrobnejší opis skriptov, ako fungujú je opísaný nižšie.

startup.c

Program sa spúšťa cez webovú rozhrania stlačením tlačítka start lab. Úlohou programu je len

spracovať vstupné dáta, ktoré sme mu poslali a spustiť skript startup.sh a predať mu tieto vstupné

dáta. Program dostáva tieto vstupné údaje: id_simulacie, dlzka_simulacie, login, heslo (hash)

env.sh

Sem boli presunuté definície premenných prostredia pre skripty.

header.sh

V skripte header.sh sú inicializované premenné a dve funkcie find_free_port() a

find_start_port(). Úlohou týchto dvoch funkcií je nájsť volný port a obidve fungujú na rovnakom

princípe. Spustia program netstat a skontrolujú, či je nami definovaný port (7500) voľný. Ak nie

pripočítajú k nemu jednotku a znova skontrolujú, či ja daný port volný. Takto funkcie pokračujú kým

nenájdu voľný port.

startup.sh

Skript zavolá funkciu find_start_port() a skontroluje, či mu boli poslané všetky vstupné

parametre. Ak áno vytvorí nového užívateľa pre túto simuláciu a zároveň mu vytvorí aj dočasné

adresáre a nastaví im potrebné oprávnenia.

Potom skontroluje, či mu bol poslaný piaty nepovinný parameter TEST. Ak áno spustí príkaz

/usr/bin/sudo -H -u “$RUN_USER” $STARTUP $START_PORT $CONF_ID FORE

a otestuje návratovú hodnotu. Pričom: $RUN_USER - užívateľ $STARTUP - startup_user.sh

$START_PORT - číslo portu $CONF_ID - id simulácie Ak nebol zadaný piaty nepovinný parameter

spustí iba príkaz:

/usr/bin/sudo -H -u "$RUN_USER" $STARTUP $START_PORT $CONF_ID

Na záver skript startup.sh spúšťa na pozadí ešte tieto skripty create_user.sh a shutdown.sh

startup_user.sh

Skript na začiatku vytvorím dočasné súbory a pripojí sa do databázy, kde hľadá id práve

spustenej simulácie. Potom postupne prechádza výstup, ktorý sme získali z databázy a vytvára z neho

Page 22: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

14

xml súbor, ktorý sa nám zobrazí na stránke. Zároveň vytiahne z databázy aj konfiguračné súbory pre

dynamips, ktorý následne spustí na pozadí. Ak bolo nastavené, aby sa spustil program pemu, tak ho

spustí. Potom pomocou programu netstat skontroluje či program beží na pridelenom porte, ak zistí

že nič na danom porte nebeží, tak počká 20s a ak stále na kontrolovanom porte nič nebeží uvolní

zdroje a ukončí program s chybou. Ak mu bol pridelený port pokračuje ďalej v programe. Pred

koncom skript ešte skontroluje, či bol spustený v testovacom móde a ak áno spustí program

dynagen_wrapper. Na záver skript aktualizuje databázu.

V databáze aktualizuje práve bežiacu simuláciu. Nastaví že je momentálne aktívna, meno

užívateľa a zariadenie, ktoré momentálne simuluje.

create_users.sh

Skript vytvorí pre každé simulované zariadenie jedného užívateľa a zároveň pre každého

užívateľa nastaví maximálny cpu_limit.

shutdown.sh

Skript najprv skontroluje svoje vstupy a potom spustí skript config.sh. Potom sa uspí na čas,

ktorý bol nastavený v premennej dĺžka simulácie. Po prebudení hľadá programy spustené pod daným

užívateľom a vypína ich. Potom zmaže dočasné súbory daného užívateľa a nakoniec vymaže aj

daného užívateľa. Na záver sa na chvíľu uspí a potom sa pokúša ukončiť súbory, ktoré zostali visieť.

config.sh

Skript skontroluje svoje vstupy, či mu boli zadané správne premenné, ak nie tak skonči. Skript

potom prehľadáva dočasný priečinok, kde hľadá informácie o routroch, ktoré potom uloží do

databázy.

pemulimit.sh

Skript nastaví cpu limit pre pemu.

test.sh

Je to pomocný skript, robí to isté, čo skript startup.sh len sa spúšťa z konzoly.

firewall.py

aby script firewall.py fungoval je potrebne aby pred jeho spustením

mal adresár web/ práva na zápis pre vlastníka (alebo aspoň existoval aj keď prázdny súbor

web/.htaccess s takýmito právami) a aby bol script firewall.py spúšťaný s právami tohto používateľa.

Takisto treba zabezpečiť aby tento istý používateľ mohol zapisovať do súboru /etc/ssh/sshd_config a

aby mohol spustiť /etc/init.d/sshd reload. V našom prípade išlo o používateľa www-data.

Script firewall.py sa súšťa vždy buť s parametrom 'on' alebo 'off', inak sa nič nevykoná.

Parameter 'on'

-select

-vygenerovanie .htaccess (akého)

Page 23: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

15

-vytvorenie sshd_config z sshd_config.template

-reload sshd

Parameter 'off'

-vygenerovanie .htaccess (akého)

-vytvorenie sshd_config z sshd_config.template

-reload sshd

Page 24: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

16

Obrázok 3.: Súvislosti spúšťacích skriptov

Page 25: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

17

3 Návrh

Našou základnou ulohou bolo pripraviť VLAB, aby ho mohli používať študenti FIIT. Prvotnou

ideou bolo, že základ VLABu je funkčný, a mi sa hneď zameriame na nami navrhnuté rozšírenia. Hneď

na úvod sme zistili, že samotný VLAB nefunguje a nedá sa do neho korektne prihlásiť, následne sme

zistili, že pôvodný projekt bežiaci na stroji Xena, už nie je aktívny. Z toho dôvodu sme ho museli

vybudovať odznova. Na to sme samozrejme použili dokumentáciu a pôvodné skripty zo starších

tímových projektov a diplomových prác.

Na úvod sme si prácu rozdelili do týchto piatich krokov:

- Získanie nového virtuálneho stroja - Analýza predchádzajúcich verzí VLABu - Analýza možnosti systému Dynamips - Nainštalovanie operačného systému a potrebných aplikácií - Nahratie a nastavenie potrebných skriptov a frontend aplikácií

Jednotlivé body sme si rozdelili podľa skúseností a schopností členov tímu. Toto malo najmä

za účel plne využiť potenciál členov tímu a hlavne rozdeliť prácu, aby sa jednotlý členovia neblokovali.

Samotné zriadenie virtuálneho stroja prbiehalo takmer bezproblémovo, za čo vďačíme

pánovi Steinmüllerovi. Snažili sme sa získať stroj s čo možno najväčším množstvom RAM. Aktuálna

dohoda je taká, že nám dal toľko RAM, koľko mal starý stroj - 2GB, a keď budeme potrebovať viac

pamäte, skúsime sa dohodnúť. Týmto sme splnili bod jeden a mohli sme pokračovať na nadvezujúce

body 4 a 5.

Po získaní vlastného virtuálneho stroja sme mohli začať budovať nový VLAB. Keďže chceme

starý VLAB vylepšiť, našou jedinou šancou, aby sme nemuseli budovať všetko nanovo a teda sa pri

obrovskej snahe dostať sotva na úroveň zo zimy 2009, bolo získať čo možno najviac materiálov

zo starších projektov a zlúčiť ich s našim projektom. Kvôli bezpečnostným politikám na FIIT sme

museli oficiálnou cestou požiadať o prístup na stroj, kde bežal frontend starého VLABu. Tu sme sa

narazili na veľký sklz, keďže bývali administrátor je v zahraničí.

Aby sme splnili pôvodný plán mať funkčný prototyp na konci siedmeho týždňa semestra,

museli sme paralelne spustiť snahu o vlastný VLAB, bez prístupu k pôvodnému. Paralelne sme

nainštalovali operačný systém na virtuálny stroj a na pracovné stanice členov tímu. Tak sme si

rozdelili prácu a na hlavný server sa aplikovali len overené a potrebné zmeny, respektíve aplikácie.

V bode 2 sme sa sústredili na predchádzajúce verzie VLABu. Pri tomto sme využili staršie

dokumentácie a ako je už spomenuté, chceli sme využiť aj pred časom fungujúcu implementáciu.

Keďže vybavenie prístupu do stroja s frontendom VLABu trvalo o veľa dlhšie, ako sme pôvodne

zamýšlali, sprvu sme sa sústredili na sfunkčnenie backendu. Samotné kroky sú popísané v časti

analýza Sfunkčnenie nového VLABu.

Page 26: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

18

V bode 3 sme analyzovali, ako možno zefektívniť chod emulovaných zariadení. Pod tým si

môžme predstaviť minimalizáciu používaných systémových prostriedkov: RAM a CPU. O tomto bližšie

hovorila časť Dynamips idlePC hodnota v analýze.

V ďalších častiach práce sa budeme venovať aplikácií navrhnutých zmien a rozšírení. Ako

priority sme si určili nasledujúce:

3.1 Podpora IPv6

Analýza ukázala, že systémy Cisco IOS majú zabudovanú podporu IPv6 už niekoľko rokov, čo

bolo overené testovaním aj na verziách IOS použitých vo VLAB.

User-Mode Linux (UML) jadro použité v pôvodnej verzii VLAB bohužiaľ túto podporu nemá.

Jadro je verzie 2.6.23, ktoré má možnosť podpory IPv6, preto bude nutné vytvoriť nové jadro, ktoré

bude mať túto podporu.

Systém, ktorý UML jadro používa, obsahuje iba program ifconfig, ktorý je nedostatočný pre

konfiguráciu IPv6 a často aj IPv4, preto bude nutné tiež pridať nový balíček nástrojov ip.

Pretože sa jedná iba o zmenu verzie IP protokolu, čo sa nedotkne vyšších ani nižších vrstiev,

mali by byť pôvodné laby použiteľné s oboma verziami IP protokolu.

3.2 Zobrazenie a vyťaženie CPU a RAM

Ako bolo písané v analýze, na získanie údajov o vyťažení CPU a RAM použijeme program ps.

Vhodnými prepínačmi si upravíme výstup programu, aby zobrazoval údaje o všetkých procesoch

v systéme.

vlab:~$ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 8352 696 ? Ss Nov01 0:05 init [2] root 2 0.0 0.0 0 0 ? S Nov01 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S Nov01 0:00 [migration/0] root 4 0.0 0.0 0 0 ? S Nov01 0:00 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S Nov01 0:00 [watchdog/0] ... postfix 9436 0.0 0.1 39224 2292 ? S 10:12 0:00 pickup -l -t fifo -u -c www-data 14068 0.0 0.3 185072 6788 ? S 06:25 0:00 /usr/sbin/apache2 -k start ...

Page 27: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

19

Z výpisu možno vyčítať, koľko percent prostriedkov (stĺpce %CPU a %MEM) proces (stĺpec

COMMAND) používateľa (stĺpec USER) využíval.

Zo získaných údajov si vieme spočítať celkové vyťaženie procesora a pamäte (v percentách)

jednoduchým súčtom ich využitia jednotlivými procesmi:

vlab:~$ ps aux | awk '{SUMC += $3; SUMM += $4} END {print "CPU:"SUMC"% MEM:"SUMM"%"}' CPU:0% MEM:4.1%

Takto získané údaje možno ukladať do súboru pre neskoršie spracovanie. Týmto spôsobom sa

vytvorí aj databáza predošlých meraní. Samotná postupnosť hodnôt nám však nič nepovie o čase v

ktorom boli namerané. Preto je potrebné okrem údajov o vyťažení prostriedkov uchovávať aj čas

merania. Ten získame pomocou príkazu date. Jeho výstup zmeníme do tvaru Unixového času (počet

sekúnd od 1.1.1970) Výsledný príkaz a výstup bude vyzerať nasledovne:

ps aux | awk '{SUMC += $3; SUMM += $4} END {print systdate +'%s'")" "SUMC" "SUMM}' | tr "\n" " "

| awk '{print $1" "$3" "$4}'

1289416474 32.2 10.7

Po presmerovaní výstupu do súboru (>> cpuram.dat) získame obraz o vyťažení prostriedkov v

čase. Pravidelné spúšťanie zabezpečíme programom cron. Pomocou programu GNUPlot údaje zo

súboru vieme pretransformovať na graf vo formáte PNG. Graf vygenerujeme príkazom:

gnuplot meraci_skript.gs

Formát súboru skriptu meraci_skript.gs bude mať potom obsah:

# # generovany grafu # set terminal png size 1200,250 set output "cpuram.png" set xlabel "Cas" set ylabel "Teplota [C]" set xdata time set timefmt "%s" set format x "%d.%m.%Y\n%H:%M:%S" plot "cpuram.dat" using 1:2 title "CPU" with lines, "cpuram.dat" using 1:3 title "RAM" with lines

3.3 Zjednodušenie inštalácie

Na základe analýzy súčasného stavu sme sa rozhodli toto zjednodušenie realizovať upravením

vnútornej štruktúry VLABu a prerobením samotného postupu inštalácie.

Upravenie vnútornej štruktúry VLABu

Page 28: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

20

Tu by sme chceli oddeliť dáta od zdrojových súborov VLABu, ale aj nahradiť všetky absolútne

cesty s relatívnymi alebo konfigurovateľnými, v závislosti od častí projektu, ktorých sa to týka. Okrem

iného to bude mať za dôsledok, sprehľadnenie systému, ako aj možnosť mať zduplikovaný systém

umiestnený v inej adresárovej štruktúre. Taktiež nám tento bod umožní, že aj keď nebudeme

distribuovať Cisco IOS spolu s VLABom (čo je proti licencií), bude na prvý pohľad jasné kam ho treba

nakopírovať.

Upravenie postupu inštalácie

V súčasnosti síce existuje niekoľko Inštalačných príručiek, no ani jedna nie je aktuálna. Preto by

sme chceli spísať aktuálne závislosti projektu na balíčky linuxovej distribúcie Debian, ako aj na

knižnice ktoré nie sú dostupné ako balíčky. Taktiež je potrebné spísať, ako ktorú čas» nainštalovať,

prípadne čo je potrebné na jej kompiláciu. V neposlednom rade by sme chceli čo do možno najväčšej

miery tento proces zautomatizovať pomocou inštalačného skriptu.

3.4 Sfunkčnenie starého VLABu

Projekt VLAB má už viacročnú históriu. Ide o projekt, na ktorom už pracovali dva rôzne tými na

predmete Tímový projekt. Taktiež na tomto projekte pracoval aj ing. Peter Péti vo svojej diplomovej

práci. Výstupom týchto snažení sú okrem iného 3 dokumenty, v ktorých sú podrobné analýzy

jednotlivých častí VLABu.

V diplomovej práci ing. Pétiho ako aj v dokumentácií tímu č. 9 zo školského roku 2008/2009 sú

aj inštalačné príručky VLABu. Aj keď sú tieto dva dokumenty najnovšie, po krátkej analýze sme však

zistili, že nie sú najaktuálnejšie nakoľko boli na tomto projekte robené úpravy aj po odovzdaní týchto

dokumentov. Podľa informácií vedúce projektu ing. Grellnetha, PhD. išlo hlavne o opravy chýb, ktoré

boli odhalené pri používaní projektu študentami. Išlo o nezdokumentované úpravy a existovali iba na

nasadenom VLABe na školskom serveri, no počas analýzy nám bolo povedané, že tento server je už

nejakú dobu zrušený, a nebolo jasné či existuje nejaká záloha. Na základe toho sme sa rozhodli, že

rozchodíme VLAB podľa inštalačnej príručky z diplomovej práce, nakoľko bola podľa nás

najkvalitnejšia. Táto inštalačná príručka bola pre linuxovú distribúciu Gentoo no my sme sa rozhodli,

že my budeme VLAB vyvíja na linuxovej distribúcií Debian. Preto sme nemohli použiť postup na

nainštalovanie balíčkov, ktoré projekt VLAB používa, opísaný v Inštalačnej príručke a táto príručka

nám v tejto časti slúžila iba na sprehľadnenie závislostí VLABu. Po nainštalovaní týchto balíčkov sme

však narazili na niekoľko problémov o ktorých sa žiadna z Inhalačných príručiek nezmieňovala. Na

vyriešenie týchto problémov nám nepomohlo ani podrobnejšie preštudovanie všetkých dokumentov,

ktoré naši predchodcovia napísali. Približne v tom istom čase sme sa ale dostali k zálohe zo servera na

Page 29: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

21

ktorom VLAB fungoval v podstatne novšej verzií. Následne sme sa rozhodli, že sa nebudeme snažiť o

sfunkčnenie starej verzie VLABu, ale budeme pracovať iba s verziou ktorá bola na zálohe zo servera.

3.5 Vyhodnocovanie labov

Na základe analýzy sme sa zhodli, že jeden spôsob kontroly a vyhodnocovania nie je

postačujúci, a preto bude vhodné, ak použieme ich kombináciu. Pri všetkých spomínaných spôsoboch

okrem priameho vyhodnocovania konfiguračných súborov je protrebné nejakým spôsobom

komunikovať s emulovanými zariadeniami. Pre toto sa nám ako najvhodnejšie riešenie javí použitie

takzvaných chat skriptov. [5] Tieto nám umožnia riadiť komunikáciu so zariadením, a to tak, že si

vytvoríme stavový automat, v ktorom sa budeme na základe rôznych odpovedí zo strany zariadenia

rozhodovať, aký príkaz mu dáme, respektíve nedáme vykonať. Tento spôsob síce nie je

najjednoduchší, no vieme sa pomocou neho vysporiadať s rôznymi stavmi, v ktorých sa môže

zariadenie nachádzať pred samotným testovaním, alebo v ktorých sa môže ocitnúť počas testovania.

Chat skripty sú implementovnané vo viacerých programovacích a skriptovacích jazykoch a Cisco ich

uvádza ako jednu z možností pre konfiguráciu modemov. [6]

Page 30: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

22

4 Návrh systému

Architektúra systému sa skladá z troch častí, z frontendu, backendu a databázy. Frontend

predstavuje webové rozhranie z ktorého sa ovláda celý VLAB. Webové rozhranie sa skladá zo štyroch

modulov: rezervácia, simulácia, zápočtovkový modul a firewall. Rezervačný modul a simulačný

modul už existovali v starom systéme. Do nového systému sme do implementovali zápočtovkový

modul a firewall modul. Backend tvoria pythonové skripty určené na spúšťanie simulácií a testovania

zápočtoviek. Backend aj fronted sa pripájajú k databáze a ukladajú do nej svoje údaje. Externý klient

sa potom pripojuje k frontendu.

Obrázok 4 Architektúra systému

Na nasledujúcom obrázku je zobrazený model vykonania zápočtovky.

Page 31: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

23

Obrázok 5 Vykonanie zápočtovky

Študent

Pre používateľov z rady študentov sme doplnili alebo upravili nasledujúcu funkcionalitu:

Page 32: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

24

Obrázok 6: Use case - študent

Resetnutie hesla – má formu známu z komerčných služieb. Po zabudnutí hesla si používateľ vyžiada

nové, ktoré mu je zaslané na email. S novým heslom sa môže ihneď prihlásiť.

Začiatok testu – študent sa pred zápočtovkou prihlasuje pomocou dočasného hesla. Pre začatie

z testu je nutné spustiť test, po čom sa začne odpočítavať čas priradený na zápočtovku.

Vyhodnotenie konfigurácie – študent si môže po, alebo počas konfigurovania klasickej simulácie, nie

testu, vyhodnotiť svoju konfiguráciu. Toto sa robí pomocou tlačidla Test lab. Študent dostane

informáciu o priebežných bodoch a výpis s testovanými príkazmi.

Písanie testu – študent má možnosť pomocou VLABu písať test. Test môže byť buď zápočtovkový,

skúškový prípadne aj v rámci rôznych súťaží.

Ukončenie testu – po skončení testu študent test ukončiť. To sa deje buď po stlačení tlačidla na to

určeného alebo po vypršaní časového intervalu priradeného na test. Študentovi sa po refreshi

stránky zobrazí výsledok so získanými bodmi a percentami.

Učiteľ

Pre používateľov z rady učiteľov sme doplnili alebo upravili nasledujúcu funkcionalitu:

Page 33: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

25

Obrázok 7:Use case - učiteľ

Import študentov – učiť zo zoznamu študentov vo formáte .csv importuje študentov, týmto

študentom sa priradí jedinečný login, vytvorí im heslá a priradí ich do tried. Existujúcich študentov iba

zaradí do aktuálnej triedy.

Export študentov – Učiteľ pre účely testu exportuje zoznam používateľov s ich dočasnými heslami vo

formáte .pdf – tieto sú určené na vytlačenie a rozdanie pre študentov na začiatku písania testu.

Zobrazenie prihlasovacích údajov – pred testom je možné zobraziť zoznam študentov vo frontende.

Vytvorenie triedy – pre formát importu sme upravili možnosť vytvorenia triedy.

Page 34: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

26

Zaradenie študenta do triedy – pre potrebu importu používateľov sme doplnili možnosť ich

hromadne zaradiť do zvolenej triedy.

Znovunačítanie konfigurácie z testovania – v prípade nespokojnosti študenta s hodnotením z testu, je

možné znovu načítať jeho konfiguráciu a tým sa uistiť o správnosti vyhodnotenia.

Vytvorenie úrovni študentov – počas importu sa pre triedy zvoli okrem zoznamu študentov aj ich

úroveň. Podľa úrovne je umožnený prístup k labov pre jednotlivé úrovne.

Vytvorenie labu – učiteľ môže vytvoriť lab. Toto je možné spraviť priamo z frontendu. Na tieto účely

učiteľ zadá konfiguríciu topológie, znenie zadania a príkazy testovania.

Vytvorenie testovania – Pre účel rýchleho overenia konfigurácie učiteľ vytvorí testovanie. Toto je

použité počas simulácie ako aj pri písaní testu. Práve toto testovanie sa zadáva pri písaní labu.

Nastavenie firewallu – pre zvýšenie bezpečnosti a zabezpečenie prístupu k písaniu testu len na určitú

miestnosť sa pred testom vytvorí pravidlo pre prístup k labu. Toto slúži na zabránenie prípadným

pokusom o písanie zápočtovky z iných ako vyhradených priestorov.

Vytvorenie testu – učiteľ musí po vytvorení testovania vytvoriť test, v ktorom špecifikuje jeho

parametre ako názov testu, dátum konania testu, maximálne získateľné body a zoznam študentov,

ktorý môžu písať test.

Spustenie testu – pre zablokovanie zdrojov na účely testovania je nutné spustiť test.

Ukončenie testu – po skončení testu môže učiteľ pred vypršaním časového limitu ukončiť test. Tento

je v prípade vypršania časového limitu ukončený automaticky. Po skončení testu sa uvolnia

rezervované prostriedky.

Administrátor

Administrátor má oproti učiteľovi len práva vytvoriť užívateľa s administrátorskými právami. Pre

používateľov z rady administrátorov sme doplnili alebo upravili rovnakú funkcionalitu ako pre

užiteľov:

Page 35: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

27

Obrázok 8: Use case - administrátor

Page 36: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

28

5 Implementácia

5.1 Výber implementačného jazyka a prostredia

Projekt pozostáva z dvoch častí z frontendu a backendu. Pôvodná časť frontendu bola

implementovaná v php. Pretože frontend predstavuje webové rozhranie rozhodli sme sa ďalej

používať php ako implementačný jazyk pre frontend.

Backend bol pôvodne implementovaný v bash skriptoch. Tieto skripty sa nám zdali

nevyhovujúce a neprehladné, preto sme sa rozhodli celý backend prepísať do jazyka Python. Týmto

sme podľa nás zvýšili prehľadnosť riešenia. Pre Python sme sa rozhodli hlavne pre jeho výhody pri

práci s textom. Túto jeho vlastnosť sme využili hlavne pri vyhodnocovaní textových reťazcov z

konfigurácie smerovačov.

Page 37: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

29

5.2 Opis realizácie

V nasledujúcich častiach si popíšeme, čo všetko sme spravili počas implementácie.

5.2.1 Webové rozhranie

Vylepšili sme systém rezervácií vlabu. Pôvodný systém, bol navrhnutý tak, že užívateľ si

mohol rezervovať vlab vždy len hodinu dopredu. Ak si užívateľ chcel rezervovať aktuálnu hodinu

mohol využiť už existujúcu funkciu v systéme, pomocou ktorej si mohol rezervovať aktuálne bežiacu

hodinu. Nevýhodou tohto riešenia bolo to, že mal na prácu k dispozícií len aktuálnu hodinu. Toto

riešenie bolo dosť obmedzujúce, lebo ak sa užívateľ napr. prihlásil do systému o pol druhej a zistil, že

na daný deň si nikto nič nerezervoval tak mal na výber dve možnosti: buď počkať pol hodinu do celej

hodiny, alebo si rezervovať aktuálnu hodinu pričom po polhodine by sa mu simulácia automaticky

zrušila. Toto obmedzenie sme odstránili a upravili tak, že teraz si užívateľ môže normálnym

spôsobom rezervovať napr. dve hodiny pričom začiatok rezervácie si bude môcť nastaviť od aktuálne

bežiacej hodiny do jej 50 minúty. Od 51 minúty už nebude mať možnosť si rezervovať aktuálnu

hodiny a bude si môcť za rezervovať až ďalšiu hodinu.

Systém rezervácií sme ešte rozšírili aj o možnosť rezervovať si hodiny na prelome dňa. V pôvodnom

systéme sme si nemohli rezervovať 23 hodinu, čo môže byť pre niektorých študentov dosť

obmedzujúce. Preto sme rezervačný systém vylepšený tak, že ak má napr. užívateľ možnosť

rezervovať si 6 hodín a dal si začiatok rezervácie na 22:00 tak sa mu automaticky sprístupní možnosť

dať si koniec rezervácie na 4:00. Ak ma k dispozícií len 3 hodiny tak sa mu zobrazí nastaviť si koniec

rezervácie len 1:00. Doteraz študent tu možnosť nemal a mohol si rezervovať systém len do polnoci a

kvôli tomu sa mu po polnoci simulácia automaticky vypla.

Kvôli testovania študentov sme potrebovali možnosť naimportovať študentov z externého súboru.

Pôvodný systém už obsahoval možnosť importovania užívateľov s externého súboru, len tento

systém pracoval s iným formátom externého súboru a mi potrebujeme pracovať s formátom, ktorý

nám vrátil systém ais. V aise vyberieme nasledujúci typ zobrazenia: FIIT – Zostava pre učiteľov –

ID,ročník , ktorý ma nasledujúci formát:

;Celé meno s titulmi;ID;Identifikácia štúdia;Roč.

1.;Jožko Mrkvička;595;FIIT B-PKSS den *sem 4, roč 3+;3

Kvôli tomu sme museli implementovať vlastnú verziu importu, ktorá bude vedieť pracovať s

nasledujúcim formátom. Pri importovaní musíme ešte dodatočne nastaviť 4 parametre a to typ

Page 38: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

30

kódovania, oddeľovací znak, level študenta a kurz študenta. Základné nastavené parametre sú

nasledujúce: typ kódovania – „WINDOWS – 1250“, oddeľovací znak - „;“ , level študenta - „PS2“ a

kurz študenta - „-“. Prvé dve hodnoty sú v systéme napevno nastavené. Ďalšie hodnoty môže užívateľ

v systéme podla potreby meniť. Najdôležitejšia hodnota je kurz študenta lebo podľa tejto hodnoty sa

filtrujú študenti na zápočtovku. Systém automaticky pri importe vygeneruje prihlasovacie meno,

heslo a email daného študenta. Vygenerované údaje majú nasledujúci tvar:

Meno heslo email

595_mrkvicka mj595 [email protected]

Heslo sa generuje nasledujúcim spôsobom. Prvé písmeno z priezviska, mena a ID číslo študenta.

Heslo ma naschvál taký ľahký tvar aby sa študent vedel bez problémov pri prvom prihlásení prihlásiť a

mohol si ho podla vlastného uváženia bez problémov zmeniť. Hesla sa potom pre každú zápočtovú

písomku generujú osobitne, podrobnejšie je to vysvetlené v inej časti dokumentu. Ak užívateľ

zabudne svoje heslo má možnosť automatický si ho pre poslať na mail. Pretože heslá sú v databáze

šifrované tak nepoznáme pôvodné heslá. Preto keď užívateľ zabudne svoje heslo a rozhodne poslať si

nové na mail tak sa mu automaticky vygeneruje nové heslo, ktoré sa automaticky pošle užívateľovi a

uloží sa do databázy. Možnosť poslať si nové heslo sa užívateľovi zobrazí až po prvom neúspešnom

prihlásení.

Do vlabu sme implementovali ešte jednouché fórum, ktoré môžu využívať učitelia na posielanie

dôležitých správ, alebo tipov pre študentov a študenti ho môžu využiť v prípadoch keď sa budú chcieť

s niekym poradiť.

Frontend pre modul firewall slúži na nastavovanie rozsahu ip adries, ktoré budú blokované. V tomto

module môžeme pridávať rozsahy ip adries ktoré budú blokované pričom pri pridávaný nových ip

adries sa automaticky skontroluje či vložená ip adresa je platná. Ak vkladaná ip adresa nebude platná

tak užívateľ bude na to upozornený a daný rozsah ip adries sa neuloží do databázy. Užívateľ má

možnosť si už uložené rozsahy ip adries pozrieť s editovať ich, alebo vymazať z databázy.

5.2.2 Funkčné vyhodnocovanie

Pre kontrolu správneho nakonfigurovania siete ako celku, sú veľmi užitočné diagnostické nástroje ako

napríklad ping pre kontrolovanie stavu liniek alebo stavu samotných sieťových zariadení. Zazívame

toto testovanie “funkčné vyhodnocovanie.” Pre spúšťanie jednotlivých diagnostických nástrojov je

potrebné mať prístup k spusteným nakonfigurovaným zariadeniam. Pre tento účel sme si vybrali

Page 39: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

31

protokol RSH. Spôsob pripájania k týmto zariadeniam cez protokol RSH je popísaný v kapitole

“Pripojenie k IOS pre testovanie zadaní”.

Vstup

Vstupom pre funkčné vyhodnocovanie je ten istý vstupný súbor ako pri vyhodnocovaní skriptom a

číslo portu na ktorom je testované zariadenie dostupne a z ktorého sa dá vypočítať jeho IP adresa na

ktorej má nakonfigurovaný vzdialený prístup. Riadky ktoré predpisujú funkčné vyhodnocovanie sa

skladajú so šiestich zložiek, čo je rovnaký počet ako pri riadkoch určených pre vyhodnocovanie

skriptom, význam niektorých zložiek je iný:

Č;F;názov;príkaz;popis_výstupu;váha

* Č - číslo riadku/podúlohy - potrebné pre vyhodnotenie komplexnejších úloh

* F - hodnota F určujúca či že sa jedná o funkčné vyhodnocovanie

* názov - názov podúlohy, ktorý sa zobrazí študentovi pri vyhodnotení

* príkaz - píkaz ktorý sa má vykonať, ako napríklad "ping <ip>" alebo "show ip route"

* popis_výstupu - popisu správneho výstup z príkazu. V pripade ak sa popis zkladá z viacerých častí sú

tieto oddelené znakom "," (čiarka)

* váha – ohodnotenie

Najväčšia zmena je v piatej zložke, ktorá popisuje správny výstup z príkazu. Výstup jedného

kontrolného príkazu sa môže skladať z viacerých hodnôt, ktoré chcem skontrolovať. Rozhodli sme sa

túto zložku rozdeliť na viacero častí, ktoré sú navzájom oddelené znakom ”,” (čiarka).

Príklady:

Riadok vstupného súboru predpisujúceho príkaz “ping”:

12;F;ping z R1 na R2;ping 192.168.1.4;1;2

kde sú zaujímavé hlavne posledné tri zložky. Zložka “ping 192.168.1.4” je príkaz ktorý sa má vykonať.

Ďalšia zložka (číslo 1) je popis výstupu, čo pri príkaze ping znamená, že ak sa má vyhodnotiť ako

úspešný, musí byť jeho úspešnosť vyššia ako číslo v tejto zložke. Poslednou zložkou je číslo určujúce

ohodnotenie.

Riadok vstupného súboru predpisujúceho príkaz “show ip route”:

13;F;kontrola EIGRP routovania;show ip route;D,192.168.1.0/24,10.10.10.2;1

Page 40: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

32

sa od predchádzajúceho príkladu líši hlavne v piatej zložke, ktorá popisuje výstup z príkazu. Môžeme

vidieť že sa skladá z troch častí, ktoré ako sme uviedli vyššie, sú oddelené čiarkou a na ich poradí

záleží. Tento popis hovorí, že na výstupe má byť záznam o ceste do sieti “192.168.1.0/24” naučenej

cez EIGRP (“D”) a pakety do tejto siete sa smerujú cez uzol “10.10.10.2”.

5.2.3 Konfigurácia VLAB

Konfigurácia skriptov VLABu je uložená vo formáte INI v týchto súboroch:

env.ini – obsahuje informácie o SQL databáze a prevážne cesty k dôležitým adresárom a programom,

cisco.ini – obsahuje nastavenia použité v nastaveniach topológie.

Webovú časť VLABu je možné konfigurovať pomocou súborov v adresári web/etc.

Syntax používaná v INI súboroch

Na riadku je možné definovať hodnoty vo formáte názov=hodnota. Takto definovanú konštantu je

možné použiť v iných definíciách pomocou zápisu %(názov)s, ktorý bude nahradený aktuálnou

hodnotou.

Riadky začínajúce mriežkou # sú komentáre a sú ignorované.

5.2.4 Základná konfigurácia

Väčšina nastavení v súbore env.ini nie je potrebné meniť, najdôležitejšie je nastavenie

databázy a niektorých ciest k dôležitým adresárom.

Tieto nastavenia umožňujú spustiť viacero nezávislých inštancií VLAB na jednom serveri, čo

bolo overené aj počas vývoja, keď bola nezávisle prevádzkovaná stabilná a vývojová verzia. Súbor

env.ini by mal začína deklaráciou sekcie *DEFAULT+, pretože hodnoty z nej môžu byť potom použité v

inom INI súbore.

Dôležité nastavenia:

MYSQL_USER – prihlasovacie meno do databázy

MYSQL_PASS – heslo do databázy

MYSQL_DB – meno databázy

PREFIX – cesta k inštalácii VLAB

CISCO – cesta k Cisco softvéru

Page 41: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

33

TMP_DIR – cesta k adresáru, kde sa budú ukladať dočasné súbory simulácií

Ďalej je možné upraviť niektoré ďalšie cesty k adresárom, programom či výstupným súborom. Tieto

hodnoty neodporúčame meniť bez podrobnejšieho oboznámenie sa s infraštruktúrou systému VLAB.

Všetky možné nastavenia sú obsiahnuté vo vzorovom súbore env.ini.dist, ktorý má byť použitý pri

novej inštalácii VLAB a upravený.

Konfigurácia Cisco zariadení v topológiách

Tieto nastavenia sú načítané zo súboru cisco.ini. V tomto súbore je možné používať nastavenia zo

sekcie default súboru env.ini, takže je možné pohodlne meniť umiestnenie a topológie v databáze sa

tak stali nezávislé od adresárovej štruktúry projektu. Okrem cesty k image súboru je možné definovať

aj iné nastavenia topológie, týkajúce sa každého zariadenia používajúce konkrétny image:

[image 3640]

image = %(cisco)s/c3640.bin

ram = 128

rom = 4

nvram = 128

idlepc = 0x60564960

Takýmto spôsobom je možné jednoducho hromadne meniť viaceré nastavenia, obzvlášť užitočné je

nastavenie IdlePC, ktoré je závislé od konkrétneho stroja, na ktorom sa simulácie spúšťajú.

Okrem samotných nastavení image je možné definovať rôzne variácie nastavení pre rôzne zariadenia

s použitím toho istého image. Taktiež je tým zjednodušené testovanie týchto nastavení.

Nastavenie IdlePC sa dá jednoducho vyčítať pomocou telnetu na serveri pomocou dynagen konzoly,

ktorú špeciálne upravený dynagen spúšťa na porte pred prvým zariadením, ak je voľný. Ak tento port

nie je voľný, pokúša sa ho spustiť na portoch za posledným zariadením.

Konfigurácia webového rozhrania

V adresári web/etc/ sú viaceré súbory s nastaveniami.

Dôležitý je súbor db.etc.php, ktorý obsahuje nastavenie databázy:

<?

$etc['db']['server'] = 'localhost';

$etc['db']['user'] = 'vlab';

$etc['db']['password'] = '';

$etc['db']['dbname'] = 'vlab';

Page 42: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

34

?>

Ďalej je nutné upraviť system.etc.php, ktorý obsahuje dôležitú cestu k skriptom:

$etc['scripts'] = '/srv/vlab/scripts';

Pre odhaľovanie chýb pri vývoji je možné tiež nastaviť logovanie (system.etc.php):

$etc['system']['debug_output']['exec'] = '/tmp/debug_exec';

$etc['system']['debug_output']['start'] = '/tmp/debug_start';

$etc['system']['debug_output']['kill'] = '/tmp/debug_kill';

Pripojenie k IOS pre testovanie zadaní

Cisco systémy IOS umožňujú povoliť prístup a vykonávať príkazy prostredníctvom RSH. Pre testovanie

správnosti zadania je nutné, okrem statickej kontroly uloženého konfiguračného súboru startup-

config, vykonať aj kontrolu stavu smerovača alebo test spojení príkazom ping.

Všetky topológie je nutné upraviť a pridať ďalší slot/port, cez ktorý sa budú dať posielať príkazy.

Každý smerovač pred spustením simulácie dostane vygenerovaný konfiguračný súbor, ktorý povolí

RSH a nakonfiguruje port.

Konfiguračný súbor pre smerovač bude približne takýto:

interface e2/0

description NECHYTAJ

ip address 10.29.79.1 255.255.255.0

duplex auto

speed auto

!

ip rcmd rsh-enable

username test privilege 15 nopassword

ip rcmd remote-host test 10.29.79.2 root enable

no ip rcmd domain-lookup

End

Tieto príkazy nakonfigurujú IP adresu podľa portu terminálu a povolia privilegované príkazy

používateľovi root z IP adresy 10.29.79.2. Menia sa len príslušné hodnoty IP adries a taktiež port/slot,

ktorý je použitý na testovanie. Tento port je nutné uviesť v konfigurácii topológie spolu s pridaným

slotom:

slot2 = NM-1E

Page 43: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

35

# e2/0 = test_R1

Spúšťacie skripty sa postarajú o vygenerovanie príslušnej konfigurácie portu e2/0 a vytvorenie a

napojenie virtuálnej sieťovej karty. Druhý riadok je zakomentovaný, pretože to nie je valídne

nastavenie pre emulátor mipsim. Spúšťací skript ho nahradí informáciami o virtuálnej sieťovej karte,

ktorú vytvorí keď získa všetky potrebné informácie pre jej vytvorenie a nastavenie. Toto prepojenie je

docielené podobným spôsobom ako prepojenie emulovaných Cisco zariadení a User-Mode Linux

jadier použitím Virtual Distributed Ethernet. Rozdiel je, že miesto prepojenia navzájom sa jeden

koniec pripojí ako virtuálne sieťové zariadenie tap, ktoré je možné konfigurovať a používať rovnako

ako ozajstnú sieťovú kartu.

Pripojenie k UML Linux pre testovanie zadaní

User-Mode Linux v topológiách je upravený aby pri štarte vytvoril a nakonfiguroval ďalšiu sieťovú

kartu a umožnil pripojenie cez SSH. Toto sa deje automaticky a nie je nutné v topológiách nič meniť,

ako je to v prípade smerovačov.

Tento systém poskytuje namiesto RSH pripojenie cez SSH (program dropbear) a obsahuje kľúč,

pomocou ktorého sa testovací skript môže autentifikovať. SSH použitie hesla zo skriptu neumožňuje.

Prostredníctvom SSH je možne spúšťať akékoľvek potrebné príkazy pre kontrolu zadania, rovnako

ako v prípade IOS systémov.

Schéma IP adries pre testovanie

Všetky zariadenia sú prístupné cez telnet terminál, ktorý je na unikátnom porte, teda tento port

jednoznačne identifikuje spustené zariadenie. Porty môžu byť maximálne z rozsahu 16 bitov, ale pre

pre prehľadnosť sme zvolili schému vytvárania IP adries 10.a.b.1/24 pre zariadenie a 10.a.b.2/24 zo

strany servera. Čísla a a b sú 8-bitové, takže spolu môžu obsiahnuť maximálny možný počet zariadení.

Tieto čísla sa dajú jednoducho získať z čísla portu bitovým posunom (a) alebo aplikovaním masky či

operáciou modulo (b).

Táto schéma nám umožňuje mať v každom momente prístup na všetky zariadenia a ich siete nie sú v

žiadnom konflikte na strane servera.

Testovací LAB

Page 44: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

36

Pre implementáciu akéhokoľvek vyhodnocovania sme si najprv navrhli nový LAB, v ktorom je

úlohou nakonfigurovať zariadenia podľa zadania. Tento LAB sme si vzorovo vyriešili a zanalyzovali

sme možnosti vyhodnocovania konfigurácií routerov. Nami navrhnuté zadanie:

Nakonfigurujte sieť, aby bol možný ping z PC0 na PC1. Na prislúchajúcich interfaceoch

pridajte popisy a IP adresy podľa obrázka a vhodne zvoleného subnetovania. Na rozsubnetovanie

použite nasledujúce údaje: Máte pridelený subnet 192.168.0.0/16, prideľujte najmenšie možné

subnety. Prvú možnú sieť prideľte na segment siete s PC0. Na tejto sieti je nutné mať priestor pre 254

počítačov aj s interfejsom na routri. Druhú voľnú sieť rovnako s 254 počítačmi (aj s interfejsom na

routri) pridelte na časť siete s PC1. Na interfesy routrov prideľte prvú voľnú adresu a na počítače

druhú voľnú IP adresu.

Medzi routrami nastavte sieť 10.10.10.0/30 RT1 s IP .1, RT2 s IP .2 Na linkách k počítačom

nemajú byť posielané update-y z IGP. Ako IGP použite EIGRP s číslom AS 5.

Routre nazvite podľa obrázka. V routovacej tabuľke musí byť cesta do cudzej siete naučená z

EIGRP.

5.2.5 Testovanie

Vyhodnocovanie labov sa vykonáva podľa definovaného súboru príkazov. Každý príkaz musí byť

na samostatnom riadku a výsledok vyhodnotenia je súčet bodov. Vyhodnotenie môže obsahovať aj

operátory (bloky), ktoré určujú spôsob počítania bodov v príkazoch. Operátory je možné do seba

vnárať a tým docieliť rôzne spôsoby vyhodnotenia a pokrytie rôznych situácií ako je napr. znížený

počet bodov za neúplné riešenia.

Body môžu mať aj desatinnú bodku, čo umožňuje vytvoriť testovanie s ľubovoľnou

granularitou bodovania. Súbor testovacích príkazov môže obsahovať prázdne riadky a komentáre

začínajúce mriežkou (”#”) a končiace koncom riadka.

Page 45: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

37

Pre testovanie je nutné aby zariadenia, ktoré chceme testovať, mali v topológii definovaný testovacie

rozhranie.

5.2.5.1 Operátory

Operátory predstavujú bloky, ktoré sa vyhodnocujú v nadradenom operátore/bloku ako jeden príkaz

určitým spôsobom. Ich základná syntax je nasledovná:

operátor ! points=X

# príkazy alebo vnorené operátory (bloky)

end

Výkričníkom sa začína časť, ktorá obsahuje pomenované (keyword) argumenty a je nepovinná.

Operátor ''SUM''

Operátor SUM sčítava body podradených príkazov alebo operátorov a neprijíma teda žiadne

pomenované argumenty, preto je možné ju vynechať. Tento operátor sa implicitne aplikuje na

najvyššej úrovni súboru testovacích príkazov:

sum

# súbor testovacích príkazov, explicitný operátor SUM je nadbytočný

end

Príklad:

sum

conf Router1 hostname Router1 ! points=0.5

conf Router2 hostname Router2 ! points=0.5

end

Operátor ''AND''

Operátor AND aplikuje na príkazy operáciu logického súčinu. Tento operátor pridelí zadaný počet

bodov ak sa všetky príkazy vyhodnotia kladne. Počet bodov je nutné zadať pomenovaným

argumentom points, napríklad:

and ! points=5

Page 46: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

38

# príkazy

end

Príklad:

# pridelí body iba ak oba hostname sú správne

and ! points=2

conf Router1 hostname Router1

conf Router2 hostname Router2

end

Operátor ''OR''

Operátor OR aplikuje na príkazy operáciu logického súčtu. Tento operátor pridelí zadaný počet bodov

ak sa aspoň jeden príkaz vyhodnotí kladne. Počet bodov je nutné zadať pomenovaným argumentom

points, napríklad:

or ! points=5

# príkazy

end

Vyhodnocovanie príkazov zámerne nie je skrátené (short-circuit) a vyhodnotia sa všetky

príkazy aj keď už niektorý bol vyhodnotený kladne.

Príklad:

# pridelí body ak jeden hostname je správne (študent preukázal znalosť nastavením jedného

hostname)

or ! points=2

conf Router1 hostname Router1

conf Router2 hostname Router2

end

Operátor ''MAX''

Operátor MAX vráti najvyšší dosiahnutý počet bodov. V tomto operátore je nutné definovať príkazom

bodové ohodnotenia. Kombináciou s ďalšími vnorenými operátormi je možné napríklad prideliť

znížené ohodnotenie za čiastočné riešenie.

max

Page 47: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

39

# príkazy

end

Tento operátor neprijíma počet bodov pomocou pomenovaného argumentu, pretože sa vyhodnocuje

podľa bodových výsledkov podradených príkazov.

Príklad:

# pridelí maximálny počet bodov z príkazov (0, 1 alebo 2)

max

# ping susedného Router2 je za 1 bod

exec Router1 ping 172.16.0.2 ! points=1

# ping do siete za Router2 je za 2 body - predchádzajúci príkaz bude pravdepodobne splnený

tiež

exec Router1 ping 192.168.2.2 ! points=2

end

5.2.5.2 Príkazy

Každý príkaz musí byť na jednom samostatnom riadku a má nasledujúcu základnú syntax: <druh

testovania> <meno cieľového zariadenia> <príkaz a jeho argumenty> [! Pomenované argumenty]

Samotné príkazy sa často skladajú z viacerých častí, preto ak nejaký argument príkazu sa skladá z

viacerých slov oddelených bielymi znakmi (medzera, tabulátor), je nutné takýto argumentu uzavrieť

do úvodzoviek (”, '), prípadne escapovať znakom \ rovnako ako je to bežné v shelloch. Týmto sa dá

medzera alebo aj úvodzovky zahrnúť do jedného argumentu a nebudú rozdelené.

Argumenty v hranatých zátvorkách sú nepovinné, argumenty v lomených zátvorkách sú povinné. Tri

bodky značia, že argumentov môže nasledovať viac. Tak ako pri operátoroch platí, že výkričníkom sa

začína časť, ktorá obsahuje pomenované (keyword) argumenty a väčšina príkazov nepoužíva povinné

pomenované argumenty.

Všetkým príkazom je možné zadať pomenovaný argument points pre určenie počtu bodov pri

kladnom vyhodnotení. Implicitná hodnota je 0 bodov a vyhodnocuje sa iba úspešnosť príkazu.

5.2.5.2.1 Kontrola konfigurácie

Tieto príkazy začínajú kľúčovým slovom conf a kontrolujú iba obsah konfigurácie.

Všeobecná syntax riadku conf príkazu je:

Page 48: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

40

conf <zariadenie> <príkaz> [! pomenované argumenty]

Príkaz ''HOSTNAME''

hostname [meno]

Príkaz hostname skontroluje či je nakonfigurované meno zariadenia. Pokiaľ je argument meno

vynechaný, podmienku spľňa akékoľvek nastavenie hostname. Argument je použitý ako regulárny

výraz.

Príklad:

conf Router1 hostname Router1

Príkaz ''SECTION''

section <sekcia> <nastavenie>

Oba argumenty tohto príkazu je nutné zvyčajne uzavrieť do úvodzoviek, pretože sa skladajú z

viacerých slov. sekcia označuje blok konfiguračného súboru, v ktorom sa má nastavenie vyskytovať.

Argumenty sekcia a nastavenie sa použijú ako regulárne výrazy.

Príklad:

# 1 bod za nastavený description

conf Router1 section "interface FastEthernet1/0" "description" ! points=1

Príkaz ''REGEXP''

regexp [výraz]

Hľadá či konfigurácia obsahuje riadok zodpovedajúci regulárnemu výrazu výraz.

Príklad:

# 1 bod za EIGRP s AS 5, vypíše správu "msg"

conf Router1 regexp router eigrp 5 ! points=1 msg="EIGRP correct AS n 5, Router1"

5.2.5.2.2 Kontrola stavu

Page 49: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

41

Tieto príkazy začínajú kľúčovým slovom exec, čiže ide o príkazy vykonávané v spustenej simulácii a

závislé od aktuálneho stavu zariadení v simulovanej topológii.

Všeobecná syntax riadku exec príkazu je:

exec <zariadenie> <príkaz> [! pomenované argumenty]

Príkaz ''PING''

ping [argumenty programu] ...

Príkaz ping akceptuje voliteľný pomenovaný argument min, ktorý udáva minimálny percentuálnu

hodnotu, od ktorej sa príkaz považuje za úspešný. Implicitne je to 1, čiže každá nenulová hodnota je

vyhodnotená kladne. V prípade hostov je nutné zadať argument -c nasledovaný počtom odoslaných

ICMP Echo

Request správ, inak sa nikdy neukončí.

Príklad:

exec Router1 ping 192.168.1.2 ! points=0.5

exec Host1 ping -c5 192.168.1.1 ! points=0.5

Príkaz ''STATUS''

status <tabuľka> <argument> ...

Príkaz status kontroluje aktuálny stav zariadenia (a siete).

Tabuľka ''ip route''

status "ip route" <adresa> ! type=<typ>

Kontrola tabuľky ip route prijíma argument adresa, ktorý sa použije ako regulárny výraz. Pomenovaný

argument type udáva typ cesty, ktorý hľadáme, a je teda povinný. V prípade potreby je možné zadať

regulárny výraz, ktorý pokryje všetky typy, ktoré. Definované sú nasledujúce typy:

connected

static

rip

mobile

Page 50: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

42

bgp

eigrp

ospf

candidate

Pokiaľ nemá žiadaný typ definíciu, je možné zadať priamo označenie, ktoré sa v tabuľke ip route

používa pre daný typ cesty. Rovnako je možné zadať typ aj pre definované typy, ale použitie vyššie

uvedených definícií uľahčuje čítanie testovacieho príkazu.

Príklad:

exec Router1 status "ip route" 192.168.1.0/24 ! type=EIGRP points=1

Tabuľka ''ip bgp neighbors''

status "ip bgp neighbors" ! ip=<adresa> as=<autonómny systém> type=<typ>

Vo výpise show ip bgp neighbors hľadá záznam pre zadanú IP adresu, autonómny systém a typ.

Vyhodnotenie je úspešné iba ak tento záznam obsahuje stav spojenia Established.

Typ môže byť napríklad external alebo internal.

Všetky argumenty sa používajú ako regulárny výraz.

Príklad:

exec Router1 status "ip bgp neighbors" ! ip=172.16.32.1 as=64512 type=internal points=3

msg="BGP internal neighbor 172.16.32.1 AS 64512"

Príkaz ''SHOW''

Pre tabuľky, ktoré nie sú implementované v príkaze STATUS je možné použiť príkaz SHOW, pre ktorý

platí nasledujúca všeobecná syntax:

show <tabuľka> <regulárny výraz> ...

Regulárny výraz by mal byť uzavretý v úvodzovkách, ak nie je, v prípade viacerých slov sa spojí

pomocou medzier. Body pridelí v prípade, ak niektorý riadok zodpovedá regulárnemu výrazu. Týmto

spôsobom je možné implementovať všetky jednoduché kontroly riadkov vo výstupoch IOS príkazu

show. V prípade, že nejaká kontrola sa opakuje a obsahuje zložitejší regulárny výraz s viacerými

argumentami, je vhodné ju implementovať ako rozšírenie príkazu STATUS. Tento príkaz je tiež

Page 51: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

43

užitočný pri vývoji na testovanie regulárnych výrazov pri implementácií nových rozšírení príkazu

STATUS.

Príklad:

exec Router1 show "ip ospf neighbor" Serial1/0 ! points=1 msg="ospf neighbor RT2,

Router1"

5.3 Tvorba testovania

Tvorba testovania priamo vychádza z požiadaviek profesora. Rovnako ako pri písomkách na

papier alebo iných opravovaných písomkách profesor určí mieru voľnosti. V našom prípade miera

voľnosti určuje, či kontrolujeme podrobný postup a príkazy podľa vzorového riešenia alebo

kontrolujeme len výsledok, fungujúci ping, cesta v smerovacej tabuľke, prípadne vhodnú kombináciu

oboch. V našom vypracovaní ponúkame profesorovi plnú voľnosť a ten si môže určiť čo a ako

skontroluje. Jednoduchý príklad je dať plný počet bodov, napríklad 10, za funkčný obojsmerný ping.

Ak ping prejde a profesorovi to stačí, nie je nutné ďalej kontrolovať konfiguráciu a stav siete.

V prípade, ak ping neprejde, alebo prechádza len každý x-tý, profesor sa môže rozhodnúť priradiť

aspoň časť bodov. Tu prichádza na radu jasnosť a presnosť zadania. Najjednoduchšie v prípade

prideľovania čiastkových bodov je skontrolovať jednotlivé príkazy, ak súhlasia s hodnotenou

konfiguráciou, body sa pridelia, ak nesúhlasia, body sa nepridelia. V tomto prípade sa však neberie do

úvahy študentova kreativita a všadeprítomná možnosť vyriešiť zadanie rôznymi spôsobmi. Keďže

možnosti vypracovávania zadaní a prípadné požiadavky profesorov sú veľmi rozsiahle, tvorba testov

nikdy nebude úplne triviálna záležitosť. V tejto časti sa však pokúsime spomenúť dostatočné

množstvo príkladov a postupov, aby vytvoriť testovanie mohol aj človek s minimálnymi skúsenosťami

s VLABom. V príkladoch budeme používať syntax spomenutú v časti funkčné vyhodnocovanie.

Zariadenie bude mať označenie Router1, v prípade použitia viacerých zariadení sa bude zvyšovať

index e.g. Router2.

Pri vôli ponechať kreativitu študentom môžeme kontrolovať len čiastočné príkazy. Napríklad

nasledujúce OSPF príkazy sú významom veľmi podobné a všetky zaradia interfejs a IP adresou

10.10.10.1 maska /24 do OSPF procesu:

network 10.10.10.1 0.0.0.255 area 0

network 10.10.10.1 0.0.0.0 area 0

network 10.10.10.1 255.255.255.255 area 0

Page 52: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

44

V takomto prípade je vhodné nájsť buď vhodný príkaz network alebo skontrolovať, či je daný interfejs

priradený do OSPF procesu pomocou show príkazu. Keďže sa dá daná úloha vyriešiť pomocou

nepreberného množstva network, prípadne iných príkazov, je vhodné zvoliť postup so show

príkazom. Najprv nájdeme vhodný príkaz v tomto prípade je to príkaz

Router#show ip ospf neighbor

Neighbor ID Pri State Dead Time Address Interface

10.29.81.1 0 FULL/ - 00:00:35 10.10.10.2 Serial1/0

Ako je v ukážke vidno, posledný atribút, ktorý sa nám o susedovi vypíše je interfejs, cez ktorý je

vytvorené susedstvo. Ak vieme, že sieť, ktorú sme chceli pridať do OSPF procesu je 10.10.10.0/24 a tá

sa nachádza na interfejsy Serial1/0 stačí vo výpise hľadať správny interfejs v tomto prípade:

exec Router1 section show “ip ospf neighbor" "Serial1/0" ! points=2

ako už bolo vysvetlené v sekcii funkčné vyhodnocovanie, vezme sa časť v úvodzovkách po show ako

argument show príkazu a vo výpise sa hľadá časť v druhých úvodzovkách.

V prípade kontrolovania len časti príkazu môžeme skontrolovať prvú časť príkazu network:

conf Router1 section "router ospf" "network 10.*area 0" ! points=1 msg="network 10 area 0,

Router1"

Pri OSPF nám susedstvo ešte stále nemusí stačiť. Preto sa dá nájsť ešte ďalší show príkaz, ktorý overí

iné nastavenia. Kompletný výpis príkazu show ip ospf interface serial 1/0 môže vyzerať nasledovne:

Router#sh ip ospf interface serial 1/0

Serial1/0 is up, line protocol is up

Internet Address 10.0.0.1/24, Area 0

Process ID 1, Router ID 10.29.79.1, Network Type POINT_TO_POINT, Cost: 64

Transmit Delay is 1 sec, State POINT_TO_POINT,

Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5

oob-resync timeout 40

Hello due in 00:00:02

Supports Link-local Signaling (LLS)

Page 53: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

45

Index 1/1, flood queue length 0

Next 0x0(0)/0x0(0)

Last flood scan length is 1, maximum is 1

Last flood scan time is 0 msec, maximum is 0 msec

Neighbor Count is 1, Adjacent neighbor count is 1

Adjacent with neighbor 10.29.81.1

Suppress hello for 0 neighbor(s)

Router#

Pre overenie nastavenia defaultných časovačov na interfejsy Serial1/0 použijeme nasledovný príkaz:

exec Router1 section show “ip ospf interface serial 1/0" "Timer intervals configured, Hello 10, Dead

40, Wait 40" ! points=2

V tomto prípade sme použili príkaz! ” exec section show”, ktorý v show príkaze napísaného v prvých

úvodzovkách, hľadá výraz v druhých úvodzovkách. V ďalších častiach si ukážeme, aký je tento príkaz

všeobecný a pomocou zreťazovania vieme skontrolovať aj viac riadkov v jednom výpise.

Nasledovným spôsobom je možné skontrolovať, či je interfejs zaradený do správnej area:

exec Router1 section show “ip ospf interface serial 1/0" " , Area 0”! points=2

Ako vyplýva z uvedených príkladov, môžeme v show príkazoch hľadať ľubovoľné sekvencie písmen.

Je len na náročnosti zadania a kreativite skúšajúceho, akým spôsobom a pomocou akých príkazov

overí správnosť vypracovania.

Pri kontrolovaní BGP konfigurácie sme narazili na problém, kde sme museli overiť viacero riadkov

nasledujúcich po sebe. Konkrétne sme chceli overiť stav susedstva s želaným susedom. To sa dá

dvoma spôsobmi, buď z často používaného príkazu

Router1#show ip bgp summary

BGP router identifier 172.16.64.1, local AS number 64512

BGP table version is 5, main routing table version 5

3 network entries using 351 bytes of memory

3 path entries using 156 bytes of memory

5/3 BGP path/bestpath attribute entries using 620 bytes of memory

Page 54: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

46

1 BGP AS-PATH entries using 24 bytes of memory

0 BGP route-map cache entries using 0 bytes of memory

0 BGP filter-list cache entries using 0 bytes of memory

BGP using 1151 total bytes of memory

BGP activity 3/0 prefixes, 4/1 paths, scan interval 60 secs

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd

1.1.1.1 4 54512 0 0 0 0 0 never Idle

172.16.32.1 4 64512 16 20 0 0 0 00:01:24 Active

192.168.1.5 4 200 7 6 5 0 0 00:01:36 1

V tomto prípade vieme overiť nadviazanie susedstva pomocou riadkov na konci výpisu. V stĺpci

State/PfxRcd vidíme aktuálny stav susedstva. Stavov v BGP je rovnako ako v iných smerovacích

protokolov viacero, preto by sme museli hľadať na konci riadku číslo. Toto sa dá, no rozhodli sme sa

pre elegantnejší spôsob a to pomocou iného výpisu, konkrétne:

Router1#sh ip bgp neighbors 172.16.32.1

BGP neighbor is 172.16.32.1, remote AS 64512, internal link

BGP version 4, remote router ID 172.16.32.1

BGP state = Established, up for 00:00:37

Last read 00:00:06, last write 00:00:06, hold time is 180, keepalive interval is 60 seconds

Neighbor capabilities:

Route refresh: advertised and received(old & new)

Address family IPv4 Unicast: advertised and received

Message statistics:

InQ depth is 0

OutQ depth is 0

Sent Rcvd

Opens: 2 2

Notifications: 1 0

Updates: 5 6

Keepalives: 18 15

Route Refresh: 0 0

Page 55: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

47

Total: 26 23

Default minimum time between advertisement runs is 0 seconds

...

V tomto prípade ide o veľmi detailný výpis o konkrétnom susedovi. Pre nás najdôležitejšie časti sa

nachádzajú v prvých troch riadkoch. Potrebujeme skontrolovať, že ide o internal link a BGP state je

established. Hľadané výpisy majú pevný odstup jedného riadku. Pre tento účel sme vytvorili

samostatný príkaz, ktorý má hľadané premenné ako argumenty, konkrétne IP adresu suseda, typ, či

ide o internal alebo external suseda a AS v ktorom sa má sused nachádzať, automaticky sa hľadá stav

susedstva established:

exec Router1 status "ip bgp neighbors" ! ip=172.16.32.1 as=64512 type=internal points=4 msg="BGP

internal neighbor 172.16.32.1 AS 64512"

Ako sme už spomenuli, podobný efekt sa dá dosiahnuť zreťazením viacerých kontrol.

S výhodou tu využijeme príkazy popísané v časti funkčné vyhodnocovanie a to konkrétne AND

a SHOW. Vďaka tomuto overíme výskyt viacerých výrazov v jednom show výpise. Ekvivalentný príkaz

k už uvedenému môže mať napríklad nasledujúcu podobu, všimnime si, že sme použili konkrétnejší

show príkaz doplnený o IP adresu suseda:

and ! points=4

exec Router1 section show “ip bgp neighbors 172.16.32.1" " remote AS 64512, internal link”!

points=2

exec Router1 section show “ip bgp neighbors 172.16.32.1" " BGP state = Established”! points=2

end

AND príkazu sme dali váhu 4 bodov, čo je súčet jednotlivých príkazov. V prípade splnenia všetkých

podmienok budú pridelené plné body, v prípade nesplnenia aspoň jednej z podmienok nebude

pridelený bod ani jeden. V tomto prípade môžeme kontrolovať aj iné ako established stavy.

Uvedeným spôsobom si môžeme poradiť v veľkým množstvom kontrolovaných výrazov. Zvolíme si

správny show príkaz a zreťazujeme podľa potreby. Myslíme si, že sa v budúcnosti objavý špecifický

príkaz, pre ktorý bude nutné vytvoriť samostatný príkaz. To môže byť napríklad, ak hľadáme riadky

Page 56: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

48

v konkrétnom poradí. Najmä z toho dôvodu sme vytvorili samostatný príkaz status "ip bgp

neighbors". Tento príkaz môže byť v budúcnosti po menšej modifikácii použitý na tvorbu podobných

zreťazených výpisov so stabilnými odstupmi aj v iných príkazoch.

Druhý možný prístup ku kontrole je kontrolovať priamo konfiguráciu zariadenia. Aby sme zachovali

konzistenciu medzi hodnotenou konfiguráciou a výpismi z funkcionálneho testovania, zvolili sme

kontrolovanie running configu v momente ukončenia testu, čí už z vôle študenta, alebo vypršania

časového limitu. Samozrejme si študent môže uložiť konfiguráciu vždy, keď spraví pokrok

v konfigurácii. Následne pre návrat k staršej konfigurácii treba zadať nasledujúci príkaz[1]:

configure replace nvram:startup-config force

Keď chceme skontrolovať príkazy v running configu, použijeme testovací príkaz regexp. Napríklad pri

kontrolovaní použitia správne nakonfigurovanej EIGRP AS v tomto prípade 64512 použijeme príkaz[2,

3]:

conf Router1 regexp router eigrp 64512 ! points=1 msg="EIGRP AS 64512, Router1"

Príkaz hľadá v running configu zhodu s výrazom nasledujúcim po regexp teraz “router eigrp 64512”.

Niekedy nestačí nájsť len jeden riadok, niekedy potrebujeme nájsť viacero príkazov. Vtedy zreťazíme

regexp príkazy podobne ako v prípade exec výrazov pomocou konštrukcie AND. Naopak, ak hľadáme

nadväznosť napríklad IP adresu na interfejsy, alebo network príkaz v konkrétnom routovacom

protokole, použijeme príkaz section. Príkladom je:

conf Router1 section "interface FastEthernet1/0" "ip address 172.16.2.2 255.255.255." ! points=1

msg="IP address on , Router1"

Uvedený príkaz hľadá v sekcii z prvých úvodzoviek výraz z druhých úvodzoviek. V tomto pípade

kontroluje či je na interfejsy fastethernet 1/0 nakonfigurovaná IP adresa 172.16.2.2 255.255.255.x.

Schválne je vynechaný posledný oktet, aby sme ukázali možnosť pri nešpecifickom zadaní

skontrolovať správnosť minimálnej možnej funkčnej možnosti.

Keď sme si predstavili možnosti testovania, je nutné povedať, že každý príkaz môže byť

vyhodnocovaný pozitívnym očakávaním a to napríklad že sa v routovacej tabuľke cesta nachádza

Page 57: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

49

prípade, že ping prejde alebo s očakávaním negatívnym – cesta sa v tabuľke nenachádza, ping

neprejde atď. Príkazy sa negujú pomocou pridania znaku “~” na začiatok príkazu. Negovanie

predchádzajúceho príkazu vyzerá následovne:

~conf Router1 section "interface FastEthernet1/0" "ip address 172.16.2.2 255.255.255." ! points=1

msg="IP address on fa0/1, Router1"

Ako sme si už z príkladov mohli všimnúť, v testovacích príkazoch sa nachádza argument msg. Ten je

nutné uviesť vždy, podľa neho sa zobrazuje výsledný výpis. Nemá síce vplyv na hodnotenie, no

sprehľadňuje a stransparentňuje proces hodnotenia. Tu si treba zvoliť, čo uviesť do vypisovanej

správy. V našom testovaní sme sa snažili uviesť čo najpresnejší popis, aby sme si mohli čo možno

najjednoduchšie opraviť chybu vo vypracovaní. Na písomke to tak byť nemusí a je možné, že profesor

bude chcieť podať len čiastkový výpis študentovi, aby nemohol ďalej šíriť správne výsledky aj bez

vlastnej vedomosti. V tomto prípade necháme na profesora, akú mieru informatívnosti zvolí. Najviac

sa nám osvedčil formát, kedy sa na konci správy nachádza zariadenie, na ktorom sa testovalo:

msg="IP address on fa0/1, Router1". V aktuálnej verzii testovacieho modulu sa študentovi počas

testu zobrazí výsledok vo forme získaných bodov a percent.

5.3.1 Spôsob navrhovania testovania

Pri navrhovaní, akým spôsobom je najlepšie automaticky testovať konfigurácie sme došli na spôsob

“Splň povinnú jazdu, over funkčnosť, ak všetko funguje prideľ plný počet bodov, ak nie hľadaj čo je

správne nakonfigurované.” Ako je z dlhého názvu jasné, najprv sa skontrolujú príkazy, ktoré musia

byť zadané presne podľa zadania, napríklad hostname alebo ”no ip domain-lookup”. Tieto sa

jednoducho skontrolujú pomocou testovacích príkazov regexp alebo section. V tomto prípade nemá

cenu skúšať príkaz zaobaľovať, prípadne ich skracovať, buď sa v konfigurácii nachádzajú a študent

získa body alebo sa tam nenachádzajú a študent ich nezíska.

Následne sa skontrolujú príkazy ako ping či už s očakávaným kladným alebo záporným výsledkom.

Tieto reprezentujú overenie cieľa celého zadania, napríklad ping z jednej strany na druhú, alebo

správne cesty v smerovacej tabuľke. Tieto sú zreťazené pomocou bloku AND a teda musia byť

splnené všetky úlohy zadania. Ak sa tieto nevyhodnotia kladne, kontroluje sa alternatívna možnosť.

Page 58: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

50

Táto reprezentuje jednotlivé kroky, ktoré vedú k správnemu vyriešeniu úlohy. Mnohé úlohy sa dajú

splniť viacerými spôsobmi. Ideálnym príkladom je nastavenie smerovacieho protokolu. Interfejs sa dá

do smerovacie procesu pridať buď cez príkaz network v konfigurácii smerovacieho protokolu alebo sa

dá pridať priamo na interfejs. V tomto prípade môžeme pomocou bloku OR v testovaní pokryť všetky

nami odhalené cesty k správnemu vyriešeniu úlohy. V prípade viacerých možností na vypracovanie, je

samozrejme jednoduchšie skontrolovať už želaný výsledok a preto sme dali na prvé miesto

funkcionálne testovanie. Body sa za blok MAX priradia podradenému bloku s najvyšším blokovým

ziskom. Ak získame za AND 0 bodov, za druhé konfiguračné testovanie 2 body a za tretie 9 bodov, vo

výsledku sa vypíše a započíta len tretie testovanie.

Nami navrhovanému spôsobu testovania zodpovedá nasledujúca kostra testovania:

#povinné príkazy

#conf SanJose2 section "interface Serial0/0" "ip address 172.16.1.2 255.255.255.0" ! points=1

msg="IP address on Serial0/0, SanJose2"

max ! msg="variable testing"

and ! points=10 msg="functional testing"

#prvý blok testovania, funkcionálne pomocou AND

#exec SanJose2 show "ip bgp nei" 'BGP neighbor is 172.16.64.1, remote AS 64512, internal link' !

points=1 msg="BGP neighbor SJ1 172.16.64.4 AS 64512 external, SanJose2"

end

sum ! msg="configuration testing, via router ospf"

#druhý blok testovania, parsovacie pomocou SUM

#conf SanJose2 section "router ospf" "network 172.16." ! points=1 msg="OSPF network 172.16.0.0,

SanJose2"

end

sum ! msg="configuration testing via interfaces"

#tretí blok testovanie, parsovacie pomocou SUM

#conf SanJose2 section "interface Serial0/0" "ip ospf . area 0" ! points=1 msg=" OSPF on Serial0/0,

SanJose2"

end

end

Page 59: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

51

print Max points: 15

print Earned points:

Tvorbu testovania si finálne ukážeme na úlohe, ktorú sme medzi laby pridali ako pilotnú, pre účely

testovania.

5.3.1.1 Úloha má nasledujúce zadanie:

Nakonfigurujte sieť, aby bol možný ping z PC0 na PC1.

Na prislúchajúce interfacey pridajte zmysluplne popisy.

Použite rozsahy sietí s najmenším možným počtom použiteľných IP adries, rozsahy zvoľte podľa

nasledujúcich údajov:

Máte pridelený subnet 172.16.0.0/16 Prvú možnú sieť prideľte na segment siete s PC0. Na tejto sieti

je nutné mať priestor pre 253 počítačov. Druhú voľnú sieť rovnako s 253 počítačmi prideľte na časť

siete s PC1. Na interfecey routrov prideľte prvú voľnú adresu z prislúchajúceho rozsahu, na počítače

druhú voľnú IP adresu.

medzi routrami nastavte sieť 10.10.10.0/30 RT1 s IP .1, RT2 s IP .2

na linkách k počítačom nemajú byť posielané updatey z IGP

ako IGP použite EIGRP s číslom AS 5

routre nazvite presne podľa obrázka Router1 - Router1, Router2 - Router2. V routovacej tabuľke musí

byť cesta do cudzej siete naučená z EIGRP

Page 60: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

52

5.3.1.2 Naša vzorová konfigurácia vyzerá následovne:

Router1:

hostname Router1

!

interface FastEthernet0/0

description kPC1

ip address 172.16.0.1 255.255.255.0

no shutdown

!

interface Serial1/0

description kRT2

ip address 10.10.10.1 255.255.255.252

no shutdown

!

router eigrp 5

passive-interface FastEthernet0/0

network 10.10.10.0 0.0.0.3

network 172.16.0.0 0.0.0.255

no auto-summary

Page 61: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

53

!

Router2:

hostname Router2

!

interface FastEthernet0/0

description kPC1

ip address 172.16.1.1 255.255.255.0

no shutdown

!

interface Serial1/0

description kRT1

ip address 10.10.10.2 255.255.255.252

no shutdown

!

router eigrp 5

passive-interface FastEthernet0/0

network 10.10.10.0 0.0.0.3

network 172.16.1.0 0.0.0.255

no auto-summary

Host PC0 a PC1 majú IP adresy predkonfigurované.

Page 62: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

54

5.3.1.3 Nami navrhnuté testovanie:

conf Router1 hostname Router1 ! points=1 msg="hostname, Router1"

conf Router2 hostname Router2 ! points=1 msg="hostname, Router2"

#kontrola hostname na router1 a Router 2

conf Router1 section "interface Serial1/0" "description" ! points=1 msg="description s1/0, Router1"

conf Router1 section "interface FastEthernet0/0" "description" ! points=1 msg="description fa0/0,

Router1"

conf Router2 section "interface Serial1/0" "description" ! points=1 msg="description s1/0, Router2"

conf Router2 section "interface FastEthernet0/0" "description" ! points=1 msg="description s1/0,

Router2"

#kontrola description na router1 a Router 2

conf Router1 section "router eigrp 5" "passive-interface FastEthernet0/0" ! points=1 msg="EIGRP

passive interface fa0/0, Router1"

conf Router2 section "router eigrp 5" "passive-interface FastEthernet0/0" ! points=1 msg="EIGRP

passive interface fa0/0, Router2"

#kontrola passive-interface v eigrp AS 5 na interfejsoch k počítačom na Router1 a Router2

max ! msg="variable testing"

and ! points=11 msg="functional testing"

exec PC0 ping -c5 172.16.1.2 ! msg="succesfull ping PC0 PC1, PC0"

exec PC1 ping -c5 172.16.0.2 ! msg="succesfull ping PC1 PC0, PC1"

exec Router1 status "ip route" 172.16.1.0 ! type=EIGRP msg="EIGRP route from other PC segment

172.16.1.0/24, Router1"

exec Router2 status "ip route" 172.16.0.0 ! type=EIGRP msg="EIGRP route from other PC segment

172.16.0.0/24, Router2"

end

#funkcionálna kontrola pozostávajúca z kontroly hlavných bodov zadania end-to-end ping a

prešírenie cesty pomocou smerovacieho protokolu EIGRP.

sum ! msg="configuration testing"

conf Router1 section "interface Serial1/0" "ip address 10.10.10.1 255.255.255.252" ! points=1

msg="IP address s1/0, Router1"

Page 63: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

55

conf Router1 section "interface FastEthernet0/0" "ip address 172.16.0.1 255.255.255.0" ! points=1

msg="IP address fa0/0, Router1"

conf Router2 section "interface Serial1/0" "ip address 10.10.10.2 255.255.255.252" ! points=1

msg="IP address s1/0, Router2"

conf Router2 section "interface FastEthernet0/0" "ip address 172.16.1.1 255.255.255.0" ! points=1

msg="IP address fa0/0, Router2"

conf Router1 regexp router eigrp 5 ! points=1 msg="EIGRP correct AS number 5, Router1"

conf Router2 regexp router eigrp 5 ! points=1 msg="EIGRP correct AS number 5, Router2"

conf Router1 section "router eigrp 5" "no auto-summary" ! points=1 msg="EIGRP no auto-summary,

Router1"

conf Router2 section "router eigrp 5" "no auto-summary" ! points=1 msg="EIGRP no auto-summary,

Router2"

exec Router1 status "ip route" 172.16.1.0 ! type=EIGRP points=1 msg="EIGRP route from other PC

segment 172.16.1.0/24, Router1"

exec Router2 status "ip route" 172.16.0.0 ! type=EIGRP points=1 msg="EIGRP route from other PC

segment 172.16.0.0/24, Router2"

end

end

#konfiguračná kontrola pozostávajúca z krokov potrebných na nakonfigurovanie daného zadania.

Postupne sme skontrolovali všetky potrebné príkazy z našej vzorovej konfigurácie a pridaného

skontrolovania naučenia cesty zo smerovacieho protokolu definovaného v zadaní. Príkazy sú v bloku

SUM, ktorý sčítava hodnotu jednotlivých správne vyhodnotených príkazov. Ak by sa v testovaní

nachádzal aj ďalší SUM blok, vyberie sa blok s maximálnym získaným počtom bodov.

print Max points: 19

print Earned points:

#vypísanie maximálneho počtu bodov získateľného v zadaní a textu, za ktorým nasleduje získaný

počet bodov.

Page 64: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

56

5.3.1.4 Nasleduje výpis z uvedeného testovania pri nami navrhnutej

konfigurácii:

hostname, Router1: 1/1

hostname, Router2: 1/1

description s1/0, Router1: 1/1

description fa0/0, Router1: 1/1

description s1/0, Router2: 1/1

description s1/0, Router2: 1/1

EIGRP passive interface fa0/0, Router1: 1/1

EIGRP passive interface fa0/0, Router2: 1/1

MAX variable testing = 11.0 pts: functional testing: 11.0/11.0

succesfull ping PC0 PC1, PC0: 0/0

succesfull ping PC1 PC0, PC1: 0/0

EIGRP route from other PC segment 172.16.1.0/24, Router1: 0/0

EIGRP route from other PC segment 172.16.0.0/24, Router2: 0/0

variable testing: 11.0/11.0

Max points: 19

Earned points:

19

Ak sa z nejakého dôvodu nevykoná funkcionálne testovanie, vypíše sa nasledujúce hodnotenie

reprezentujúce povinnú časť a konfiguračné testovanie

hostname, Router1: 1/1

hostname, Router2: 1/1

description s1/0, Router1: 1/1

description fa0/0, Router1: 1/1

description s1/0, Router2: 1/1

description s1/0, Router2: 1/1

EIGRP passive interface fa0/0, Router1: 1/1

EIGRP passive interface fa0/0, Router2: 1/1

MAX variable testing = 10.0 pts: configuration testing: 10.0/10.0

Page 65: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

57

IP address s1/0, Router1: 1/1

IP address fa0/0, Router1: 1/1

IP address s1/0, Router2: 1/1

IP address fa0/0, Router2: 1/1

EIGRP correct AS number 5, Router1: 1/1

EIGRP correct AS number 5, Router2: 1/1

EIGRP no auto-summary, Router1: 1/1

EIGRP no auto-summary, Router2: 1/1

EIGRP route from other PC segment 172.16.1.0/24, Router1: 1/1

EIGRP route from other PC segment 172.16.0.0/24, Router2: 1/1

variable testing: 10.0/10.0

Max points: 19

Earned points:

18

Častou chybou pri tvorení testovania a overovaní jeho správnosti je kopírovanie celého startup-

configu, pričom sa neskopíruje stav liniek a teda tie, ktoré boli pôvodne v stave up teraz iba nemaju

v konfigurácii príkaz shutdown, preto treba buď ručne upnúť potrebné interfejsy, do uloženého

startup-configu pripísať no shutdown. Alebo ak máme v zariadení nahraný súbor s konfiguráciu už

spomínaný príkaz:

configure replace nvram:startup-config force

Druhou častou chybou je, skopírovanie aj IP adresy testovacieho interfejsu, ktorý v tomto prípade už

nemusí mať pôvodnú IP adresu. To má za následok nemožnosť prihlásenia na zariadenie testovacím

skriptom. Testovacie interfejsy majú rezervovaný rozsah a to sieť 10.29.0.0 / 16. Tieto IP adresy

nesmú byť v zadaní použité, sú totiž počas ukončovania testu z konfigurácie zmazané. Ďalšie príklady

testovania sa nachádzajú v prílohe.

Page 66: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

58

6 Overenie výsledku

Prácu v rámci tímového projektu sme verifikovali priebežne. Počas vývoja systému sme

postupovali iteračne a po každej fáze sme overili funkčnosť novej, rovnako ako aj už

implementovanej funkcionality. Počas vývoja sme overovali nie len správnosť skriptov no aj vplyv na

celkový výkon systému. Viackrát sme museli upravovať postupy práve kvôli negatívnemu vplyvu na

výkon.

Na verifikáciu funkčnosti sme používali logovacích výpisy frontendu a aktuálne bežiacich procesov.

Tieto výpisy sme v úvodných fázach upravili do prehľadnej podoby. Pri potrebe overiť funkčnosť,

respektíve pri hľadaní chýb sme často používali debug výpisy pomocou aplikačného serveru Apache

priamo do frontendu.

Funkčnosť a prehľadnosť systému sme overovali spolu so študentmi bakalárskeho stupňa, najviac by

sme sa chceli poďakovať za pomoc študentovi Petrovi Bôžikovi, ktorý nám pomáhal počas vývoja

najvýraznejšie.

Nezaznamenali sme výraznejšie problémy. Dvakrát sa nám stalo, že sme si prepísali už spravenú

a overenú funkcionalitu. Našťastie sme si pre takéto účely robili pravidelné zálohy. Vďaka tomu sme

sa vedeli rýchlo vrátiť k predošlej verzii a opätovne doplnili zmazanú funkcionalitu.

Aby sme neovplyvnili funkčnosť VLABu prístupného pre študentov, rozdelili sme vývoj na dve vetvy.

V rámci jednej sme udržiavali ostrú verziu prístupnú 24 hodín denne, 7 dní v týždni a druhú,

development verziu, na ktorú sme aplikovali zmeny. Na ostrej verzii sme iba odstraňovali vážne chyby

a dopĺňali overenú kľúčovú funkcionalitu. Development verzia bola určená len pre naše účely a na

testovanie pre vybraných študentov. Funkcionalita sa do ostrej verzie dostala až po dôkladnom

overení. Na záver projektu sme development verziu upravili na ostrú verziu a vďaka tomu poskytli

vyladený a doplnený VLAB študentom aj profesorom. Finálne testovanie prebiehalo v skupine

a overili sme plnú funkčnosť. Systém zvládol záťaž nad úrovňou možností jedného laboratória,

konkrétne 8 študentov na jednu zápočtovku.

Page 67: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

59

7 Záver

VLAB je momentálne v plne funkčnom stave. Je umiestnený na novom virtuálnom stroji a je

prístupný študentom. Prístup do labu bol prezentovaný na predmete PS2. Je možná registrácia

nových používateľov pomocou administrátorského účtu. Všetky LABy fungujúce v predchádzajúcich

verziách VLABu fungujú aj v aktuálnej verzii. Momentálne pracujeme na možnosti paralelnom

rezervovaní simulácií. Zároveň hľadáme chyby v implementácii, ktoré následne odrstraňujeme.

Doposial sme našli len nevýrazné chyby ako chýbajúca kontrola formátu emailovej adresy študenta.

V najbližšej dobe začneme pracovať na navrhnutých rozšíreniach, ktoré plne implementujeme počas

budúceho semestra.

Page 68: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

60

8 Zdroje

[1] http://www.zive.sk/do-roku-2025-bude-na-internete-mozno-az-5-a-pol-miliardy-ludi/sc-4-a-

290432/default.aspx

[2] Kleinrock, L.: History if the Internet and its flexible future, IEEE Wireless Communications,

February 2008

[3] http://www.cisco.com/web/learning/netacad/course_catalog/PacketTracer.html

[4] https://vlab.fiit.stuba.sk/

[5] http://tldp.org/HOWTO/PPP-HOWTO/x1219.html

[6] http://www.cisco.com/en/US/docs/ios/12_1/termserv/configuration/guide/dcdmodem.html

[7] Projektová dokumentácia VLAN PSS tým 8, 2009

http://labss2.fiit.stuba.sk/TeamProject/2008/team09pss/documents-zs/projekt_final_ZS.pdf

[8] Péti, P.: Podpora pre simulátor/emulátor počítačovej siete, Diplomový projekt II, ÚPSS

FIIT STU, Bratislava 2009.

[9] http://www.cisco.com/en/US/docs/ios/12_3t/12_3t7/feature/guide/gtrollbk.html (Internet

čerpané 7.4)

[10] http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080093f07.shtml

(Internet čerpané 7.4)

[11] http://www.cisco.com/en/US/docs/ios/12_0/np1/configuration/guide/1ceigrp.html (Internet

čerpané 7.4)

Page 69: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

61

9 Príloha A

V tejto prílohe si ukážeme, ako sme vytvorili testovanie pre vzorové simulácie.

9.1 Vytvorenie testovania pre Basic Router Configuration

V tejto časti si popíšeme priebeh tvorby testovania pre úlohu Basic Router Configuration.

9.1.1 Zadanie úlohy Basic Router Configuration

Cvičenie 3: Prvotná konfigurácia použitím základných príkazov

Krok 1

Presuňte sa do globálneho konfiguračného módu. Nasledujúcim príkazom nastavíte meno

smerovača:

Router(config)# hostname meno

- parametrom je textový reťazec

Nakonfigurujte meno smerovača na Smerovac. Prompt sa zmení na:

Smerovac(config)#

Ja však budem aj naďalej písať Router namiesto Smerovac.

Krok 2

Ďalším dôležitým krokom je nastaviť heslá pre prístup na smerovač. Nastavujú sa hlavne tieto:

Heslo pre privilegovaný režim:

Router(config)# enable secret password

Heslo pre konzolový port:

Page 70: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

62

Router(config)# line con 0

Router(config-line)# login

Router(config-line)# password password

Heslo pre prístup cez telnet:

Router(config)# line vty 0 4

Router(config-line)# login

Router(config-line)# password password

VTY = VirtualTeletYpe, normálne Cisco smerovače umožňujú až päť virtuálnych spojení (cez

telnet alebo SSH), ktoré sú číslované od 0 do 4. Na každé spojenie sa dá použiť samostatné

heslo. Po nakonfigurovaní sa dá na smerovač pripojiť vzdialene cez telnet.

Nastavte všetky heslá na cisco a potom použite nasledujúce príkazy:

Router(config)# line con 0

Router(config-line)# logging synchronous

- týmto príkazom si zabezpečíte neporušenie výstupu na obrazovku v prípade vypisovania

rôznych hlášok operačného systému

Krok 3

Rozhrania na smerovači sfunkčníme nasledujúcimi príkazmi. Pre smerovače s fixnou

konfiguráciou rozhraní sa používa:

Router(config)# interface type port

V našom prípade interface fa0/0

Pre modulárne stavané smerovače, ktoré umožňujú zmenu rozhraní prídavnými kartami (WIC

– Wan Interface Card, Network modules) sa používa:

Router(config)# interface type slot/port

Po prechode na želané rozhranie mu treba priradiť IP addresu príkazom:

Router(config-if)# ip address <address> <mask>

V našom prípade ip address 192.168.0.1 255.255.255.0

A následne rozhranie zapnúť:

Router(config-if)# no shutdown

Router(config-if)# description popis

Pripojte vašu stanicu kríženým káblom priamo na Ethernet port na smerovači. Nakonfigurujte

Ethernetové rozhranie tak, aby malo IP adresu default gateway, ktorú zistíte z konfigurácie

Page 71: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

63

vašej pracovnej stanice. Takisto označte, kam vedie toto spojenie, napr.:

Router(config-if)# description Pripojenie k stanici

Krok 4

Veľmi dôležitá vec je nakonfigurovanie oznamu, ktorý sa zobrazí používateľovi po

prihlásení na smerovač, či už cez konzolu, modem alebo virtuálne spojenie. Takáto výstraha

sa konfiguruje:

Router(config)# banner motd # message #

- správa, ktorú chcete aby bola zobrazovaná sa umiestni medzi znaky #

Nakonfigurujte takýto oznam:

Entering restricted area. Unauthorized persons should logout immediately!

9.1.2 Vzorová konfigurácia

Router1

hostname Router1

enable secret password

interface FastEthernet0/0

description kPC

ip address 192.168.0.1 255.255.255.0

no shutdown

banner motd @Entering restricted area. Unauthorized persons should logout immediately!@

!

line con 0

password password

logging synchronous

line aux 0

line vty 0 4

password password

login

!

Page 72: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

64

9.1.3 Navrhnuté testovanie

conf R1 hostname Router1 ! points=1 msg="hostname, Router1"

conf R1 section "line con 0" "password password" ! points=1 msg="password on console, Router1"

conf R1 section "line con 0" "logging synchronous" ! points=1 msg="logging synchronous on console,

Router1"

conf R1 section "line vty 0 4" "password password" ! points=1 msg="password on vty, Router1"

conf R1 regexp "enable secret 5" ! points=1 msg="enable secret, Router1"

conf R1 section "interface FastEthernet0/0" "description" ! points=1 msg="dexcription on fa0/0,

Router1"

conf R1 section "interface FastEthernet0/0" "ip address 192.168.0.1 255.255.255.0" ! points=1

msg="IP address on fa0/0, Router1"

conf R1 regexp "banner motd" ! points=1 msg="banner motd, Router1"

max ! msg="variable testing"

and ! points=5 msg="functional testing"

exec host1 ping -c5 192.168.0.1 ! points=3 msg="succesful ping PC0 -> Router1, PC0"

end

sum ! msg="configuration testing"

~conf R1 section "interface FastEthernet0/0" "shutdown" ! points=1 msg="no shutdown on fa0/0,

Router1"

end

end

print Max points: 13

print Earned points:

9.1.4 Výpis pri dosiahnutí plného počtu bodov

hostname, Router1: 1/1

Page 73: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

65

password on console, Router1: 1/1

logging synchronous on console, Router1: 1/1

password on vty, Router1: 1/1

enable secret, Router1: 1/1

dexcription on fa0/0, Router1: 1/1

IP address on fa0/0, Router1: 1/1

banner motd, Router1: 1/1

MAX variable testing = 5.0 pts: functional testing: 5.0/5.0

succesful ping PC0 -> Router1, PC0: 3/3

variable testing: 5.0/5.0

Max points: 13

Earned points:

13

9.2 Vytvorenie testovania pre Basic BGP configuration

9.2.1 Zadanie úlohy Basic BGP configuration

[4]:

Configuring basic BGP

Page 74: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

66

Objective

In this lab, the student will configure BGP to exchange routing information with two Internet Service Providers (ISPs). The use of no synchronization and neighbor next-hop-

self commands will be observed.

Scenario

The International Travel Agency relies extensively on the Internet for sales. The company has

contracted with two ISPs for Internet connectivity with fault tolerance. The BGP that runs

between the SanJose1 and 2 boundary routers and the two ISP routers needs to be configured.

Step 1

Build and configure the network according to the diagram, but do not configure a routing

protocol. Do not configure IBGP and OSPF routing until step 5.

Configure a loopback interfaces with an IP address for each ISP router, as shown in the

Figure. These loopbacks simulate real networks that can be reached through the ISP.

Configure loopback interfaces with the IP addresses for the routers located inside the OSPF

area 0 network. These loopbacks simulate the connections to internal LANs.

Use ping to test connectivity between the directly connected routers.

Step 2

Configure the ISP routers. In this lab, configure the providers’ equipment as well as the International Travel Agency’s boundary routers, SanJose1 and SanJose2. On the ISP1 router, enter the following commands to establish EBGP session with SanJose1 router:

ISP1(config)# router bgp 200

ISP1(config-router)# neighbor 10.0.0.2 remote-as 100

ISP1(config-router)# network 12.0.1.0 mask 255.255.255.0

On the ISP2 router, configure BGP as shown in the following:

ISP2(config)# router bgp 300

ISP2(config-router)# neighbor 172.16.0.2 remote-as 100

ISP2(config-router)# network 172.16.1.0 mask 255.255.255.0

Step 3

Configure the SanJose1 and SanJose2 router to run EBGP with both providers. Use the following configuration to establish EBGP sessions with the two providers:

SanJose1(config)# router bgp 100

SanJose1(config-router)# neighbor 10.0.0.1 remote-as 200

SanJose1(config-router)# network 192.168.1.0

SanJose2(config)# router bgp 100

SanJose2(config-router)# neighbor 172.16.0.1 remote-as 300

SanJose2(config-router)# network 192.168.2.0

Page 75: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

67

This completes the EBGP configuration. Check the routing table for these EBGP peers with the show ip route. SanJose1 and 2 have routes to the loopback networks at each ISP

router. Verify that SanJose routers have connectivity to these networks by pinging each

loopback address from its console. These pings should be successful.

Step 4

Use show commands to verify the operation of BGP on our EBGP peers. First, verify the

neighbor establishment using the show ip bgp neighbors command.

1. Based on the output of this command, what is the BGP state between this router and its peers?

2. How long has this connection been up?

Optionally, the command show ip bgp summary will give you a brief overview about BGP

peering establishment. Now, use the show ip bgp command to view the routes learned via BGP.

3. What do the asterisks (*) next to each route indicate? 4. What do the “>” symbols next to each route indicate? 5. What is the local router ID? 6. Which table version is displayed?

7. On the ISP1 router, issue the shutdown command on Loopback0. Return to SanJose1

and issue the show ip bgp command again. Which table version is displayed?

The version number will vary, but the shutdown command should have caused a routing

table update, so the version should be one higher than the last.

Bring the ISP1 router Loopback0 back up by issuing the no shutdown command.

Step 5

Routing with external peers is configured. Now we will configure internal routers. First

configure OSPF routing inside International Travel Agency. However, because later we will

configure IBGP inside ITA’s AS 100 to carry all routing information about internal LANs,

configure OSPF so that it will run on only directly connected serial and Ethernet links which

are inside AS 100. After you are done, verify the routing tables and OSPF neighbors among

internal ITA routers.

Page 76: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

68

Step 6

Now we will move into IBGP configuration. First configure IBGP peering session just between SanJose1 and SanJose2: SanJose1(config)# router bgp 100

SanJose1(config-router)# neighbor 10.10.10.2 remote-as 100

SanJose2(config)# router bgp 100

SanJose2(config-router)# neighbor 192.168.64.1 remote-as 100

After a while look into BGP tables using show ip bgp of SanJose1 and SanJose2 routers.

They each will have two routes in the table. However, if you look into routing table of SanJose routers you will see BGP routes missing.

8. Which routes are missing on SanJose1 router? Which routes are missing in SanJose2 router?

Step 7

In order for BGP to insert the routes into the routing table, the NEXT-HOP of the route must be known. In other words, the route to the NEXT-HOP address must be in routing table.

9. Check the BGP tables on SanJose routers using show ip bgp command. Which NEXT-

HOP address is BGP using for each route? However, if you look into routing tables, the NEXT-HOP address for routes learned from ISP1 are not in routing table of SanJose2 and vice versa. We have two solutions here:

Using IGP, advertise networks on which our EBGP sessions are formed.

Use next-hop-self command.

Because second solution is preferred, configure BGP on SanJose routers, so that it will modify the NEXT-HOP attribute: SanJose1(config)# router bgp 100

SanJose1(config-router)# neighbor 10.10.10.2 next-hop-self

SanJose2(config)# router bgp 100

SanJose2(config-router)# neighbor 192.168.64.1 next-hop-self

Page 77: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

69

Again use the command show ip bgp and check the NEXT-HOP attribute of each route.

Step 8

10. Check the routing tables again using show ip route command. Are BGP routes still

missing from the table? Check the BGP tables of ISP routers using show ip bgp command. You may notice the

routes from other ISP are missing. This happens if you are running IOS software version earlier than 12.2(8). In these versions of IOS the command synchronization is configured

on each BGP router by default. This is to prevent the black-holing of traffic problem, because the BGP and IP routing tables are considered not synchronized. The rule of synchronization states that in order for BGP to insert routes learned via IBGP into the routing table and advertise them to EBGP neighbors, the routes need to be known via IGP. To demonstrate the problem synchronization is trying to prevent, use extended ping with source address of loopback0 from ISP2 to ISP1 network. 11. What happened to the ping? If you try a traceroute, you will notice packets will be dropped by Westasman router.

Step 9

Finish the IBGP configuration. Create full-mesh IBGP, so that synchronization will not be an issue:

Westasman(config)# router bgp 100

Westasman(config-router)# no synchronization !not needed in IOS v12.2(8)

up Westasman(config-router)# neighbor 10.10.10.2 remote-as 100

Westasman(config-router)# neighbor 192.168.64.1 remote-as 100 Westasman(config-router)# network 192.168.3.0

SanJose1(config)# router bgp 100

SanJose1(config-router)# no synchronization !not needed in IOS v12.2(8)

up SanJose1(config-router)# neighbor 192.168.64.2 remote-as 100

SanJose1(config-router)# neighbor 192.168.64.2 next-hop-self

SanJose2(config)# router bgp 100

SanJose2(config-router)# no synchronization !not needed in IOS v12.2(8)

up

SanJose2(config-router)# neighbor 10.10.10.1 remote-as 100

SanJose2(config-router)# neighbor 10.10.10.1 next-hop-self

Now you should be able to ping networks of other ISP. Verify your BGP and IP routing tables on SanJose and Westasman routers and use extended ping again to verify the full connectivity from ISP1 to ISP2.

Step 10

SanJose routers are now configured so that they advertise routes belonging to ISP1. ISP2

then installs these routes in its table and might then attempt to route transit traffic through the

ITA network. Configure the SanJose routers so that they advertise only ITA networks

192.168.0.0, 192.168.1.0, 192.168.2.0 and 192.168.3.0 to both providers. On the SanJose1

router, configure the following access list:

Page 78: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

70

SanJose1(config)# access-list 1 permit 192.168.0.0 0.0.3.255

Then apply this access list as a route filter, using the distribute-list keyword with the

BGP neighbor statement:

SanJose1(config)# router bgp 100

SanJose1(config-router)# neighbor 10.0.0.1 distribute-list 1 out

Do the similar for SanJose2 router. After the route filter has been configured, check the

routing tables on ISP routers again. Routes to 12.0.1.0, ISP1, and 172.16.1.0/24, ISP2,

should still be in the table.

Return to SanJose routers and issue the clear ip bgp * command. Wait until the routers

reach the Established state, which might take up to 60 seconds.

After the routers reach the Established state, recheck the ISP routing tables. The route to ISP1 should no longer be in the routing table of ISP2 and vice versa. Now you should not be able to ping networks from ISP of other ISP. Use extended ping again to verify the full connectivity from ISP1 to ISP2. To test final state of lab use extended ping from ISP1 to SanJoses2’s Lo0 and from ISP2 to SanJoses1’s Lo0.

9.2.2 Vzorová konfigurácia

ISP1

en

conf t

hostname ISP1

int s0/0

ip add 10.0.0.1 255.255.255.252

no shut

int lo0

ip add 12.0.1.1 255.255.255.0

no shut

router bgp 200

neighbor 10.0.0.2 remote-as 100

netw 12.0.1.0 mask 255.255.255.0

SanJose1

en

conf t

hostname SanJose1

Page 79: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

71

int s0/0

ip add 10.0.0.2 255.255.255.252

desc toISP1

no shut

int lo 0

ip add 192.168.1.1 255.255.255.0

int s0/1

ip add 192.168.64.1 255.255.255.0

desc toWESTaman

no shut

access-list 1 permit 192.168.0.0 0.0.3.255

router bgp 100

neigh 10.0.0.1 remote-as 200

netw 192.168.1.0 mask 255.255.255.0

neigh 192.168.64.2 remote-as 100

neigh 10.0.0.1 distrib 1 out

neighbor 10.10.10.2 remote-as 100

neighbor 192.168.64.2 next-hop-self

neighbor 10.10.10.2 next-hop-self

router ospf 1

netw 10.0.0.2 0.0.0.0 area 0

netw 192.168.64.1 0.0.0.0 area 0

WESTASMAN

en

conf t

hostname WESTASMAN

int s0/0

ip add 192.168.64.2 255.255.255.252

no shut

Page 80: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

72

int lo 0

ip add 192.168.0.1 255.255.255.0

no shut

int fa1/0

ip add 10.10.10.1 255.255.255.0

no shut

router bgp 100

neigh 192.168.64.1 remote-as 100

neigh 10.10.10.2 remote-as 100

netw 192.168.0.0 mask 255.255.255.0

router ospf 1

netw 0.0.0.0 0.0.0.0 area 0

SanJose2

en

conf t

hostname SanJose2

int fa1/0

ip add 10.10.10.2 255.255.255.0

no shut

int lo 0

ip add 192.168.2.1 255.255.255.0

int s0/0

ip add 172.16.0.2 255.255.255.252

no shut

access-list 1 permit 192.168.0.0 0.0.3.255

router bgp 100

neigh 172.16.0.1 remote-as 300

neighbor 172.16.0.1 distribute-list 1 out

netw 192.168.2.0 mask 255.255.255.0

neigh 10.10.10.1 remote-as 100

Page 81: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

73

neighbor 10.10.10.1 next-hop-self

neigh 192.168.64.1 remote-as 100

neighbor 192.168.64.1 next-hop-self

router ospf 1

netw 10.10.10.2 0.0.0.0 area 0

do clear ip bgp * soft out

ISP2

en

conf t

hostname ISP2

int s0/0

ip add 172.16.0.1 255.255.255.252

no shut

int lo0

ip add 172.16.1.1 255.255.255.0

router bgp 300

neigh 172.16.0.2 remote-as 100

netw 172.16.1.0 mask 255.255.255.0

9.2.3 Navrhnuté testovanie

conf ISP1 hostname ISP1 ! points=1 msg="hostname, ISP1"

conf ISP1 section "interface Serial0/0" "ip address 10.0.0.1 255.255.255.252" ! points=1 msg="IP na

serial0/0, ISP1"

conf ISP1 section "interface Loopback0" "ip address 12.0.1.1 255.255.255.0" ! points=1 msg="IP na

loopback0, ISP1"

conf SanJose1 hostname SanJose1 ! points=1 msg="hostname , SJ1"

conf SanJose1 section "interface Serial0/0" "ip address 10.0.0.2 255.255.255.252" ! points=1 msg="IP

na serial0/0, SJ1"

Page 82: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

74

conf SanJose1 section "interface Loopback0" "ip address 192.168.1.1 255.255.255.0" ! points=1

msg="IP na loopback0, SJ1"

conf SanJose1 section "interface Serial0/1" "ip address 192.168.64.1 255.255.255.0" ! points=1

msg="serial0/1, SJ1"

conf WESTASMAN hostname WESTASMAN ! points=1 msg="hostname, WESTAMAN"

conf WESTASMAN section "interface FastEthernet1/0" "ip address 10.10.10.1 255.255.255.0" !

points=1 msg="IP na fastethernet1/0, WESTAMAN"

conf WESTASMAN section "interface Loopback0" "ip address 192.168.0.1 255.255.255.0" ! points=1

msg="IP na Loopback0, WESTAMAN"

conf WESTASMAN section "interface Serial0/0" "192.168.64.2 255.255.255.252" ! points=1 msg="IP

na Serial0/0, WESTAMAN"

conf SanJose2 hostname SanJose2 ! points=1 msg="hostname, SJ2"

conf SanJose2 section "interface FastEthernet1/0" "ip address 10.10.10.2 255.255.255.0" ! points=1

msg="IP na fastethernet1/0, SJ2"

conf SanJose2 section "interface Loopback0" "ip address 192.168.2.1 255.255.255.0" ! points=1

msg="IP na loopback0, SJ2"

conf SanJose2 section "interface Serial0/0" "172.16.0.2 255.255.255.252" ! points=1 msg="IP na

serial0/0, SJ2"

conf ISP2 hostname ISP2 ! points=1 msg="hostname, ISP2"

conf ISP2 section "interface Serial0/0" "ip address 172.16.0.1 255.255.255.252" ! points=1 msg="IP

na serial0/0, ISP2"

conf ISP2 section "interface Loopback0" "ip address 172.16.1.1 255.255.255.0" ! points=1 msg="IP

na loopback0, ISP2"

max ! msg="variable testing"

and ! points=30 msg="functional testing"

exec ISP1 status "ip route" 192.168.0.0 ! type=bgp msg="route 192.168.0.0 from customer at ISP1,

ISP1"

exec ISP1 status "ip route" 192.168.1.0 ! type=bgp msg="route 192.168.1.0 from customer at ISP1,

ISP1"

exec ISP1 status "ip route" 192.168.2.0 ! type=bgp msg="route 192.168.2.0 from customer at ISP1,

ISP1"

Page 83: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

75

exec ISP2 status "ip route" 192.168.0.0 ! type=bgp msg="route 192.168.0.0 from customer at ISP2,

ISP2"

exec ISP2 status "ip route" 192.168.1.0 ! type=bgp msg="route 192.168.1.0 from customer at ISP2,

ISP2"

exec ISP2 status "ip route" 192.168.2.0 ! type=bgp msg="route 192.168.2.0 from customer at ISP2,

ISP2"

and ! points=10 msg="zablokovanie routy 12.0.1.0, ISP2"

~exec ISP2 status "ip route" 12.0.1.0 ! type=bgp

exec SanJose2 status "ip route" 12.0.1.0 ! type=bgp

end

and ! points=10 msg="zablokovanie routy 172.16.10.0, ISP1"

~exec ISP1 status "ip route" 172.16.1.0 ! type=bgp

exec SanJose1 status "ip route" 172.16.1.0 ! type=bgp

end

end

sum ! msg="configuration testing"

conf ISP1 section "router bgp 200" "neighbor 10.0.0.2 remote-as 100" ! points=1 msg="neighbor SJ1

statement, ISP1"

conf ISP1 section "router bgp 200" "network 12.0.1.0 mask 255.255.255.0" ! points=1 msg="bgp

network 12.0.1.0, ISP1"

conf SanJose1 section "router bgp 100" "neighbor 10.0.0.1 remote-as 200" ! points=1 msg="neighbor

ISP1 statement, SJ1"

conf SanJose1 section "router bgp 100" "network 192.168.1.0" ! points=1 msg="network 192.168.1.0,

SJ1"

conf SanJose1 section "router bgp 100" "neighbor 10.10.10.2 remote-as 100" ! points=1

msg="neighbor SJ2, SJ1"

Page 84: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

76

conf SanJose1 section "router bgp 100" "neighbor 192.168.64.2 remote-as 100" ! points=1

msg="neighbor Westasman, SJ1"

conf SanJose1 section "router bgp 100" "neighbor 10.10.10.2 next-hop-self" ! points=1 msg="next-

hop-self SJ2, SJ1"

conf SanJose1 section "router bgp 100" "neighbor 10.0.0.1 distribute-list 1 out" ! points=1

msg="neighbor ISP1, SJ1"

conf SanJose1 section "router bgp 100" "neighbor 192.168.64.2 next-hop-self" ! points=1

msg="next-hop-self WestasMan, SJ1"

conf SanJose1 section "router ospf" "network 192.168.64." ! points=1 msg="network 192.168.64.0 ,

SJ1"

conf SanJose1 regexp access-list 1 permit 192.168.0.0 0.0 ! points=1 msg="access-list 192.168.0.0

siete zakaznika , SJ1"

conf WESTASMAN section "router bgp 100" "neighbor 192.168.64.1 remote-as 100" ! points=1

msg="neighbor SJ1, WESTASMAN"

conf WESTASMAN section "router bgp 100" "network 192.168.0.0" ! points=1 msg="network

192.168.0.0, WESTAMAN"

conf WESTASMAN section "router bgp 100" "neighbor 10.10.10.2 remote-as 100" ! points=1

msg="neighbor SJ2, WESTASMAN"

exec WESTASMAN show "ip ospf neighbor" FastEthernet1/0 ! points=1 msg="ospf neighbor SJ2,

WESTAMAN"

exec WESTASMAN show "ip ospf neighbor" Serial0/0 ! points=1 msg="ospf neighbor SJ1,

WESTASMAN"

conf SanJose2 section "router bgp 100" "172.16.0.1 remote-as 300" ! points=1 msg="neighbor ISP2,

SJ2"

conf SanJose2 section "router bgp 100" "network 192.168.2.0" ! points=1 msg="network

192.168.2.0, SJ2"

conf SanJose2 section "router bgp 100" "neighbor 10.10.10.1 remote-as 100" ! points=1

msg="neighbor WestasMan, SJ2"

conf SanJose2 section "router bgp 100" "neighbor 192.168.64.1 remote-as 100" ! points=1

msg="neighbor SJ1, SJ2"

Page 85: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

77

conf SanJose2 section "router bgp 100" "neighbor 10.10.10.1 next-hop-self" ! points=1 msg="next-

hop-self WestasMan, SJ2"

conf SanJose2 section "router bgp 100" "neighbor 192.168.64.1 next-hop-self" ! points=1

msg="next-hop-self SJ1, SJ2"

conf SanJose2 section "router ospf" "network 10.10.10." ! points=1 msg="network 10.10.10.0, SJ2"

conf ISP2 section "router bgp 300" "neighbor 172.16.0.2 remote-as 100" ! points=1 msg="neighbor

SJ2, ISP2"

conf ISP2 section "router bgp 300" "172.16.1.0 mask 255.255.255.0" ! points=1 msg="network

172.16.1.0, ISP2"

end

print Max points: 48

print Earned points:

9.2.4 Výpis pri dosiahnutí plného počtu bodov

hostname, ISP1: 1/1

IP na serial0/0, ISP1: 1/1

IP na loopback0, ISP1: 1/1

hostname , SJ1: 1/1

IP na serial0/0, SJ1: 1/1

IP na loopback0, SJ1: 1/1

serial0/1, SJ1: 1/1

hostname, WESTAMAN: 1/1

IP na fastethernet1/0, WESTAMAN: 1/1

IP na Loopback0, WESTAMAN: 1/1

IP na Serial0/0, WESTAMAN: 1/1

hostname, SJ2: 1/1

IP na fastethernet1/0, SJ2: 1/1

IP na loopback0, SJ2: 1/1

IP na serial0/0, SJ2: 1/1

hostname, ISP2: 1/1

Page 86: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

78

IP na serial0/0, ISP2: 1/1

IP na loopback0, ISP2: 1/1

MAX variable testing = 30.0 pts: functional testing: 30.0/30.0

route 192.168.0.0 from customer at ISP1, ISP1: 0/0

route 192.168.1.0 from customer at ISP1, ISP1: 0/0

route 192.168.2.0 from customer at ISP1, ISP1: 0/0

route 192.168.0.0 from customer at ISP2, ISP2: 0/0

route 192.168.1.0 from customer at ISP2, ISP2: 0/0

route 192.168.2.0 from customer at ISP2, ISP2: 0/0

zablokovanie routy 12.0.1.0, ISP2: 10.0/10.0

zablokovanie routy 172.16.10.0, ISP1: 10.0/10.0

variable testing: 30.0/30.0

Max points: 48

Earned points:

48

9.3 Vytvorenie testovania pre IBGP and EBGP

9.3.1 Zadanie úlohy IBGP and EBGP

Page 87: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

79

Objective

In this lab, the student will configure both IBGP and EBGP. In order for IBGP peers to correctly exchange routing information, the next-hop-self command must be used. Use of

LOCAL-PREFERENCE and MED attributes must also be used. This is to insure that the flat

rate unlimited use T1 link is used for sending and receiving data to and from the AS 200 on ISP. The metered T1 should only be used in the event that the primary T1 link has failed. Traffic sent across the metered T1 link offers the same bandwidth of the primary link but at a huge expense. Insure that this link is not used unnecessarily.

Note: Lo0 interface on SanJose routers is designed to be used as router ID and for BGP peering Lo1 interfaces are designed to represent two internal LANs in ITA network.

Scenario

The International Travel Agency runs BGP on its SanJose1 and SanJose2 routers externally with ISP1, AS 200. IBGP is run internally between SanJose1 and SanJose2. The job is to configure both EBGP and IBGP for this internetwork to allow for redundancy.

Step 1

Build and configure the network according to the diagram, but do not configure a routing protocol. Configure a loopback1 interface on the SanJose1 and SanJose2 routers as shown. These loopbacks will be used with BGP neighbor statements for increased stability.

Page 88: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

80

Use ping to test connectivity between the directly connected routers.

Step 2

Configure EIGRP between the SanJose1 and SanJose2 routers with the same commands as follows:

SanJose(config)#router eigrp 64512

SanJose(config-router)#network 172.16.0.0

Because loopback interface also belong 172.16.0.0 network, but do not need EIGRP to be run on them, add passive-interface commands to prevent EIGRP from consuming

additional resources on router.

Step 3

Configure IBGP between the SanJose1 and SanJose2 routers. On the SanJose1 router,

enter the following configuration:

SanJose1(config)# router bgp 64512

SanJose1(config-router)# no auto-summary

SanJose1(config-router)# neighbor 172.16.32.1 remote-as 64512

SanJose1(config-router)# neighbor 172.16.32.1 update-source lo0

This topology uses VLSM. Therefore, automatic summarization along classful boundaries, should be disabled with the no auto-summary command.

If multiple pathways to the neighbor exist, then the router can use any IP interface to communicate by way of BGP. The update-source lo0 command instructs the router to

use interface loopback 0 for TCP connections. This command will offer greater fault tolerance in the event that one of the potentially numerous links within the corporate EIGRP WAN cloud fails.

Verify that SanJose1 and SanJose2 become BGP neighbors by issuing the show ip bgp

summary command. If the BGP state is not established, troubleshoot the connection.

Because IBGP will eventually advertise networks that might not be a part of the EIGRP

172.16.0.0 network, the following command should be entered on SanJose1 and SanJose2:

SanJose1(config)# router bgp 64512

SanJose1(config-router)#no synchronization

SanJose2(config)# router bgp 64512

SanJose2(config-router)#no synchronization

The no synchronization command permits BGP to advertise networks regardless of

whether EIGRP knows of the network. Usually, a BGP speaker does not advertise a route to

an external neighbor unless that route is local or exists in the IGP.

Step 4

Configure ISP1 to run EBGP with SanJose1 and SanJose2. Enter the following commands on ISP1 as shown in the following:

Page 89: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

81

ISP1(config)# router bgp 200

ISP1(config-router)# no auto-summary

ISP1(config-router)# neighbor 192.168.1.6 remote-as 64512

ISP1(config-router)# neighbor 192.168.1.2 remote-as 64512

ISP1(config-router)# network 192.168.100.0

Because EBGP sessions are almost always established over point-to-point links, there is no reason to use the update-source keyword in this configuration. Only one path exists

between the peers. If this path goes down, alternative paths are not available.

Step 5

Configure EBGP between the SanJose1, SanJose2 and ISP1 routers. On the SanJose1

router, enter the following configuration:

SanJose1(config)# router bgp 64512

SanJose1(config-router)# neighbor 192.168.1.5 remote-as 200

SanJose1(config-router)# network 172.16.0.0

Use the show ip bgp summary command to verify that EBGP sessions have reached the

Established state. Troubleshoot, if necessary.

Step 6

Test whether ISP1 can ping the Loopback 0 address of 172.16.64.1 from SanJose1, as well as the serial link between SanJose1 and SanJose2, 172.16.1.1.

Now ping from ISP1 to the Loopback 0 address of 172.16.32.1 from SanJose2, as well as the

serial link between SanJose1 and SanJose2. This time try 172.16.1.2.

Successful pings should be seen to each IP address on SanJose2 router. Ping attempts to

the 172.16.64.1 and 172.16.1.1 should fail. If the ping to these two addresses works, use clear ip bgp * on ISP1 router.

1. Why is this the case?

Now try extended ping with source IP address of 192.18.100.1. Does it work? Why or why not?

Notice that ISP1 has two valid routes to the 172.16.0.0 network, indicated by the *. However,

the link to SanJose2, the metered T1, has been selected as the best path. While that may be better for the ISP, a premium will be paid for each megabyte transferred across this link.

2. Was this a malicious attempt by the ISP to get more money? Why did the ISP prefer the link to SanJose2 over SanJose1? 3. Would changing the bandwidth metric on each link help to correct this issue?

Page 90: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

82

BGP operates differently than all other protocols. Unlike other routing protocols which may use complex algorithms involving factors such as bandwidth, delay, reliability, and load to formulate a metric, BGP is policy-based. BGP will determine the best path based upon variables such as, AS_Path, Weight, Local Preference, MED, and so on. All things being

equal, as in this case, BGP will prefer the route leading to the BGP speaker with the lowest IP address. This was not a malicious attempt by the ISP to get additional funds. In fact, this ISP1 router was configured from the beginning. The SanJose2 router with address 192.168.1.2 was preferred to the higher IP address of the SanJose1 router, 192.168.1.6.

At this point, the ISP1 router should be able to get to each network connected to SanJose1 and SanJose2 from the FastEthernet address 192.168.100.1. Verify the complete reachability using extended ping.

ISP1# ping 172.16.1.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:

.....

Success rate is 0 percent (0/5)

ISP1# ping 172.16.64.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 172.16.64.1, timeout is 2 seconds:

.....

Success rate is 0 percent (0/5)

Step 7

Before the ISP can successfully ping the internal serial interfaces of AS 64512, two issues need to be resolved. First, SanJose1 does not know about the link between the ISP and SanJose2. Second, SanJose2 is unaware of the link between the ISP and SanJose1. This can be resolved by an advertisement of these serial links by way of BGP on the ISP router. This can also be resolved by way of EIGRP on each of the SanJose routers. The preferred method

is for the ISP to advertise these links. If they are advertised and then, at a future date, a BGP link is activated to another ISP in addition to ISP1 at AS 200, then there is a risk of becoming a Transit AS.

The next issue to consider is BGP policy routing between AS systems. BGP routers do not

increment the next hop address to their IBGP peers. The SanJose2 router is passing a policy

to SanJose1 and vice versa. The policy for routing from AS 64512 to AS 200 is to forward

packets to the 192.168.1.1 interface. SanJose1 has a similar yet opposite policy, forwarding

requests to the 192.168.1.5 interface. In the event that either WAN link fails, it is critical that the opposite router become a valid gateway. This is only achieved if the next-hop-self

command is configured on SanJose1 and SanJose2.

Before the next-hop-self command was issued:

SanJose2# show ip bgp

BGP table version is 3, local router ID is 172.16.32.1

Status codes: s suppressed, d damped, h history, * valid, > best, i – internal

Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path

*> 172.16.0.0 0.0.0.0 0 32768 i

* i 172.16.64.1 0 100 0 i

*> 192.168.100.0 192.168.1.1 0 0 200 i

* i 192.168.1.5 0 100 0 200 i

Page 91: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

83

SanJose1(config)# router bgp 64512

SanJose1(config-router)# neighbor 172.16.32.1 next-hop-self

SanJose2(config)# router bgp 64512

SanJose2(config-router)# neighbor 172.16.64.1 next-hop-self

After issuing these commands, reset BGP operation on either router by entering the command clear ip bgp *.

After the routers have returned to established BGP speakers, issue the show ip bgp

command to validate that the next hop has also been corrected.

SanJose2# show ip bgp

BGP table version is 3, local router ID is 172.16.32.1

Status codes: s suppressed, d damped, h history, * valid, > best, i – internal

Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path

* i172.16.0.0 172.16.64.1 0 100 0 i

*> 0.0.0.0 0 32768 i

* i192.168.100.0 172.16.64.1 0 100 0 200 i

*> 192.168.1.1 0 100 0 200 i

Step 8

At this point, everything looks good with the exception of default routes, the outbound flow of data, and inbound packet flow.

Since the local preference value is shared between IBGP neighbors, configure a simple route-map that references local preference value on SanJose1 and SanJose2. This policy will adjust outbound traffic to prefer the link off the SanJose1 router instead of the metered T1 off SanJose2.

Issue the following commands on SanJose1 and SanJose2 respectively:

SanJose1(config)# route-map PRIMARY_T1_IN permit 10

SanJose1(config-route-map)# set local-preference 150

SanJose1(config-route-map)# exit

SanJose1(config)# router bgp 64512

SanJose1(config-router)# neighbor 192.168.1.5 route-map PRIMARY_T1_IN

in

SanJose2(config)# route-map SECONDARY_T1_IN permit 10

SanJose2(config-route-map)# set local-preference 125

SanJose2(config-route-map)# router bgp 64512

SanJose2(config-router)# neighbor 192.168.1.1 route-map SECONDARY_T1_IN

in

Do not forget to use the command clear ip bgp * after configuring this new policy. Once

the conversations have been re-established, issue the show ip bgp command on

SanJose1 and SanJose2. Verify that routing to the FastEthernet segment for ISP1, 192.168.100.0 /24, will be reached only through the link common to SanJose1 and ISP1.

Step 9

5. How will traffic return from network 192.168.100.0 /24? Will it be routed through SanJose1 or SanJose2?

Page 92: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

84

The simplest solution would be to issue show ip bgp on ISP1 router. What if access was

not given to the ISP router? Would there be a simple way to verify before receiving the monthly bill? Traffic returning from the Internet should not be passed across the metered T1. How can it be checked instantly? Use an extended ping in this situation. Issue the following

command and compare the output to that provided in the following: SanJose2# ping

Protocol [ip]:

Target IP address: 192.168.100.1

Repeat count [5]: 2

Datagram size [100]:

Timeout in seconds [2]:

Extended commands [n]: y

Source address or interface: 172.16.32.1

Type of service [0]:

Set DF bit in IP header? [no]:

Validate reply data? [no]:

Data pattern [0xABCD]:

Loose, Strict, Record, Timestamp, Verbose[none]: r

Number of hops [ 9 ]:

Loose, Strict, Record, Timestamp, Verbose[RV]:

Sweep range of sizes [n]:

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.100.1, timeout is 2 seconds:

Packet has IP options: Total option bytes= 39, padded length=40

Record route: <*>

(0.0.0.0)

(0.0.0.0)

(0.0.0.0)

(0.0.0.0)

(0.0.0.0)

(0.0.0.0)

(0.0.0.0)

(0.0.0.0)

(0.0.0.0)

Reply to request 0 (12 ms). Received packet has options

Total option bytes= 40, padded length=40

Record route:

(172.16.2.2)

(192.168.1.6)

(192.168.100.1)

(192.168.1.5)

(172.16.2.1)

(172.16.32.1) <*>

(0.0.0.0)

(0.0.0.0)

(0.0.0.0)

End of list

Reply to request 1 (8 ms). Received packet has options

Total option bytes= 40, padded length=40

Record route:

(172.16.2.2)

(192.168.1.6)

(192.168.100.1)

(192.168.1.5)

(172.16.2.1)

(172.16.32.1) <*>

(0.0.0.0)

(0.0.0.0)

(0.0.0.0)

End of list

Page 93: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

85

If the record option has not been used prior to this, the important thing to note is that each of the IP addresses in brackets is an outgoing interface. The output can be interpreted as follows:

1. A ping that is sourced from 172.16.32.1 will exit SanJose2 through s0/0, 172.16.1.2. It will then arrive at the S0/1 interface for SanJose1. 2. SanJose1 S0/0, 192.168.1.6, routes the packet out to arrive at the S0/0 interface of ISP1. 3. The target of 192.168.100.1 is reached, 192.168.100.1. 4. The packet is next forwarded out the S0/1, 192.168.1.1, interface for ISP1 and arrives at the S0/1 interface for SanJose2. 5. SanJose2 then forwards the packet out the last interface, Loopback 0, 172.16.32.1.

Although the unlimited use of the T1 from SanJose1 is preferred here, the ISP prefers the link

from SanJose2 for all return traffic.

The next step is to create a new policy to force the ISP to return all traffic via SanJose1. Create a second route-map utilizing the MED (metric) which is shared between EBGP neighbors.

SanJose1(config)# route-map PRIMARY_T1_MED_OUT permit 10

SanJose1(config-route-map)# set Metric 50

SanJose1(config-route-map)# exit

SanJose1(config)# router bgp 64512

SanJose1(config-router)# neighbor 192.168.1.5 route-map

PRIMARY_T1_MED_OUT out

SanJose2(config)# route-map SECONDARY_T1_MED_OUT permit 10

SanJose2(config-route-map)# set Metric 75

SanJose2(config-route-map)# exit

SanJose2(config)# router bgp 64512

SanJose2(config-router)# neighbor 192.168.1.1 route-map

SECONDARY_T1_MED_OUT out

As before, do not forget to clear ip bgp * after issuing this new policy. Issuing the show

ip bgp command as follows on SanJose1 or SanJose2 will not indicate anything about this

newly defined policy Now reissue an extended ping with a record command as follows:

SanJose2# ping

Protocol [ip]:

Target IP address: 192.168.100.1

Repeat count [5]: 2

Datagram size [100]:

Timeout in seconds [2]:

Extended commands [n]: y

Source address or interface: 172.16.32.1

Type of service [0]:

Set DF bit in IP header? [no]:

Validate reply data? [no]:

Data pattern [0xABCD]:

Loose, Strict, Record, Timestamp, Verbose[none]: record

Page 94: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

86

Number of hops [ 9 ]:

Loose, Strict, Record, Timestamp, Verbose[RV]:

Sweep range of sizes [n]:

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.100.1, timeout is 2 seconds:

Packet has IP options: Total option bytes= 39, padded length=40

Record route: <*>

(0.0.0.0)

(0.0.0.0)

(0.0.0.0)

(0.0.0.0)

(0.0.0.0)

(0.0.0.0)

(0.0.0.0)

(0.0.0.0)

(0.0.0.0)

Reply to request 0 (8 ms). Received packet has options

Total option bytes= 40, padded length=40

Record route:

(172.16.2.2)

(192.168.1.6)

(192.168.100.1)

(192.168.1.5)

(172.16.2.1)

(172.16.32.1) <*>

(0.0.0.0)

(0.0.0.0)

(0.0.0.0)

End of list

Reply to request 1 (8 ms). Received packet has optionsTotal option bytes= 40, padded

length=40

Record route:

(172.16.1.2)

(192.168.1.6)

(192.168.100.1)

(192.168.1.5)

(172.16.2.1)

(172.16.32.1) <*>

(0.0.0.0)

(0.0.0.0)

(0.0.0.0)

End of list

6. Does the output look correct? Does the 192.168.1.5 above mean that the ISP1 will now prefer SanJose1 for return traffic?

There will not be a chance to telnet to the ISP router and to issue the show ip bgp

command. However, the command on the opposite side of the newly configured policy MED is clear, showing that the lower value is considered best. The ISP now prefers the route with

the lower MED value to AS 64512. This is just opposite from the local-preference knob configured earlier.

Step 10

The final step is to establish a default route that uses a policy statement that will adjust to

changes in the network. Configure both SanJose1 and SanJose2 to use the 192.168.100.0 /24 network as the default network. The output that follows includes the routing table before the command was issued, the actual command syntax, and then the routing table after the command was issued. Complete the same task on the SanJose2 router.

Page 95: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

87

SanJose1# show ip route ****Note: Prior to Default-Network Statement****

Gateway of last resort is not set

172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks

D 172.16.32.0/24 [90/20640000] via 172.16.1.2, 02:43:46, Serial0/1

B 172.16.0.0/16 [200/0] via 172.16.32.1, 00:12:32

C 172.16.1.0/24 is directly connected, Serial0/1

C 172.16.64.0/24 is directly connected, Loopback0

192.168.1.0/30 is subnetted, 2 subnets

B 192.168.1.0 [20/0] via 192.168.1.5, 00:14:05

C 192.168.1.4 is directly connected, Serial0/0

B 192.168.100.0/24 [20/0] via 192.168.1.5, 00:14:05

SanJose1(config)# ip default-network 192.168.100.0

SanJose1# show ip route

Gateway of last resort is 192.168.1.5 to network 192.168.100.0

172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks

D 172.16.32.0/24 [90/20640000] via 172.16.1.2, 02:44:09, Serial0/1

B 172.16.0.0/16 [200/0] via 172.16.32.1, 00:12:55

C 172.16.1.0/24 is directly connected, Serial0/1

C 172.16.64.0/24 is directly connected, Loopback0

192.168.1.0/30 is subnetted, 2 subnets

B 192.168.1.0 [20/0] via 192.168.1.5, 00:14:28

C 192.168.1.4 is directly connected, Serial0/0

B* 192.168.100.0/24 [20/0] via 192.168.1.5, 00:14:29

What would be required to add a future T3 link on SanJose2 and for this future link to have preference for incoming and outgoing traffic? A newly added route would be as easy as adding another route-map for local-preference with a value of 175 and a route-map referencing a MED (metric) value of 35. You would then issue the clear ip bgp * command and this lab is then completed.

9.3.2 Vzorová konfigurácia

SanJose1

hostname SanJose1

interface Loopback0

ip address 172.16.64.1 255.255.255.255

!

interface Loopback1

ip address 172.16.3.1 255.255.255.0

!

interface Serial0/0

Page 96: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

88

description ISP1

ip address 192.168.1.6 255.255.255.252

no shutdown

interface Serial0/1

description SJ2

ip address 172.16.1.1 255.255.255.0

no shut

interface FastEthernet1/0

description SJ2-2

ip address 172.16.2.1 255.255.255.0

no shutdown

router eigrp 64512

passive-interface Loopback0

passive-interface Loopback1

network 172.16.0.0

no auto-summary

!

router bgp 64512

no synchronization

bgp log-neighbor-changes

network 172.16.0.0

network 172.16.64.1 mask 255.255.255.255

neighbor 172.16.32.1 remote-as 64512

neighbor 172.16.32.1 update-source Loopback0

neighbor 172.16.32.1 next-hop-self

neighbor 192.168.1.5 remote-as 200

neighbor 192.168.1.5 route-map PRIMARY_T1_IN in

neighbor 192.168.1.5 route-map PRIMARY_T1_MED_OUT out

no auto-summary

!

route-map PRIMARY_T1_IN permit 10

set local-preference 150

!

Page 97: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

89

route-map PRIMARY_T1_MED_OUT permit 10

set metric 50

!

SanJose2

hostname SanJose2

interface Loopback0

ip address 172.16.32.1 255.255.255.255

!

interface Loopback1

ip address 172.16.4.1 255.255.255.0

!

interface Serial0/0

description SJ1

ip address 172.16.1.2 255.255.255.0

no shut

!

interface Serial0/1

description ISP1

ip address 192.168.1.2 255.255.255.252

no shut

!

interface FastEthernet1/0

description SJ1-2

ip address 172.16.2.2 255.255.255.0

no shutdown

router eigrp 64512

passive-interface Loopback0

passive-interface Loopback1

network 172.16.0.0

no auto-summary

!

Page 98: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

90

router bgp 64512

no synchronization

bgp log-neighbor-changes

network 172.16.32.1 mask 255.255.255.255

neighbor 172.16.64.1 remote-as 64512

neighbor 172.16.64.1 update-source Loopback0

neighbor 172.16.64.1 next-hop-self

neighbor 192.168.1.1 remote-as 200

neighbor 192.168.1.1 route-map SECONDARY_T1_IN in

neighbor 192.168.1.1 route-map SECONDARY_T1_MED_OUT out

no auto-summary

!

route-map SECONDARY_T1_IN permit 10

set local-preference 125

!

route-map SECONDARY_T1_MED_OUT permit 10

set metric 75

ISP1

hostname ISP1

interface Serial0/0

ip address 192.168.1.5 255.255.255.252

no shut

!

interface Serial0/1

ip address 192.168.1.1 255.255.255.252

no shut

!

interface FastEthernet1/0

ip address 192.168.100.1 255.255.255.0

no shut

!

Page 99: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

91

router bgp 200

no synchronization

bgp log-neighbor-changes

network 192.168.100.0

neighbor 192.168.1.2 remote-as 64512

neighbor 192.168.1.6 remote-as 64512

no auto-summary

!

9.3.3 Navrhnuté testovanie

conf SanJose1 section "interface Loopback0" "ip address 172.16.64.1 255.255.255.255" ! points=1

msg="IP address on Loopback0, SanJose1"

conf SanJose1 section "interface Loopback1" "ip address 172.16.3.1 255.255.255.0" ! points=1

msg="IP address on Loopback1, SanJose1"

conf SanJose1 section "interface Serial0/0" "ip address 192.168.1.6 255.255.255.252" ! points=1

msg="IP address on Serial0/0, SanJose1"

conf SanJose1 section "interface Serial0/1" "ip address 172.16.1.1 255.255.255.0" ! points=1 msg="IP

address on Serial0/1, SanJose1"

conf SanJose1 section "interface FastEthernet1/0" "ip address 172.16.2.1 255.255.255.0" ! points=1

msg="IP address on FastEthernet1/0, SanJose1"

conf SanJose2 section "interface Loopback0" "ip address 172.16.32.1 255.255.255.255" ! points=1

msg="IP address on Loopback0, SanJose2"

conf SanJose2 section "interface Loopback1" "ip address 172.16.4.1 255.255.255.0" ! points=1

msg="IP address on Loopback1, SanJose2"

conf SanJose2 section "interface Serial0/0" "ip address 172.16.1.2 255.255.255.0" ! points=1 msg="IP

address on Serial0/0, SanJose2"

conf SanJose2 section "interface Serial0/1" "ip address 192.168.1.2 255.255.255.252" ! points=1

msg="IP address on Serial0/1, SanJose2"

conf SanJose2 section "interface FastEthernet1/0" "ip address 172.16.2.2 255.255.255." ! points=1

msg="IP address on , SanJose2"

Page 100: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

92

conf ISP1 section "interface Serial0/0" "ip address 192.168.1.5 255.255.255.252" ! points=1 msg="IP

address on Serial0/0, ISP1"

conf ISP1 section "interface Serial0/1" "ip address 192.168.1.1 255.255.255.252" ! points=1 msg="IP

address on Serial0/1, ISP1"

conf ISP1 section "interface FastEthernet1/0" "ip address 192.168.100.1 255.255.255.0" ! points=1

msg="IP address on FastEthernet1/0, ISP1"

max ! msg="variable testing"

and ! points=50 msg="functional testing"

exec SanJose1 section show ip bgp 192.168.100.0 "from 192.168.1.5" " localpref 150," ! msg="local

pref of 150 on route 192.168.100.0 from 192.168.1.5, SanJose1"

exec SanJose2 section show ip bgp 192.168.100.0 "from 172.16.64.1" " localpref 150," ! msg="local

pref of 150 on route 192.168.100.0 from 172.16.64.1, SanJose2"

exec SanJose2 section show ip bgp 192.168.100.0 "from 192.168.1.1" " localpref 125," ! msg="local

pref of 125 on route 192.168.100.0 from 192.168.1.1, SanJose2"

exec ISP1 section show ip bgp 172.16.32.1 "from 192.168.1.6" " metric 50," ! msg="metric of 50 on

route 172.16.32.1 from 192.168.1.6, ISP1"

exec ISP1 section show ip bgp 172.16.32.1 "from 192.168.1.2" " metric 75," ! msg="metric of 75 on

route 172.16.32.1 from 192.168.1.2, ISP1"

exec ISP1 section show ip bgp 172.16.64.1 "from 192.168.1.2" " metric 75," !msg="metric of 75 on

route 172.16.64.1 from 192.168.1.2, ISP1"

exec ISP1 section show ip bgp 172.16.64.1 "from 192.168.1.6" " metric 50," ! msg="metric of 50 on

route 172.16.64.1 from 192.168.1.6, ISP1"

exec ISP1 show "ip bgp nei" 'BGP neighbor is 192.168.1.6, remote AS 64512, external link' !

msg="BGP neighbor SJ1 192.168.1.6 AS 64512 external, ISP1"

exec ISP1 show "ip bgp summ" 192.168.1.6 ! points=1 msg="BGP route 192.168.1.6 as neighbor,

ISP1"

Page 101: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

93

exec ISP1 show "ip bgp nei" 'BGP neighbor is 192.168.1.2, remote AS 64512, external link' !

msg="BGP neighbor SJ2 192.168.1.2 AS 64512 external, ISP1"

exec SanJose1 show "ip bgp nei" 'BGP neighbor is 192.168.1.5, remote AS 200, external link' !

msg="BGP neighbor ISP1 192.168.1.5 AS 200 external, SanJose1"

exec SanJose1 show "ip bgp nei" 'BGP neighbor is 172.16.32.1, remote AS 64512, internal link' !

msg="BGP neighbor SJ2 172.16.32.1 AS 64512 internal, SanJose1"

exec SanJose2 show "ip bgp nei" 'BGP neighbor is 172.16.64.1, remote AS 64512, internal link' !

msg="BGP neighbor SJ1 172.16.64.4 AS 64512 external, SanJose2"

exec SanJose2 show "ip bgp nei" 'BGP neighbor is 192.168.1.1, remote AS 200, external link' !

msg="BGP neighbor ISP1 192.168.1.1 AS 200 external, SanJose2"

end

sum ! msg="configuration testing"

#SanJose1

conf SanJose1 regexp router eigrp 64512 ! points=1 msg="EIGRP AS 64512, SanJose1"

conf SanJose1 section "router eigrp" "passive-interface Loopback0" ! points=1 msg="EIGRP passive-

interface Loopback0, SanJose1"

conf SanJose1 section "router eigrp" "passive-interface Loopback1" ! points=1 msg="passive-

interface Loopback1, SanJose1"

conf SanJose1 section "router eigrp" "network 172.16." ! points=1 msg="EIGRP network 172.16.0.0,

SanJose1"

conf SanJose1 section "router eigrp" "no auto-summary" ! points=1 msg="EIGRP no auto-summary,

SanJose1"

conf SanJose1 section "router bgp" "network 172.16.64.1 mask 255.255.255.255" ! points=1

msg="BGP network 172.16.64.1 mask 255.255.255.255, SanJose1"

conf SanJose1 section "router bgp" "neighbor 172.16.32.1 remote-as 64512" ! points=1

msg="neighbor 172.16.32.1 remote-as 64512 , SanJose1"

conf SanJose1 section "router bgp" "neighbor 172.16.32.1 update-source Loopback0" ! points=1

msg="neighbor 172.16.32.1 update-source Loopback0, SanJose1"

Page 102: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

94

conf SanJose1 section "router bgp" "neighbor 172.16.32.1 next-hop-self" ! points=1 msg="neighbor

172.16.32.1 next-hop-self , SanJose1"

conf SanJose1 section "router bgp" "neighbor 192.168.1.5 remote-as 200" ! points=1

msg="192.168.1.5 remote-as 200, SanJose1"

conf SanJose1 section "router bgp" "neighbor 192.168.1.5 route-map PRIMARY_T1_IN in" ! points=1

msg="route-map PRIMARY_T1_IN in from neighbor 192.168.1.5, SanJose1"

conf SanJose1 section "router bgp" "neighbor 192.168.1.5 route-map PRIMARY_T1_MED_OUT out" !

points=1 msg="route-map PRIMARY_T1_MED_OUT out to 192.168.1.5, SanJose1"

conf SanJose1 regexp route-map PRIMARY_T1_IN permit ! points=1 msg="defined route-map

PRIMARY_T1_IN, SanJose1"

conf SanJose1 section "route-map PRIMARY_T1_IN permit" "set local-preference 150" ! points=1

msg="defined local pref in route-map PRIMARY_T1_IN, SanJose1"

conf SanJose1 regexp route-map PRIMARY_T1_MED_OUT ! points=1 msg="defined route-map

PRIMARY_T1_MED_OUT, SanJose1"

conf SanJose1 section "route-map PRIMARY_T1_MED_OUT permit 10" "set metric 50" ! points=1

msg="defined metric in route-map PRIMARY_T1_MED_OUT, SanJose1"

#SanJose2

conf SanJose2 regexp router eigrp 64512 ! points=1 msg="EIGRP AS 64512, SanJose2"

conf SanJose2 section "router eigrp" "passive-interface Loopback0" ! points=1 msg="EIGRP passive-

interface Loopback0, SanJose2"

conf SanJose2 section "router eigrp" "passive-interface Loopback1" ! points=1 msg="EIGRP passive-

interface Loopback1, SanJose2"

conf SanJose2 section "router eigrp" "network 172.16." ! points=1 msg="EIGRP network 172.16.0.0,

SanJose2"

conf SanJose2 section "router eigrp" "no auto-summary" ! points=1 msg="EIGRP no auto-summary,

SanJose2"

conf SanJose2 section "router bgp" "network 172.16.32.1 mask 255.255.255.255" ! points=1

msg="BGP network 172.16.32.1 mask 255.255.255.255, SanJose2"

conf SanJose2 section "router bgp" "neighbor 172.16.64.1 remote-as 64512" ! points=1 msg="BGP

neighbor 172.16.64.1 remote-as 64512, SanJose2"

Page 103: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

95

conf SanJose2 section "router bgp" "neighbor 172.16.64.1 update-source Loopback0" ! points=1

msg="BGP neighbor 172.16.64.1 update-source Loopback0, SanJose2"

conf SanJose2 section "router bgp" "neighbor 172.16.64.1 next-hop-self" ! points=1 msg="BGP

neighbor 172.16.64.1 next-hop-self, SanJose2"

conf SanJose2 section "router bgp" "neighbor 192.168.1.1 remote-as 200" ! points=1 msg="BGP

neighbor 192.168.1.1 remote-as 200, SanJose2"

conf SanJose2 section "router bgp" "neighbor 192.168.1.1 route-map SECONDARY_T1_IN in" !

points=1 msg="BGP route-map SECONDARY_T1_IN in from neighbor 192.168.1.1, SanJose2"

conf SanJose2 section "router bgp" "neighbor 192.168.1.1 route-map SECONDARY_T1_MED_OUT

out" ! points=1 msg="BGP route-map SECONDARY_T1_MED_OUT out from neighbor 192.168.1.1,

SanJose2"

conf SanJose2 regexp route-map SECONDARY_T1_IN permit ! points=1 msg="defined route-map

SECONDARY_T1_IN, SanJose2"

conf SanJose2 section "route-map SECONDARY_T1_IN permit" "set local-preference 125" ! points=1

msg="defined local pref in route-map SECONDARY_T1_IN, SanJose2"

conf SanJose2 regexp route-map SECONDARY_T1_MED_OUT permit ! points=1 msg="defined route-

map SECONDARY_T1_MED_OUT, SanJose2"

conf SanJose2 section "route-map SECONDARY_T1_MED_OUT permit 10" "set metric 75" ! points=1

msg="defined metric in route-map SECONDARY_T1_MED_OUT, SanJose2"

#ISP1

conf ISP1 section "router bgp 200" "network 192.168.100.0" ! points=1 msg="BGP network

192.168.100.0, ISP1"

conf ISP1 section "router bgp 200" "neighbor 192.168.1.2 remote-as 64512" ! points=1 msg="BGP

neighbor 192.168.1.2 remote-as 64512, ISP1"

conf ISP1 section "router bgp 200" "neighbor 192.168.1.6 remote-as 64512" ! points=1 msg="BGP

neighbor 192.168.1.6 remote-as 64512, ISP1"

end

end

Page 104: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

96

print Max points: 63

print Earned points:

9.3.4 Výpis pri dosiahnutí plného počtu bodov

IP address on Loopback0, SanJose1: 1/1

IP address on Loopback1, SanJose1: 1/1

IP address on Serial0/0, SanJose1: 1/1

IP address on Serial0/1, SanJose1: 1/1

IP address on FastEthernet1/0, SanJose1: 1/1

IP address on Loopback0, SanJose2: 1/1

IP address on Loopback1, SanJose2: 1/1

IP address on Serial0/0, SanJose2: 1/1

IP address on Serial0/1, SanJose2: 1/1

IP address on , SanJose2: 1/1

IP address on Serial0/0, ISP1: 1/1

IP address on Serial0/1, ISP1: 1/1

IP address on FastEthernet1/0, ISP1: 1/1

MAX variable testing = 50.0 pts: functional testing: 50.0/50.0

local pref of 150 on route 192.168.100.0 from 192.168.1.5, SanJose1: 0/0

local pref of 150 on route 192.168.100.0 from 172.16.64.1, SanJose2: 0/0

local pref of 125 on route 192.168.100.0 from 192.168.1.1, SanJose2: 0/0

metric of 50 on route 172.16.32.1 from 192.168.1.6, ISP1: 0/0

metric of 75 on route 172.16.32.1 from 192.168.1.2, ISP1: 0/0

metric of 75 on route 172.16.64.1 from 192.168.1.2, ISP1: 0/0

metric of 50 on route 172.16.64.1 from 192.168.1.6, ISP1: 0/0

BGP neighbor SJ1 192.168.1.6 AS 64512 external, ISP1: 0/0

BGP route 192.168.1.6 as neighbor, ISP1: 1/1

BGP neighbor SJ2 192.168.1.2 AS 64512 external, ISP1: 0/0

BGP neighbor ISP1 192.168.1.5 AS 200 external, SanJose1: 0/0

BGP neighbor SJ2 172.16.32.1 AS 64512 internal, SanJose1: 0/0

BGP neighbor SJ1 172.16.64.4 AS 64512 external, SanJose2: 0/0

Page 105: počítačovej sietilabss2.fiit.stuba.sk/TeamProject/2010/team08pss/_media/dokument.pdf · Frame Relay jeho podstata spočíva v zriadeí prístupových okruhov a v zriadení virtuálnych

97

BGP neighbor ISP1 192.168.1.1 AS 200 external, SanJose2: 0/0

variable testing: 50.0/50.0

Max points: 63

Earned points:

63