• No results found

Models of Routing Protocols for Network Simulation and Analyze

N/A
N/A
Protected

Academic year: 2021

Share "Models of Routing Protocols for Network Simulation and Analyze"

Copied!
50
0
0

Loading.... (view fulltext now)

Full text

(1)

VYSOK ´

E U ˇ

CEN´I TECHNICK ´

E V BRN ˇ

E

BRNO UNIVERSITY OF TECHNOLOGY

FAKULTA INFORMA ˇ

CN´ICH TECHNOLOGI´I

´

USTAV INFORMA ˇ

CN´ICH SYST ´

EM ˚

U

FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS

MODELY SM ˇ

EROVAC´ICH PROTOKOL ˚

U PRO S´I ˇ

TOV ´

Y

SIMUL ´

ATOR A ANAL ´

YZU CHOV ´

AN´I S´IT ˇ

E

BAKAL ´

A ˇ

RSK ´

A PR ´

ACE

BACHELOR’S THESIS

AUTOR PR ´

ACE

JAN ˇ

SAF ´

A ˇ

R

AUTHOR

(2)

VYSOK ´

E U ˇ

CEN´I TECHNICK ´

E V BRN ˇ

E

BRNO UNIVERSITY OF TECHNOLOGY

FAKULTA INFORMA ˇ

CN´ICH TECHNOLOGI´I

´

USTAV INFORMA ˇ

CN´ICH SYST ´

EM ˚

U

FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS

MODELY SM ˇ

EROVAC´ICH PROTOKOL ˚

U PRO S´I ˇ

TOV ´

Y

SIMUL ´

ATOR A ANAL ´

YZU CHOV ´

AN´I S´IT ˇ

E

MODELS OF ROUTING PROTOCOLS FOR NETWORK SIMULATION AND ANALYZE

BAKAL ´

A ˇ

RSK ´

A PR ´

ACE

BACHELOR’S THESIS

AUTOR PR ´

ACE

JAN ˇ

SAF ´

A ˇ

R

AUTHOR

VEDOUC´I PR ´

ACE

Ing. JAROSLAV R ´

AB

SUPERVISOR

(3)

Abstrakt

Pr´ace se zab´yv´a zp˚usobem implementace smˇerovac´ıho protokolu RIP do simul´atoru s´ıtˇe ns-2

Kl´ıˇ

cov´

a slova

NS2, RIP, simulace, implementace smˇerovac´ıho protokolu

Abstract

Thesis describes the way of implementation of new routing protocol for network simulator ns-2

Keywords

NS2, RIP, simulation, routing protocol implementation

Citace

Jan ˇSaf´aˇr: Modely smˇerovac´ıch protokol˚u pro s´ıt’ov´y simul´ator a anal´yzu chov´an´ı s´ıtˇe, ba-kal´aˇrsk´a pr´ace, Brno, FIT VUT v Brnˇe, 2008

(4)

Modely smˇ

erovac´ıch protokol˚

u pro s´ıt’ov´

y simul´

ator

a anal´

yzu chov´

an´ı s´ıtˇ

e

Prohl´

sen´ı

Prohlaˇsuji, ˇze jsem tuto bakal´aˇrskou pr´aci vypracoval samostatnˇe pod veden´ım pana Jaro-slava R´aba

. . . . Jan ˇSaf´aˇr 9. kvˇetna 2008

c

Jan ˇSaf´aˇr, 2008.

Tato pr´ace vznikla jako ˇskoln´ı d´ılo na Vysok´em uˇcen´ı technick´em v Brnˇe, Fakultˇe in-formaˇcn´ıch technologi´ı. Pr´ace je chr´anˇena autorsk´ym z´akonem a jej´ı uˇzit´ı bez udˇelen´ı opr´avnˇen´ı autorem je nez´akonn´e, s v´yjimkou z´akonem definovan´ych pˇr´ıpad˚u.

(5)

Obsah

1 Uvod´ 3

2 Smˇerovac´ı protokoly 4

2.1 Smˇerov´an´ı. . . 4

2.2 Distance vector protokoly . . . 5

2.2.1 RIP . . . 7

2.3 Protokoly stavu linky . . . 11

2.3.1 OSPF . . . 12

2.4 Path vector protokoly . . . 12

2.4.1 BGP . . . 12

2.5 Konfigurace na zaˇr´ızen´ıch Cisco . . . 13

2.5.1 Konfigurace bez z´avislosti na protokolu . . . 14

2.5.2 RIP . . . 15

3 Simul´ator s´ıtˇe ns-2 18 3.1 Z´akladn´ı prvky . . . 18

3.2 Smˇerovac´ı struktura . . . 19

3.3 Dostupn´e unicastov´e smˇerovac´ı protokoly . . . 21

3.4 Pˇr´ıklad skriptu . . . 21

3.5 Nedostatky v˚uˇci IPv4 . . . 23

4 N´avrh a implementace 24 4.1 Koncept rozˇs´ıˇren´ı . . . 24

4.2 Podp˚urn´e prvky a struktury . . . 24

4.2.1 IPv4 adresy . . . 25

4.2.2 Klasifik´ator . . . 25

4.2.3 Smˇerovac´ı modul . . . 26

4.2.4 Nov´y rtObject . . . 27

4.2.5 Pˇripojen´e s´ıtˇe . . . 28

4.2.6 Statick´e smˇerov´an´ı . . . 29

4.3 Smˇerovac´ı protokol RIP . . . 30

4.3.1 Nov´y typ paket˚u . . . 30

4.3.2 Hlavn´ı tˇr´ıda . . . 32

4.3.3 Seznam rozhran´ı . . . 33

4.3.4 Propojen´ı C++ a OTcl tˇr´ıd . . . 35

4.3.5 Chov´an´ı procesu . . . 35

4.4 Implementace uˇzivatelsk´eho rozhran´ı . . . 36

(6)

4.5 Debuggov´an´ı proces˚u . . . 38 4.6 Koneˇcn´e ´upravy. . . 39 5 Testy 40 5.1 N´avrh test˚u . . . 40 5.2 Test ˇc. 1 . . . 40 5.3 Test ˇc. 2 . . . 41 5.4 Test ˇc. 3 . . . 43 6 Z´avˇer 45

(7)

Kapitola 1

´

Uvod

Motivace

T´ematem t´eto pr´ace bylo zdokumentovat souˇcasn´e moˇznosti s´ıt’ov´eho simul´atoru ns-2 si-mulovat smˇerov´an´ı v IPv4 s´ıt´ıch. Tyto moˇznosti mˇeli b´yt rozˇs´ıˇreny o skuteˇcn´y smˇerovac´ı protokol RIP spoleˇcnˇe s uˇzivatelsk´ym rozhran´ım podobn´emu tomu na s´ıt’ov´ych prvc´ıch spoleˇcnosti Cisco. Spoleˇcnˇe s implementac´ı by tato pr´ace mˇela b´yt n´avodem pro dalˇs´ı rozˇsiˇrovan´ı s´ıt’ov´eho simul´atoru.

Na tuto pr´aci navazuje implementace pˇr´ıstupov´ych seznam˚u ˇreˇsen´ych v r´amci diplomov´e pr´ace Bc. Jiˇr´ım Mack˚u. Tato pr´ace spoleˇcnˇe s pˇr´ıstupov´ymi seznamy by mˇeli b´yt pouˇzity v r´amci projektu ANSA, Automated Network-wide Security Analysis, kde by mˇely slouˇzit jako souˇc´ast procedury anal´yzy bezpeˇcnosti s´ıtˇe.

Struktura dokumentu

Kapitola ‘Smˇerovac´ı protokoly’ slouˇz´ı jako pˇredstaven´ı r˚uzn´ych smˇerovac´ıch protokol˚u a jejich chov´an´ı. D˚uraz je kladen na distance vector protokoly a konkr´etnˇe na RIP, z d˚uvodu, ˇ

ze byl pˇredmˇetem implementace. D´ale je zde uveden zp˚usob konfigurace RIPu na Cisco zaˇr´ızen´ıch.

V kapitole ‘Simul´ator s´ıtˇe ns-2’ je pops´an simul´ator ns-2, jeho z´akladn´ı prvky, popis implementace smˇerov´an´ı a rozd´ıl v˚uˇci IPv4 prostˇred´ı.

‘N´avrh a implementace’ obsahuje definici vlastnost´ı, kter´e by mˇela implementace ob-sahovat. D´ale pak popisuje samotnou implementaci smˇerovac´ıho protokolu spoleˇcnˇe s jeho integrac´ı do st´avaj´ıc´ı struktury s´ıt’ov´eho simul´atoru ns-2.

(8)

Kapitola 2

Smˇ

erovac´ı protokoly

´ Uvod

Pˇred samotnou implementac´ı smˇerovac´ıho protokolu je nutn´e pochopit k ˇcemu vlastnˇe smˇerovac´ı protokoly slouˇz´ı a jak´ym zp˚usobem protokoly pracuj´ı. Stejnˇe tak je nutn´e pro-studovat jejich konfiguraci na Cisco zaˇr´ızen´ıch, jelikoˇz uˇzivatelsk´e rozhran´ı, kter´e se bude implementovat m´a b´yt podobn´e rozhran´ı na Cisco zaˇr´ızen´ı.

2.1

Smˇ

erov´

an´ı

Smˇerov´an´ı je proces v´ybˇeru cesty od zdroje k zadan´emu c´ıli skrz obecnou s´ıt’. Tento do-kument je ale konkr´etnˇe zamˇeˇren na s´ıtˇe poˇc´ıtaˇcov´e. V poˇc´ıtaˇcov´ych s´ıt´ıch se procesu smˇerov´an´ı ´uˇcastn´ı vˇsechny prvky a pˇred´avaj´ı si informace ve formˇe paket˚u. Prvky rozum´ıme smˇerovaˇce, pˇrep´ınaˇce, PC atd. Prvky vˇsak vˇetˇsinou nehledaj´ı celou cestu k c´ıli z d˚uvodu, ˇze m˚uˇze b´yt aˇz pˇr´ıliˇs sloˇzit´a, ale pouze se rozhodnout na z´akladˇe smˇerovac´ı tabulky, kter´emu dalˇs´ımu prvku paket pˇredaj´ı.

Tabulka 2.1: Pˇr´ıklad smˇerovac´ı tabulky Identifik´ator c´ıle Cena Dalˇs´ı uzel

10.0.0.0/8 1 192.168.3.6

10.3.0.0/16 2 192.168.2.1

Smˇerovac´ı tabulka je datov´a struktura jej´ıˇz z´aznamy obsahuj´ı identifik´ator (ip adresu) c´ıle, cenu cesty k dosaˇzen´ı tohoto c´ıle a dalˇs´ı uzel na cestˇe k jeho dosaˇzen´ı. Pˇri vyhled´av´an´ı ve smˇerovac´ı tabulce maj´ı pˇrednost z´aznamy s vˇetˇs´ım s´ıt’ov´ym prefixem, tzn. specifiˇctˇejˇs´ı z´aznamy. S´ıt’ov´y prefix je zkr´acen´y z´apis s´ıt’ov´e masky, pˇresnˇeji souˇcet jedniˇcek v n´ı. S´ıt’ov´a maska vymezuje, kter´a ˇc´ast z adresy je adresa s´ıtˇe a kter´a adresa prvku, pomoc´ı bitov´e operace AND. V tabulce 2.2 je vidˇet pˇr´ıklad pouˇzit´ı tˇechto pojm˚u. Zkr´acenˇe zapisujeme z´aznamy ve tvaru s´ıt’/prefix.

Pokud se pomoc´ı smˇerovac´ı tabulky z obr´azku2.1bude vyhled´avat dalˇs´ı skok pro paket, s c´ılovou adresou prvku 10.3.1.4, bude vybr´an z´aznam 10.3.0.0/16, i kdyˇz by mohl b´yt posl´an do s´ıtˇe 10.0.0.0/8, na z´akladˇe vyˇsˇs´ıho prefixu

Ot´azka je, na z´akladˇe ˇceho si kaˇzd´y prvek vytvoˇr´ı svoj´ı smˇerovac´ı tabulku? M˚uˇze b´yt samozˇrejmˇe vytvoˇrena ruˇcnˇe, u osobn´ıch poˇc´ıtaˇc˚u s jedn´ım s´ıt’ov´ym je to pomˇernˇe

(9)

jedno-Tabulka 2.2: Aplikace s´ıt’ov´e masky

IP adresa 00001100.00000010.00000101.00100101

S´ıt’ov´a maska 11111111.11111111.11111100.00000000

S´ıt’ 00001100.00000010.00000100.00000000

Prefix 22

duch´e, staˇc´ı definovat cestu k br´anˇe, na kterou maj´ı smˇerovat vˇsechny pakety, kter´e nejsou urˇcen´e pro pˇripojenou s´ıt’. U zaˇr´ızen´ı s v´ıce rozhran´ımi nen´ı situace tak snadn´a, protoˇze administr´ator mus´ı definovat cesty ke vˇsem s´ıt´ım do kter´ych chce m´ıt pˇr´ıstup. A pokud velikost smˇerovac´ı tabulky pˇres´ahne urˇcitou velikost, m˚uˇze se st´at jej´ı spr´ava n´aroˇcnou. To-muto zp˚usobu se ˇr´ık´a manu´aln´ı smˇerovan´ı, protoˇze m˚uˇze zmˇenit pouze lidsk´ym z´asahem. Je moˇzn´e se setkat i s pojmem statick´e smˇerov´an´ı.

V´ychodiskem pro prvky, kde by ruˇcn´ı definov´an´ı tabulky bylo pˇr´ıliˇs zdlouhav´e nebo nev´yhodn´e, leˇz´ı ve smˇerovac´ıch protokolech. Smˇerovac´ı protokoly slouˇz´ı k v´ymˇenˇe smˇerovac´ıch informac´ı mezi uzly v s´ıt´ı a tedy k propagaci cesty k c´ıl˚um. Jejich v´yhodou oproti manu´aln´ımu smˇerov´an´ı je, ˇze mohou aktivnˇe reagovat na zmˇeny v s´ıt´ı a mˇenit smˇerovac´ı tabulku na z´akladˇe tˇechto zmˇen, napˇr´ıklad v´ypadek prvku nebo linky. Z toho d˚uvodu se smˇerov´an´ı pomoc´ı smˇerovac´ıch protokol˚u naz´yv´a dynamick´e.

Smˇerovac´ı protokoly v prostˇred´ı internetu se daj´ı rozdˇelit, na z´akladˇe parametr˚u, do r˚uzn´ych skupin. Nejˇcastˇeji se rozdˇeluj´ı podle m´ısta pouˇzit´ı a to do 2 skupin. EGP, exterior gateway protocol nebo-li vnˇejˇs´ı smˇerovac´ı protokol, slouˇz´ı ke smˇerovan´ı mezi autonomn´ımi syst´emy, zkr´acenˇe AS. AS je ˇc´ast s´ıtˇe s jednotnou smˇerovac´ı politikou v˚uˇci zbytku internetu, kter´y je vlastnˇe s´ıt´ı autonomn´ıch syst´em˚u. Typicky tuto politiku ˇr´ıd´ı nˇejak´a organizace, napˇr´ıklad poskytovatel internetu, ISP.

Druhou skupinou jsou IGP, interior gateway protocol nebo-li vnitˇrn´ı smˇerovac´ı protokol, kter´y se pouˇz´ıv´a pro smˇerov´an´ı uvnitˇr autonomn´ıho syst´emu.

Tak´e se daj´ı rozdˇelit podle zp˚usobu jak´ym jednotliv´e uzly vymˇeˇnuj´ı smˇerovac´ı informace.

2.2

Distance vector protokoly

Distance vektor protokoly vyuˇz´ıvaj´ı Bellman-Ford˚uv algoritmus pro v´ypoˇcet smˇerovac´ı ta-bulky. Protokoly pracuj´ı na jednoduch´em principu, prvek zn´a nejprve pouze pˇripojen´e s´ıtˇe a cenu cesty k nim. Tyto informace periodicky, po urˇcit´em definovan´em intervalu, rozes´ıl´a sv´ym soused˚um, na kter´ych tak´e bˇeˇz´ı instance tohoto protokolu. Prvky si uchov´avaj´ı in-formaci o nejlepˇs´ı cestˇe k dan´emu c´ıli nebo cenu ke vˇsem c´ıl˚um skrz vˇsechny sv´e sousedy, oba pˇr´ıstupy jsou moˇzn´e. Prvku, kter´emu dojde zpr´ava od procesu na jin´em prvku si zak-tualizuje informace, kter´e m´a ve sv´e datab´azi s´ıt´ı, kter´e se dov´ıd´a prostˇrednictv´ım dan´eho souseda. Pokud si uchov´av´a pouze nejlepˇs´ı cestu, zkontroluje zda cesta ve zpr´avˇe m´a lepˇs´ı, menˇs´ı, metriku. Takto nauˇcen´e informace propaguje d´al, ale pouze nejlepˇs´ı variantu pro dan´y c´ıl. Smˇerovac´ı tabulka obsahuje pouze nejlepˇs´ı varianty.

Kv˚uli takov´emu zp˚usobu uˇcen´ı s´ıt´ı, naz´yv´ame tento typ smˇerov´an´ı jako ’smˇerov´an´ı pomoc´ı zvˇesti’ (routing by rumor), protoˇze uzel d˚uvˇeˇruje informac´ım, kter´e zaslechl od sv´eho souseda. Bohuˇzel to vede k probl´emu poˇc´ıt´an´ı do nekoneˇcna (count-to-infinity problem).

(10)

Obr´azek 2.1: Poˇc´ıt´an´ı do nekoneˇcna Poˇc´ıt´an´ı do nekoneˇcna

Probl´em poˇc´ıt´an´ı do nekoneˇcna bude vysvˇetlen pomoc´ı pˇr´ıkladu, v kter´em pouˇzijeme to-pologii z obr´azku2.1.

Cestu k D, popˇr´ıpadˇe do s´ıtˇe mezi C a D, zn´a z poˇc´atku pouze C. Ta propaguje tuto informaci ke sv´ym soused˚um A a B. Pˇredpokl´adejme, ˇze zv´yˇsen´ı ceny za pˇrechod pˇres jednu linku je 1. A a B tedy v´ı, ˇze cesta k D je pˇres C s cenou 2. Tuto informaci d´ale propaguj´ı. V´ysledn´a tabulka informac´ı pro uzel C je vidˇet v tabulce 2.2. Co se ale stane pˇr´ı v´ypadku linky mezi C a D? Uzel C si smaˇze informace o cest´ach skrz D. Od uzlu A nebo B se dozv´ı, ˇ

ze nejlepˇs´ı cena do D je 2 skrz C, protoˇze oni se nemˇeli jak dozvˇedˇet, ˇze linka mezi C a D je nefunkˇcn´ı. C si aktualizuje smˇerovac´ı tabulku, ˇze D je k dispozici skrz A, popˇr´ıpadˇe B, a tuto metriku, 3 (2 + 1 za cenu linky), odes´ıl´a d´al. A a B si pot´e aktualizuj´ı z´aznamy o D skrz A, ta stoupne ze 2 na 4 (3 + 1 za cenu linky), C dostane zase tuto informace zv´yˇs´ı cenu na 5 a propaguje d´al aˇz do nekoneˇcna. Pakety urˇcen´e pro D mezit´ım koluj´ı mezi tˇemito 3 uzly a zbyteˇcnˇe vytˇeˇzuj´ı zdroje.

A B D

skrz A 1 2 2

srkz B 2 1 2

srkz D 3 3 1

Z d˚uvodu, ˇze se s t´ımto probl´emem setk´avali distance vector protokoly jiˇz od sv´eho vzniku, a toto chov´an´ı bylo znaˇcnˇe neˇz´adouc´ı, vzniklo nˇekolik technik, kter´e se snaˇz´ı zabr´anit tomuto ˇskodliv´emu chov´an´ı.

Maxim´aln´ı metrika - maximum count

Pokud cena cesta k s´ıt´ı pˇres´ahne urˇcitou mez, je povaˇzov´ana za nedostupnou a pakety urˇcen´e pro n´ı se zahazuj´ı. V´ıce jak maxim´aln´ı metrika se nikdy nepropaguje.

Rozdˇelen´y horizont - split horizont

Technika, kter´a zabraˇnuje odes´ıl´an´ı informac´ı o cest´ach k s´ıt´ım zpˇet uzlu od kter´eho byli z´ıskan´y. Pokud se tedy vr´at´ıme k obr´azku 2.1, A a B nebudou informovat C o cestˇe k D, protoˇze tuto informaci z´ıskali od C.

(11)

Zneplatnˇen´ı zpˇetn´e cesty - poison reverse

Tato technika se pouˇz´ıv´a spoleˇcnˇe s technikou rozdˇelen´eho horizontu. Informace o s´ıt´ıch se znovu propaguj´ı zpˇet k prvku od kter´eho byly z´ısk´any, ale s metrikou, kter´a v dan´em protokolu znaˇc´ı nedostupnost.

Aktualizace nez´avisle na ˇcasovaˇci - triggered updates

Kdykoliv se prvku zmˇen´ı metrika do urˇcit´e s´ıtˇe, informuje okamˇzitˇe o t´eto zmˇenˇe sv´e sou-sedy, bez toho aby ˇcekal na dobu kdy m´a pos´ılat pravidelnou aktualizaci.

Dalˇs´ı ˇcasovaˇce - timers ˇ

Casovaˇc zneplatnˇen´ı cesty (invalid timer), vyprˇs´ı pokud s´ıt’, nebyla dlouho uvedena v ˇz´adn´e aktualizaci. Po vyprˇsen´ı se jej´ı metrika nastav´ı na hodnotu kter´a oznaˇcuje nekoneˇcno. Ale z´aznam z˚ust´av´a st´ale ve smˇerovac´ı tabulce. V pˇr´ıpadˇe ˇze cesta je zneplatnˇena, at’ uˇz ˇ

casovaˇcem nebo aktualizac´ı s nekoneˇcnou metrikou od prvku, od kter´eho jsme informaci o s´ıti z´ıskali, m˚uˇze b´yt aktivov´an ˇcasovaˇc typu holddown, bˇehem kter´eho nejsou pˇrij´ım´any ˇ

z´adn´e aktualizace t´ykaj´ıc´ıho se tohoto c´ıle od jin´ych zdroj˚u neˇz br´any (prvku, kter´y n´am informace o t´eto s´ıt´ı zas´ıl´a.

Jeˇstˇe se pouˇz´ıv´a ˇcasovaˇc expirace (flush timer), kdy je cesta ´uplnˇe odstranˇena ze smˇerovac´ı tabulky.

Pˇri pouˇzit´ı v´yˇse uveden´ych technik se stabilita smˇerovac´ıho protokolu znaˇcnˇe zvyˇsuje, ale i tak byli zdokumentov´any pˇr´ıpady, kdy tento probl´em m˚uˇze nastat.

2.2.1 RIP

RIP, routing information protocol, se pouˇz´ıv´a jako IGP. Komunikuje pomoc´ı UDP paket˚u na portu 520 Jako metriku vyuˇz´ıv´a poˇcet skok˚u, poˇcet uzlu, kter´e jsou mezi n´ım a c´ılovou s´ıt´ı. Maxim´aln´ı hodnota, kterou m˚uˇze metrika nab´ıt je 15, 16 je jiˇz povaˇzov´ano za nekoneˇcno. Pˇr´ımo pˇripojen´e s´ıtˇe maj´ı metriku 0. Aktualizace si mezi sebou uzly vymˇeˇnuj´ı periodicky kaˇzd´ych 30 sekund a pokud s´ıt’ nen´ı uveden v aktualizac´ıch v´ıce jak 180 vteˇrin, 6 kr´at aktualizaˇcn´ı ˇcas, je zneplatnˇena popˇr´ıpadˇe vyhozena ze smˇerovac´ı tabulky. Pouˇz´ıv´a vˇetˇsinu v´yˇse uveden´ych zp˚usob˚u k zabr´anˇen´ı poˇc´ıt´an´ı do nekoneˇcna.

RIP existuje ve dvou verz´ıch, verze 1 a 2, kter´e se mezi sebou liˇs´ı v nˇekolika bodech: • RIPv1 nepodporuje VLSM, RIPv2 ano

• RIPv1 nepodporuje autentizaci, RIPv2 ano

• RIPv1 pos´ıl´a aktualizace na adresu 255.255.255.255, RIPv2 na adresu 224.0.0.9 • RIPv1 nepodporuje znaˇcen´ı z´aznam˚u

Podpora VLSM, variable length subnetmask, tedy masek s r˚uznou d´elkou prefixu,

zna-men´a, ˇze v r´amci 1 tˇr´ıdn´ı s´ıtˇe mohou existovat prefixy r˚uzn´e d´elky. Podpora VLSM je v RIPv2 doc´ılena t´ım, ˇze v aktualizac´ıch jsou uvedeny i prefixy jednotliv´ych s´ıt´ı.

(12)

Tabulka 2.3: Paket RIPu verze 1

1 octet 1 octet 2 octet 2 octet 2 octet 4 octet 4 octet 4 octet 4 octet

command version – AFI – IP

address – – metric

Tabulka 2.4: Paket RIPu verze 2

1 octet 1 octet 2 octet 2 octet 2 octet 4 octet 4 octet 4 octet 4 octet

command version – AFI tag IP

address subnet mask next hop metric Form´at paket˚u

V tabulk´ach2.3 a2.4 je vidˇet struktura paket˚u obou verz´ı RIPu. Vysvˇetlen´ı jednotliv´ych pol´ı v paket˚u:

• Command - pˇr´ıkaz - urˇcuje typ paketu, zda se jedn´a o dotaz nebo odpovˇed’ • Version - verze - urˇcuje verzi procesu RIPu, kter´y dan´y paket poslal

• AFI - rodina adres - RIP ma podporu i jak pro Token Ring s´ıtˇe tak pro Ethernet s´ıtˇe • tag - pouze RIPv2, slouˇz´ı pro rozliˇsen´ı s´ıt´ı nauˇcen´ych skrz RIP nebo extern´ıch zdroj˚u • IP address - adresa s´ıtˇe

• subnet mask - maska pods´ıtˇe - pouze RIPv2, toto pole zajiˇst’uje podporu VLSM • next hop - adresa dalˇs´ıho skoku smˇerem k dan´e s´ıt´ı - pouze RIPv2

• metric - metrika - cena cesty k s´ıti

Kromˇe prvn´ıch 3 bunˇek, jsou n´asleduj´ıc´ı buˇnky vlastnˇe z´aznamem smˇerovac´ı tabulky. Tato ˇc´ast, od AFI pole vˇcetnˇe, se m˚uˇze aˇz 25 kr´at opakovat. Jeden paket tak m˚uˇze n´est informaci o v´ıce s´ıt´ıch. Hodnota AFI pro ethernetov´e s´ıtˇe je 0x2.

Pakety jsou v podstatˇe dvou typu, dotaz, hodnota v poli command je 1, a odpovˇed’, hod-nota 2. Pakety typu dotaz jsou pouˇz´ıv´any pro vyˇz´ad´an´ı cel´e smˇerovac´ı tabulky, popˇr´ıpadˇe konkretn´ı s´ıtˇe. Vys´ıl´a se vˇetˇsinou pokud se nˇekter´e ze s´ıt’ov´ych rozhran´ı prvku stalo aktivn´ı. Paket typu odpovˇed’ se pos´ıl´a na vyˇz´ad´an´ı, pomoc´ı paketu dotaz, ale jeho hlavn´ı pouˇzit´ı spoˇc´ıv´a v tom, ˇze je pravidelnˇe zas´ıl´an soused˚um s informacemi o s´ıt´ıch, kter´e uzel m´a ve smˇerovac´ı tabulce.

Pokud je aktivov´ana autentizace, m´ısto prvn´ıho z´aznamu s´ıtˇe jsou uvedeny autentizaˇcn´ı

(13)

Obr´azek 2.2: Pˇr´ıklad topologie

Zp˚usob vytv´aˇren´ı odpovˇedi

RIP implementuje nˇekolik technik, kter´e zabraˇnuj´ı poˇc´ıt´an´ı do nekoneˇcna. Ale jejich aktivaci komplikuje rozes´ıl´an´ı aktualizac´ı. Pokud by nebyly tyto techniky aktivov´any, mohly by se ze vˇsech rozhran´ı, ke vˇsem soused˚um pos´ılat stejn´e aktualizace. Pokud jsou ale aktivn´ı je nutn´e vytv´aˇret aktualizace pro kaˇzd´e rozhran´ı zvl´aˇst’ s ohledem na aktivovan´e techniky.

Dalˇs´ım probl´emem je semi-podpora VLSM v RIPv1, alespoˇn na smˇerovaˇc´ıch Cisco. Ta zp˚usobuje, ˇze je moˇzn´e odeslat informaci o s´ıt´ı na rozhran´ı leˇz´ıc´ı ve stejn´e tˇr´ıdn´ı s´ıt´ı a m´a stejn´y prefix jako propagovan´a s´ıt’.

Pr˚ubˇeh rozhodov´an´ı je zachycen n´ıˇze. • S´ıt’ podl´eh´a rozdˇelen´emu horizontu

– tuto s´ıt’ nepˇrid´avej

– pˇridej tuto s´ıt’, ale zmˇen metriku na nekoneˇcnou (pokud je zapnut´e otr´aven´ı cesty)

• S´ıt’ nepodl´eh´a rozdˇelen´emu horizontu

– S´ıt’ bude propagov´ana do s´ıtˇe spadaj´ıc´ı do r˚uzn´e tˇr´ıdn´ı s´ıtˇe ∗ pˇreved’ s´ıt’ na tˇr´ıdn´ı (u RIPv2 se muˇze, ale nemus´ı pˇrev´adˇet) ∗ pˇridej s´ıt’ do aktualizace

– S´ıt’ bude propagov´ana do s´ıtˇe spadaj´ıc´ı do stejn´e tˇr´ıdn´ı s´ıtˇe

∗ S´ıt’ m´a stejn´y prefix, jako s´ıt’ do kter´e se bude pos´ılat aktualizace · pˇridej s´ıt’ do aktualizace

∗ S´ıt’ m´a r˚uzn´y prefix neˇz s´ıt’ do kter´e se bude pos´ılat aktualizace · RIPv1 - nepˇrid´avej s´ıt’ do aktualizace

· RIPv2 - pˇridej s´ıt’ do aktualizace

(14)

Pˇr´ıklad

Jednotliv´a pravidla si bl´ıˇz vysvˇetl´ıme na obr´azku 2.2 s pˇr´ıkladem topologie. Smˇerovaˇc ve stˇredu chce zaslat pravidelnou aktualizace do vˇsech pˇripojen´ych s´ıt´ı. Rozebereme vytvoˇren´ı aktualizace pro horn´ı smˇerovaˇc.

Horn´ı smˇerovaˇc leˇz´ı na s´ıt´ı 10.2.0.0/24.

• 10.1.0.0/24 - Bude v aktualizaci, je ve stejn´e tˇr´ıdn´ı s´ıti, ale m´a stejn´y prefix jako s´ıt’ na kterou je zas´ıl´ana aktualizace

• 10.2.0.0/24 - Nebude v aktualizaci nebo bude, ale s nekoneˇcnou metrikou, protoˇze

podl´eh´a rozdˇelen´emu horizontu

• 10.3.0.0/16 - Nebude v aktualizaci, sice je ve stejn´e tˇr´ıdn´ı s´ıti, ale m´a rozd´ıln´y prefix • 192.168.2.128/27 - Bude v aktualizaci, ale bude pˇrevedena na s´ıt’ 192.168.2.0/24 U takto vytvoˇren´e odpovˇedi se uˇz pouze zv´yˇs´ı metrika u vˇsech z´aznam˚u a odpovˇed’ se odeˇsle.

Zp˚usob kontroly autentizace paket˚u

Po aktivac´ı autentizace na rozhran´ı smˇerovaˇc pˇrij´ım´a pouze takov´e smˇerovac´ı informace, kter´e se prok´aˇz´ı platn´ym heslem nebo hashem.

Autentizace nen´ı podporov´ana RIPem verze 1 coˇz m˚uˇze zp˚usobit nestabilitu v s´ıt´ı. RIPv1 prvn´ı z´aznam, ten kter´y obsahuje autentizaˇcn´ı ´udaje, ignoruje a zpracov´av´a dalˇs´ı z´aznamy.

Pokud je aktivn´ı RIP verze 2 bez aktivn´ı autentizace na rozhran´ı a pˇrijde paket s

autentizaˇcn´ım z´aznamem, je paket okamˇzitˇe zahozen. Ostatn´ı pakety, verze 1 a verze 2 bez autentizace, jsou pˇrijaty

Pˇri aktivovan´e autentizaci jsou veˇsker´e neautentizovan´e pakety zahozeny u ostatn´ıch je kontrolov´ana autentizaˇcn´ı hlaviˇcka dle nastaven´ı. Zda jsou hesla nebo vypoˇc´ıtan´e hashe totoˇzn´e.

Zp˚usob zpracov´an´ı odpovˇedi

Paket, kter´y projde autentizaˇcn´ı kontrolou, je d´ale zpracov´av´an. Jednotliv´e z´aznamy se porovn´avaj´ı s aktu´aln´ım stavem datab´aze a pokud jsou nutn´e zmˇeny je datab´aze aktuali-zov´ana. Z´aznamy jsou zpracov´av´any postupnˇe, jak jsou uvedeny v paketu. Jako dalˇs´ı skok je pouˇzita zdrojov´a adresa v ip hlaviˇcce paketu.

Kontrola s datab´azi prob´ıh´a n´asleduj´ıc´ım zp˚usobem: • Z´aznam je jiˇz ve smˇerovac´ı tabulce

– Stejn´a br´ana

∗ V paketu je jin´a metrika

· zmˇen metriku ve smˇerovac´ı tabulce, aby odpov´ıdala metrice v odpovˇedi · poˇsli aktualizaci soused˚um

∗ resetuj ˇcasovaˇc zneplatnˇen´ı ∗ pˇrejdi na dalˇs´ı z´aznam

(15)

– Nestejn´a br´ana

∗ Metrika v paketu je lepˇs´ı

· zmˇen informace ve smˇerovac´ı tabulce · resetuj ˇcasovaˇc zneplatnˇen´ı

· poˇsli aktualizaci soused˚um ∗ pˇrejdi na dalˇs´ı z´aznam

• Z´aznam nen´ı ve smˇerovac´ı tabulce – Metrika je nekoneˇcn´a

∗ pˇrejdi na dalˇs´ı z´aznam – Metrika nen´ı nekoneˇcn´a

∗ pˇridej novou s´ıt’ do smˇerovac´ı tabulky ∗ aktivuj ˇc´ıtaˇc zneplatnˇen´ı

∗ pˇrejdi na nov´y z´aznam Zp˚usob zpracov´an´ı dotazu

Pokud dotaz obsahuje pouze 1 z´aznam s hodnotou v poli AFI 0 a s nekoneˇcnou metrikou,

je zasl´ana zpˇet cel´a smˇerovac´ı tabulka. Tento zp˚usob dotazu je v praxi nejpouˇz´ıvanˇejˇs´ı. V pˇr´ıpadˇe, ˇze z´aznam˚u je v´ıc, zpracov´av´an´ı prob´ıh´a t´ım zp˚usobem, ˇze se vytvoˇr´ı od-povˇed’, kter´a obsahuje z´aznamy z dotazu. Pokud z´aznam z dotazu je ve smˇerovac´ı tabulce, tak je v odpovˇedi uveden s metrikou ze smˇerovac´ı tabulky. Pokud ve smˇerovac´ı tabulce nen´ı, je u nˇeho uveden´a nekoneˇcn´a metrika.

2.3

Protokoly stavu linky

Koncept protokol˚u stavu linky spoˇc´ıv´a v tom, ˇze si vˇsechny prvky v s´ıti vytvoˇr´ı stejn´y graf s´ıtˇe, z kter´eho si vypoˇc´ıtaj´ı poˇc´ıtaj´ı cestu ke vˇsem ostatn´ım prvk˚um/s´ıt´ım. Rozd´ıl mezi protokoly stavu linky a distance vektor protokoly, spoˇc´ıv´a v tom, ˇze distance vektor protokoly si vymˇeˇnuj´ı smˇerovac´ı tabulky. Protokoly stavu linky si vymˇeˇnuj´ı pouze informace potˇrebn´e k vytvoˇren´ı onoho grafu s´ıtˇe.

V´yhoda tˇechto protokol˚u je, ˇze jsou pouˇziteln´e i do vˇetˇs´ıch s´ıt´ıch, na rozd´ıl od distance vektor protokol˚u, kter´ym trv´a aˇz pˇr´ıliˇs dlouho neˇz cel´a s´ıt’ zkonverguje, ust´al´ı se do jed-notn´eho stavu. U vˇetˇs´ıch s´ıt´ıch m˚uˇze b´yt i velkou nev´yhodou omezen´ı maxim´aln´ıho poˇctu skok˚u u distance vektor protokol˚u, kdy s´ıt’ bude vˇetˇs´ı neˇz tento maxim´aln´ı poˇcet skok˚u.

Obecn´y protokol stavu linky

Obecn´y protokol stavu linky funguje na n´asleduj´ıc´ım principu:

• Prvek si nejprve zjist´ı pomoc´ı nˇejak´eho protokolu, kter´e prvky leˇz´ı na pˇr´ımo pˇripojen´ych s´ıt´ıch.

• Prvek rozes´ıl´a informace o pˇr´ımo pˇr´ıpojen´ych prvc´ıch do cel´e s´ıtˇe. • Prvek pˇrij´ım´a informace, kter´e pos´ılaj´ı ostatn´ı prvky.

(16)

• Aˇz cel´a s´ıt’ zkonverguje, vˇsechny uzly maj´ı stejn´y graf, vypoˇc´ıtaj´ı si prvky nejkratˇs´ı cestu ke vˇsem prvk˚um pomoc´ı Dijkstrova algoritmu. V´ysledky si um´ıst´ı do smˇerovac´ı tabulky

V pˇr´ıpadˇe nˇejak´e zmˇeny v s´ıt´ı, prvek, kter´y tuto zmˇenu zaznamen´a, si zmˇen´ı sv˚uj graf s´ıtˇe a rozeˇsle informaci o zmˇenˇe do cel´e s´ıtˇe. Prvky si pot´e pˇrepoˇc´ıtaj´ı svoji smˇerovac´ı tabulku.

2.3.1 OSPF

Open shortest path first protokol se pouˇz´ıv´a jako IGP. Protokol komunikuje na unicastov´ych IP adres´ach a multicastov´ych adres´ach 224.0.0.5 a 224.0.0.6, nevyuˇz´ıv´a vˇsak sluˇzeb TCP ani UDP, ale pˇr´ımo IP, skrz IP protokol 89. D´ıky tomu si mus´ı, ale zajistit zpracov´an´ı chyb a pˇrepos´ıl´an´ı nedoruˇcen´ych zpr´av.

Obecn´y protokol stavu linky rozˇsiˇruje o oblasti, s´ıt’ pot´e nen´ı ploch´a, tzn. vˇsechny uzly vid´ı vˇsechny ostatn´ı, ale je hierarchicky strukturovan´a. Graf s´ıtˇe se pot´e vytv´aˇr´ı pro kaˇzdou oblast zvl´aˇst’. Na hranic´ıch mezi oblastmi jsou takzvan´e hraniˇcn´ı prvky, kter´e zajiˇst’uj´ı v´ymˇenu informac´ı mezi oblastmi. Existuje nˇekolik speci´aln´ıch typu oblast´ı:

• P´ateˇrn´ı oblast - vˇsechny ostatn´ı oblasti mus´ı b´yt pˇripojeny k t´eto oblasti. Zajiˇst’uje v´ymˇenu smˇerovac´ıch informac´ıch mezi ostatn´ımi oblastmi.

• Pah´yln´ı oblast - Stub oblast - nedost´av´a smˇerovac´ı informace o s´ıt´ıch, kter´e se ospf pro-ces dozvˇedˇel od ostatn´ıch smˇerovac´ıch protokol˚u, ale smˇerovac´ı informace z ostatn´ıch ospf oblast´ı se do t´eto oblasti dostanou.

• Upln´y pah´yl - Totally stubby oblast - Pouze implicitn´ı cesta, smˇer kudy se budou pos´ılat vˇsechny pakety, pro kter´e nen´ı c´ılov´a s´ıt’ ve smˇerovac´ı tabulce, se m˚uˇze propa-govat do t´eto oblasti

• Ne tak pah´yln´ı oblast - Not-so-stubby oblast - Skrz oblast se mohou exportovat do

p´ateˇrn´ı oblasti extern´ı cesty, ale ne z p´ateˇrn´ı s´ıtˇe do n´ı.

Jako metrika se pouˇz´ıv´a souˇcet cen linek mezi zdrojem a c´ılem. Cena linky je rovna pod´ılu 100Mbps dˇeleno rychlost linky.

2.4

Path vector protokoly

Path vector protokoly, neboli protokoly vektoru cesty, se pouˇz´ıvaj´ı zejm´ena jako EGP pro-tokoly. Princip m´a nˇekter´e vlastnosti spoleˇcn´e s distance vektor protokoly. V autonomn´ım syst´emu existuje prvek, mluvˇc´ı, kter´y vytv´aˇr´ı a inzeruje smˇerovac´ı tabulku ostatn´ım prvk˚um. Rozd´ıl je v tom, ˇze pouze mluvˇc´ı maj´ı pr´avo mezi sebou komunikovat. U tohoto typu proto-kol˚u se nepouˇz´ıv´a metrika, nam´ısto n´ı je pouˇzit vektor cesty, vektor autonomn´ıch syst´emu, kter´y popisuje cestu k dan´e koncov´e s´ıti. Preferovanou cestou do s´ıtˇe se st´av´a ta, na n´ıˇz se mus´ı proj´ıt nejmenˇs´ım mnoˇzstv´ı autonomn´ıch syst´em˚u.

2.4.1 BGP

BGP, border gateway protokol, se pouˇz´ıv´a jako smˇerovac´ı protokol v internetu, mezi ISP. Komunikuje na unicastov´ych adres´ach na portu 179 a vyuˇz´ıv´a sluˇzeb TCP. U tohoto pro-tokolu je v´ybˇer cesty k s´ıti, ˇr´ızen na b´az´ı politik, sp´ıˇse neˇz na b´azi metriky, nejkratˇs´ı cesty.

(17)

Vzhledem k tomu, ˇze se dan´e smˇerovac´ı politiky aplikuj´ı v kaˇzd´em autonomn´ım syst´emu, m˚uˇze b´yt v´ysledn´a cesta pomˇernˇe vzd´alen´a cestˇe nejkratˇs´ı.

BGP je pomˇernˇe robustn´ı protokol a ne kaˇzd´y prvek ho bude schopn´y provozovat, i kdyˇz tak´e z´aleˇz´ı na velikost´ı smˇerovac´ı tabulky. Pro pˇredstavu, smˇerovac´ı tabulka internetu m´a pˇres 245,000 z´aznam˚u. U velk´ych provozovatel˚u internetu toto ˇc´ıslo m˚uˇze stoupnout i o 50%, kv˚uli smˇerov´an´ı ve vnitˇrn´ı s´ıt´ı a mezi z´akazn´ıky.

2.5

Konfigurace na zaˇ

r´ızen´ıch Cisco

Konfigurace na zaˇr´ızen´ıch Cisco se prov´ad´ı pˇres konzoly, d´a se pouˇz´ıt ´ı webov´e rozhran´ı, ale konfigurace pˇres pˇr´ıkazov´y ˇr´adek je st´ale nejpouˇz´ıvanˇejˇs´ı. Na poˇc´ıtaˇci, z kter´eho se bude prov´adˇet konfigurace s´ıt’ov´eho prvku mus´ı bˇeˇzet program, kter´y um´ı emulovat VT100 ter-min´al. Napˇr´ıklad HyperTerminal nebo PuTty. Program mus´ı nastavit parametry s´eriov´eho portu, skrz kter´y se bude komunikovat se zaˇr´ızen´ım na n´asleduj´ıc´ı hodnoty:

• Rychlost v baudech - 9600 • Poˇcet datov´ych bit˚u - 8 • Parita - ˇz´adn´a

• Poˇcet stop bit˚u - 1 • Kontrola toku - ˇz´adn´a

Propojen´ı prvku se pot´e provede kabelem s koncovkou RJ-45 na stranˇe prvku a DB-9

na stranˇe PC.

Uˇzivatel se pot´e octne v uˇzivatelsk´em modu, indikovan´ym znakem ‘>’ za n´azvem prvku. V tomto modu m´a uˇzivatel k dispozici pouze omezenou sadu pˇr´ıkaz˚u k z´akladn´ı diagnostice smˇerovaˇce.

Router>

Pro vstup do privilegovan´eho reˇzimu, je nutn´e zadat pˇr´ıkaz enable. Po zad´an´ı m˚uˇze b´yt uˇzivatel vyzv´an k zadan´ı hesla. Oproti uˇzivatelsk´emu m´odu je k dispozici detailnˇejˇs´ı diagnostika smˇerovaˇce a moˇznost pˇrej´ıt do konfiguraˇcn´ıho reˇzimu, odkud se d´a mˇenit kon-figurace prvku. Privilegovan´y m´od m´a indikaˇcn´ı znak ‘#’. Pro opuˇstˇen´ı privilegovan´eho reˇzimu m˚uˇzeme pouˇz´ıt pˇr´ıkaz disable

Router> enable Password: Router#

Router# disable Router>

Do konfiguraˇcn´ıho reˇzimu, pˇrejdeme pˇr´ıkazem configure terminal. Pˇr´ıtomnost v kon-figuraˇcn´ım reˇzimu lze t´ım, ˇze mezi n´azvem prvku a znakem ‘#’ je pˇr´ıtomna sekvence znaku (config). Z glob´aln´ıho konfiguraˇcn´ıho reˇzimu se pot´e pˇrech´az´ı do jednotliv´ych spe-cifick´ych m´od˚u, napˇr do konfigurace smˇerovac´ıch protokol˚u, rozhran´ı atd. Pro opuˇstˇen´ı konfiguraˇcn´ıho reˇzimu slouˇz´ı 2 pˇr´ıkazy exit a end. Exit vr´at´ı uˇzivatele o jednu ´uroveˇn zpˇet, napˇr. ze konfigurace smˇerovac´ıho protokolu zpˇet do glob´aln´ıho konfiguraˇcn´ıho reˇzimu nebo z glob´aln´ıho konfiguraˇcn´ıho reˇzimu zpˇet do privilegovan´eho. Pˇr´ıkaz end vr´at´ı uˇzivatele okamˇzitˇe zpˇet do reˇzimu privilegovan´eho

(18)

Router# configure terminal Router(config)#

Router(config)# exit Router#

Konfiguraˇcn´ı moˇznosti Cisco zaˇr´ızen´ı jsou velice rozs´ahl´e a podrobn´y popis vˇsech by byl aˇz pˇr´ıliˇs rozs´ahl´y. N´asleduj´ıc´ı ˇc´ast se proto bude vˇenovat pouze konfiguraci smˇerovac´ıho protokolu RIP a nˇekolika moˇznostem, kter´e jsou pouˇziteln´e vˇsemi smˇerovac´ımi protokoly nebo maj´ı v´yznamn´y vliv na smˇerov´an´ı.

2.5.1 Konfigurace bez z´avislosti na protokolu

Statick´e smˇerov´an´ı

Cisco zaˇr´ızen´ı nab´ızej´ı podporu pro manu´aln´ı specifikov´an´ı smˇerovac´ı tabulky. Konfigurace statick´ych cest se prov´ad´ı pˇr´ıkazem n´asleduj´ıc´ım zp˚usobem¨

ip route network net_mask { next_hop_address | interface } [distance] [tag] [permament]

Bˇeˇznˇe se vˇsak posledn´ı 2 voliteln´e parametry nepouˇz´ıvaj´ı. Parametr distance oznaˇcuje administrativn´ı vzd´alenost. Ta jako moc je dan´y zdroj smˇerovac´ıch informac´ı preferov´an.

ˇ

C´ım niˇzˇs´ı vzd´alenost t´ım je zdroj kvalitnˇejˇs´ı. Kaˇzd´y smˇerovac´ı protokol m´a pˇriˇrazenou admi-nistrativn´ı vzd´alenost, kterou je vˇsak moˇzn´e mˇenit. Implicitn´ı nastaven´ı administrativn´ıch vzd´alenost´ı nˇekter´ych protokol˚u je v tabulce 2.5. Maxim´aln´ı hodnota je 255.

Tabulka 2.5: Administrativn´ı vzd´alenosti protokol˚u

Protokol Implicitn´ı adm. vzd´alenost

Pˇripojen´e s´ıtˇe 0 Statick´e cesty 1 BGP 20 OSPF 110 RIP 120 Pˇr´ıklad: Router(config)# ip route 192.168.5.0 255.255.255.0 10.3.4.2 150

Moˇznost specifikovat administrativn´ı vzd´alenost (distance) se vyuˇz´ıv´a hlavnˇe pˇri pouˇz´ıt´ı z´aloˇzn´ıch linek, kdy se vytvoˇr´ı statick´a cesta do urˇcit´e s´ıtˇe s vyˇsˇs´ı vzd´alenost´ı neˇz je pouˇz´ıvan´y dynamick´y smˇerovac´ı protokol. Pokud se d˚usledkem nedostupnosti hlavn´ı linky, smaˇze cesta do s´ıtˇe ze smˇerovac´ı tabulky, je pouˇzita ta s vyˇsˇs´ı vzd´alenosti skrz z´aloˇzn´ı linku. Existuje speci´aln´ı s´ıt’ 0.0.0.0 s prefixem 0, na kterou, pokud je uvedena ve smˇerovac´ı tabulce, se odes´ılaj´ı veˇsker´e pakety jej´ıˇz c´ılov´a s´ıt’ nen´ı ve smˇerovac´ı tabulce.

Kl´ıˇcenky

Kl´ıˇcenky jsou struktury, kter´e jsou vyuˇz´ıv´any na uskladˇnov´an´ı hesel, pouˇz´ıvan´ych pˇri au-tentizaci smˇerovac´ıch informac´ı. Definice kl´ıˇcenky se prov´ad´ı v glob´aln´ım konfiguraˇcn´ım reˇzimu pˇr´ıkazem:

(19)

Router(config)# key chain keychain_name Router(config-keychain)#

Po definici kl´ıˇcenky je nutn´e vytvoˇrit jednotliv´e kl´ıˇce pomoc´ı identifik´atoru, ˇc´ısla. Kaˇzd´y kl´ıˇc ma vlastn´ı konfiguraˇcn´ı reˇzim.

Router(config-keychain)# key id Router(config-keychain-key)#

Definov´an´ım kl´ıˇce prvek pˇreˇsel do konfiguraˇcn´ıho reˇzimu kl´ıˇce, kde je moˇzn´e definovat jeho vlastnosti. Hodnotu pomoc´ı pˇr´ıkazu key-string string a ˇcasy platnosti pomoc´ı dvou

pˇr´ıkazu accept-lifetime a send-lifetime.

Ukazka konfigurace:

Router(config)# key chain RIPhesla Router(config-keychain)# key 1

Router(config-keychain-key)# key-string rip

Router(config-keychain-key)# accept-lifetime 12:00:00 Jan 25 2007 infinite

2.5.2 RIP

Konfigurace RIPu se prov´ad´ı v jednom z m´od˚u konfiguraˇcn´ıho reˇzimu Cisco zaˇr´ızen´ı. K pˇrechodu do tohoto m´odu je nutn´e zadat pˇr´ıkaz router rip.

Spuˇstˇen´ı procesu

Router(config)# router rip Router(config-router)#

Pro spuˇstˇen´ı RIP procesu, je nutn´e zadat s´ıtˇe, kter´e budou zahrnuty v aktualizac´ıch a z´aroveˇn do kter´ych se budou vys´ılat aktualizace. S´ıt’ se pˇrid´av´a pomoc´ı pˇr´ıkazu network x.x.x.x, kde x.x.x.x je adresa s´ıtˇe. Pokud je nutn´e odebrat nˇekterou ze s´ıt´ı, slouˇz´ı k tomu z negovan´y pˇr´ıkaz no network x.x.x.x. Pˇrid´an´ı vˇsech okoln´ıch s´ıt´ı z obr´azku2.2do procesu RIPu by vypadalo n´asledovnˇe:

Router(config-router)# network 10.1.0.0 Router(config-router)# network 10.2.0.0 Router(config-router)# network 10.3.0.0 Router(config-router)# network 192.168.2.0

Nastaven´ı verze

Po pˇrid´an´ı s´ıt´ı uˇz RIP proces pos´ıl´a aktualizace verze 1 do zadan´ych s´ıt´ı a pˇrij´ım´a aktuali-zace ve verzi 1 i 2. Pro zmˇenu glob´aln´ı verze je moˇzn´e zadat pˇr´ıkaz version ˇc´ıslo verze. Zmˇena verze ale mˇen´ı p˚uvodn´ı nastaven´ı a proces pˇrij´ım´a pouze zpr´avy zadan´e verze. K z´akladn´ımu nastaven´ı je moˇzn´e se vr´atit zadan´ım pˇr´ıkazu no version

Router(config-router)# version 2 Router(config-router)# no version

Verzi je moˇzn´e mˇenit i na jednotliv´ych rozhran´ıch, kde je k dispozici detailnˇejˇs´ı konfigu-race. Je moˇzn´e specificky nastavit, kter´e verze se maj´ı pˇrij´ımat i odes´ılat. Nejprve je vˇsak nutn´e pˇrej´ıt do konfiguraˇcn´ıho reˇzimu rozhran´ı. To se provede n´asleduj´ıc´ım zp˚usobem:

(20)

Router(config-router)# exit

Router(config)# interface FastEthernet 0/0 Router(config-if)#

Pˇr´ıkaz interface n´azev rozhran´ı ˇc´ıslo slotu/ˇc´ıslo portu zpˇr´ıstupnil konfiguraci 0. rozhran´ı FastEthernetu a kartˇe s poˇradov´ym ˇc´ıslem 0. Nyn´ı lze zadat pˇr´ıkazy pro zmˇenu vys´ılan´ych a pˇrij´ıman´ych verz´ı. K tomu slouˇz´ı pˇr´ıkazy ip rip send version ˇc´ıslo verze a ip rip receive version ˇc´ıslo verze, s t´ım ˇze mohou b´yt uvedeny obˇe verze oddˇelen´e mezerou. Obr´acen´e verze pˇr´ıkaz˚u vrac´ı zpˇet implicitn´ı nastaven´ı. Pˇr´ıklad demonstruje zp˚usob jak´ym by se zapsalo implicitn´ı nastaven´ı.

Router(config-if)# ip rip send version 1 Router(config-if)# ip rip receive version 1 2

Rozdˇelen´y horizont

Dalˇs´ı pomˇernˇe d˚uleˇzit´y pˇr´ıkaz, kter´y se konfiguruje v reˇzimu rozhran´ı je ip split-horizont, kter´y aktivuje rozdˇelen´y horizont, naopak pˇr´ıkaz no ip split-horizont ho deaktivuje. Zda je rozdˇelen´y horizont implicitnˇe aktivn´ı/neaktivn´ı je d´ano typem zapouzdˇren´ı na roz-hran´ı, pro s´ıtˇe typu Ethernet je aktivn´ı.

Router(config-if)# no ip split-horizont

Autentizace

Autentizace zajiˇst’uje, ˇze v r´amci s´ıtˇe bude prvek dost´avat smˇerovac´ı informace pouze od prvk˚u se kter´ymi sd´ıl´ı kl´ıˇc. Zabraˇnuje se tak pˇr´ıpadn´ym neautorizovan´ym zmˇen´am do smˇerovac´ıch tabulek prvk˚u, kter´e by mohly b´yt vyuˇzity pˇri nˇejak´em typu ´utoku.

Aby bylo moˇzn´e nakonfigurovat autentizaci pro RIP je nutn´e nejprve definovat kl´ıˇcenku a alespoˇn jeden kl´ıˇc. Zp˚usob vytvoˇren´ı byl jiˇz uveden. Po vytvoˇren´ı je nutn´e kl´ıˇcenku propojit s RIPem a rozhran´ım pomoci pˇr´ıkazu v konfiguraˇcn´ım m´odu rozhran´ı ip rip authentication key-chain keychain name.

RIP tak´e nab´ız´ı podporu v´ıce typ˚u autentizaci. Heslo je bud’ v paketech zas´ılan´e v textov´e podobˇe nebo je nam´ısto nˇeho pouˇzit hash, vytvoˇren´y ze zpr´avy a hesla, z d˚uvodu vˇetˇs´ı bezpeˇcnosti. Zp˚usob zabezpeˇcen´ı se konfiguruje pˇr´ıkazem ip rip authentication mode {text|mode}. Pokud nen´ı m´od autentizace specifikov´an, uvaˇzuje se implicitnˇe textov´e podoba hesla.

Router(config-if)# ip rip authentication key-chain RIPkeys Router(config-if)# ip rip authentication mode md5

Podpora pro autentizaci je pouze u paketu RIPv2. Proto pokud pˇrijde smˇerovac´ı paket verze 1 na rozhran´ı, kde je zapnut´a autentizace, je automaticky zahozen.

Pasivn´ı rozhran´ı

Je nutn´e ale zm´ınit jeˇstˇe nˇekolik pˇr´ıkaz˚u, kter´e se zad´avaj´ı v konfiguraˇcn´ım reˇzimu RIPu. Pokud na pˇripojen´e s´ıt´ı nen´ı ˇz´adn´y dalˇs´ı aktivn´ı prvek, kter´y by potˇreboval aktualizace smˇerovac´ıch informac´ı, lze vypnout zas´ıl´an´ı zpr´av na rozhran´ı pomoc´ı pˇr´ıkazu passive-interface n´azev rozhran´ı ˇc´ıslo slotu/ˇc´ıslo portu. Zpr´avy ale budou nad´ale pˇrij´ım´any. Pokud je m´ısto n´azvu rozhran´ı zad´ano kl´ıˇcov´e slovo default jsou vˇsechna rozhran´ı nastavena jako

(21)

pasivn´ı. Jednotliv´a rozhran´ı, kter´a chceme m´ıt aktivn´ı pot´e aktivujeme pomoc´ı obr´acen´eho pˇr´ıkazu no passive-interface n´azev rozhran´ı ˇc´ıslo slotu/ˇc´ıslo portu.

Router(config-router)# passive-interface FastEthernet 0/1

Automatick´a sumarizace

V kapitole o RIPu bylo zm´ınˇeno, ˇze RIPu pˇrev´ad´ı adresy s´ıt´ı na tˇr´ıdn´ı, pokud se pˇrekraˇcuje hranice mezi tˇr´ıdn´ımi s´ıtˇemi, a tak´e ˇze u RIPv2 lze tuto funkci vypnout. K tomu slouˇz´ı funkce no auto-summary. RIPv2 pot´e propaguje s´ıtˇe s nezmˇenˇen´ymi prefixy i pˇres tˇr´ıdn´ı hranice. Na verzi 1 tato funkce nem´a vliv, ta sumarizuje vˇzdy.

Router(config-router)# no auto-summary

ˇ

Casovaˇce

Posledn´ı d˚uleˇzit´a funkce se t´yk´a manipulace s ˇcasovaˇci. V p˚uvodn´ım nastaven´ı maj´ı ˇcasovaˇce tyto hodnoty:

• ˇcas aktualizac´ı - 30 sekund • ˇcas zneplatnˇen´ı - 180 sekund • ˇcas potlaˇcen´ı - 180 sekund • ˇcas vyplaven´ı - 240 sekund

Pˇr´ıkaz pro zmˇenu tˇechto hodnot je timers basic a z p v kde a, z, p, v jsou nov´e hodnoty jednotliv´ych ˇcas˚u. Pˇr´ıkazem no timers basic je obnoveno p˚uvodn´ı nastaven´ı. Podle doporuˇcen´ı by ˇcas zneplatnˇen´ı a potlaˇcen´ı mˇel b´yt alespoˇn 3x vˇetˇs´ı neˇz ˇcas mezi aktualizacemi a ˇcas vyplaven´ı by mˇel alespoˇn stejnˇe dlouh´y jako souˇcet ˇcas˚u aktualizaci a potlaˇcen´ı.

Router(config-router)# timers basic 20 120 120 160

Shrnut´ı

V kapitole byly pˇredstaveny jednotliv´e rodiny smˇerovac´ıch protokol˚u. D˚ukladnˇeji byl pˇredstaven smˇerovac´ı protokol RIP, protoˇze je pˇredmˇetem implementace, a zp˚usob jeho konfigurace na Cisco prvc´ıch.

(22)

Kapitola 3

Simul´

ator s´ıtˇ

e ns-2

´ Uvod

Implementovan´y smˇerovac´ı protokol by mˇel b´yt rozˇs´ıˇren´ım s´ıt’ov´eho simul´atoru. Je nutn´e se tedy sezn´amit s jeho strukturou, jak´ym zp˚usobem je ˇreˇseno smˇerov´an´ı, odes´ıl´an´ı paket˚u atd.

Pˇredstaven´ı simul´atoru

NS-2, network simulator, je diskr´etn´ı simul´ator zamˇeˇren´y na v´yzkum s´ıt´ı. NS by mˇel nab´ızet znaˇcnou podporu pro simulaci TCP, UDP, smˇerov´an´ı a multicastov´e protokoly a to jak pro klasick´e dr´atov´e i bezdr´atov´e s´ıtˇe. Jeho ned´ılnou souˇc´ast´ı je NAM, network animator, kter´y slouˇz´ı ke zobrazen´ı v´ysledk˚u simulace v grafick´em reˇzimu. Podporuje zmˇeny rozm´ıstˇen´ı prvk˚u, animov´an´ı jednotliv´ych paket˚u atd. D´ıky spojen´ı tˇechto dvou n´astroj˚u, se m˚uˇzeme obˇcas setkat s n´azvem NSNAM.

Simul´ator je naps´an ve dvou jazyc´ıch, OTcl, coˇz je Tcl rozˇs´ıˇren´e o objekty, a C++. C++ slouˇz´ı jako v´ypoˇcetn´ı ˇc´ast a OTcl jako uˇzivatelsk´e rozhran´ı. Vzhledem k tomu, ˇze oba jazyky jsou objektov´e existuj´ı zde 2 hierarchie objekt˚u, kter´e v nˇekter´ych m´ıstech koresponduj´ı mezi sebou.

Sc´en´aˇr simulace se vytv´aˇr´ı ve formˇe OTcl skriptu. Je moˇzn´e ovlivˇnovat dobu simulace, chovan´ı jednotliv´ych objekt˚u, stav linek atd.

3.1

akladn´ı prvky

NS poskytuje z´akladn´ı stavebn´ı kameny pro vytv´aˇren´ı topologii a to prvky, linky, kter´e je spojuj´ı a procesy, kter´e na nich bˇeˇz´ı.

Uzly

Uzel je z´akladn´ı stavebn´ı prvek topologie, m˚uˇze reprezentovat kaˇzd´y s´ıt’ov´y prvek. Pˇri vy-tvoˇren´ı je mu pˇridˇeleno jedineˇcn´e ID a adresa. Na uzly jsou nav´az´any dalˇs´ı komponenty, klasifik´atory a agenti.

Linky

Zajiˇst’uj´ı spojen´ı mezi jednotliv´ymi uzly. Skl´ad´a se z komponent poskl´adan´ych do ˇretˇezu, kde kaˇzd´a komponenta m´a jinou funkci, napˇr. fronta, zpoˇzdˇen´ı atd.

(23)

Obr´azek 3.1: Network animator Agenti

Agent reprezentuje procesy, kter´e bˇeˇz´ı na jednotliv´ych uzlech. Moˇzn´a jeˇstˇe obecnˇeji se d´a ˇr´ıct, ˇze se jedn´a o m´ısto kde vznikaj´ı, jsou zpracov´av´any a zanikaj´ı pakety. M˚uˇze zastupovat funkce r˚uzn´ych aplikac´ı, smˇerovac´ıch i transportn´ıch protokol˚u

Pakety

Zpr´avy, kter´e si mezi sebou vymˇeˇnuj´ı jednotliv´y agenti. Specifikum ns-2 je, ˇze paket obsa-huje hlaviˇcky vˇsech nadefinovan´ych protokol˚u. Agent, kter´emu takov´y paket pˇrijde muˇze si rovnou pˇreˇc´ıst svoji hlaviˇcku, a na jej´ım z´akladˇe zkoumat zda je to paket, kter´y pˇrij´ım´a. Agent tedy nemus´ı zkoumat bit po bitu dan´y paket.

Nev´yhodou tohoto pˇr´ıstupu je, ˇze pakety jsou velk´e a pˇri velk´ych simulac´ıch zp˚usobuj´ı velk´e vyt´ıˇzen´ı zdroj˚u. Hlaviˇcky se daj´ı, ale selektivnˇe vypnout a ponechat si pouze ty, kter´e pro konkretn´ı simulaci potˇrebujeme.

3.2

Smˇ

erovac´ı struktura

Smˇerovac´ı struktura v ns-2 se skl´ad´a z nˇekolika ˇc´ast´ı. Klasifik´ator

Klasifikuje pakety na z´akladˇe nejr˚uznˇejˇs´ıch informaci a pot´e pˇred´av´a, na z´akladˇe tˇechto informac´ı, pakety d´al. Lze si ho pˇredstavit jako demultiplexor.

Uzel obsahuje vˇetˇsinou minim´alnˇe 2, jeden kter´y klasifikuje na z´akladˇe adresy a pln´ı v podstatˇe funkci smˇerovac´ı tabulky, a druh´y, kter´y klasifikuje podle c´ılov´eho portu, pokud

(24)

Obr´azek 3.2: Smˇerovac´ı struktura ns-2

je paket urˇcen pro tento uzel. Krom tˇechto 2 m˚uˇze b´yt napˇr´ıklad pˇr´ıtomen klasifik´ator multicastov´ych paket˚u. Klasifik´atory pot´e tvoˇr´ı stromovou strukuru.

rtModule - smˇerovac´ı modul

Smˇerovac´ı modul ˇr´ıd´ı klasifik´ator, a to jak jeho operace, pˇrid´avan´ı a odeb´ır´an´ı cest, tak jeho vytv´aˇren´ı a instalaci do uzlu. Uzel m˚uˇze obsahovat v´ıce modul˚u, stejnˇe jako klasifik´atoru. Ty potom vytv´aˇrej´ı ˇretˇez, po kter´em se propaguj´ı informace ke vˇsem smˇerovac´ım modul˚um.

Smˇerovac´ı protokoly

Jedn´a se vlastnˇe o agenty, kteˇr´ı si vymˇeˇnuj´ı zpr´avy s ostatn´ımi instancemi protokolu. rtObject

D´av´a dohromady datab´aze smˇerovac´ıch protokol˚u a vytv´aˇr´ı z nich jedinou smˇerovac´ı ta-bulku. Upozorn´ı pot´e uzel, ˇze si m´a zmˇenit cestu k urˇcit´emu c´ıli. Uzel pot´e upozornˇen´ı poˇsle pot´e zpr´avu na ˇretˇez smˇerovac´ıch modul˚u a ty zmˇen´ı informace v klasifik´atoru.

RouteLogic

(25)

3.3

Dostupn´

e unicastov´

e smˇ

erovac´ı protokoly

Static

Vyuˇz´ıv´a Dijkstr˚uv algoritmus, cesty k jednotliv´ym uzl˚um se vypoˇc´ıtaj´ı pˇri spuˇstˇen´ı simulace a kaˇzd´y uzel si je pˇrid´a do klasifik´atoru.

Session

Pracuje na podobn´em principu jako Statick´e smˇerov´an´ı, ale s t´ım rozd´ılem, ˇze pˇri kaˇzd´e zmˇenˇe v topologii si uzly zmˇen´ı cesty k jednotliv´ym uzl˚um. ˇS´ıˇren´ı t´eto informace nen´ı nijak zpracov´ano, pˇredpokl´ad´a se, ˇze vˇsechny uzly zaznamenaj´ı jakoukoliv zmˇenu v topologii. DV

Forma distance vektor protokolu. Uzly si pravidelnˇe zas´ılaj´ı svoje smˇerovac´ı tabulky. Zmˇeny se v topologi´ı neˇs´ıˇr´ı okamˇzitˇe, jednotliv´e uzly si mus´ı tyto zmˇeny pˇreposlat. Protokol, ale zjednoduˇsuje pos´ıl´an´ı zpr´av mezi jednotliv´ymi subjekty. Existuje ‘glob´aln´ı’ datab´aze zpr´av, a uzly si mezi sebou pouze vymˇeˇnuj´ı informace o tom, kterou zpr´avu si m´aji vyzvednout.

3.4

r´ıklad skriptu

V pˇr´ıkladu je uvedena jednoduch´a kruhov´a topologie, se zapnut´ym distance vektor smˇerov´an´ım. Prvn´ı ˇr´adek vytvoˇr´ı novou instanci simul´atoru. Ve druh´em a tˇret´ım je urˇceno, kter´e v´ystupy ze simulace se budou ukl´adat a kam.

set ns [new Simulator] #vytvoreni simulatoru

set nf [open DV.nam w] #otevreni trace souboru pro NAM

$ns namtrace-all $nf

Jak jiˇz n´azev procedury napov´ıd´a, spouˇst´ı se na konci simulace a jej´ım ´ukolem je spustit NAM s novˇe z´ıskan´ymi v´ysledky.

proc finish {} { global ns nf $ns flush-trace close $nf

exec nam DV.nam & exit 0

}

N´asleduje vytvoˇren´ı uzl˚u, linek mezi nimi a agent˚u. Poˇrad´ı parametr˚u pˇri vytv´aˇren´ı linek je rychlost, zpoˇzdˇen´ı a typ fronty. Null agent pouze zahazuje veˇsker´e pakety, kter´e mu pˇrijdou.

#Vytvoreni uzlu

for {set i 0} {$i < 5} {incr i} { set n($i) [$ns node] }

(26)

#Vytvoreni linek $ns duplex-link $n(0) $n(1) 1Mb 10ms DropTail $ns duplex-link $n(1) $n(2) 1Mb 10ms DropTail $ns duplex-link $n(2) $n(3) 1Mb 10ms DropTail $ns duplex-link $n(3) $n(4) 1Mb 10ms DropTail $ns duplex-link $n(4) $n(0) 1Mb 10ms DropTail #Vytvoreni UDP agentu

for {set i 0} {$i < 5} {incr i} { set udp($i) [new Agent/UDP] $ns attach-agent $n($i) $udp($i) }

#Vytvoreni Null agentu

for {set i 0} {$i < 5} {incr i} { set null($i) [new Agent/Null] $ns attach-agent $n($i) $null($i) }

#Pripojeni aplikace k agentovi

set cbr(13) [new Application/Traffic/CBR] $cbr(13) set packetSize_ 500

$cbr(13) set interval_ 0.005 $cbr(13) attach-agent $udp(1) #Propojeni dvou agentu

$ns connect $udp(1) $null(3)

#Aktivace distance vektor smerovani pro vsechny uzly $ns rtproto DV

Posledn´ı blok pˇr´ıkaz˚u definuje chov´an´ı simulace. Kdy se maj´ı zaˇc´ıt pos´ılat data z jed-notlivych aplikaci, kdy maj´ı b´yt linky neaktivn´ı a kdy ma simulace skonˇcit atd. Nakonec se cel´a simulace pˇr´ıkazem run instance simul´atoru spust´ı.

#zacate behu aplikace

$ns at 0.5 "$cbr(13) start" $ns at 4.5 "$cbr(13) stop" #zmena stavu linky

$ns at 1.5 down $n(1) $n(2) $ns at 2.5 up $n(1) $n(2) #delka simulace $ns at 5.0 "finish" #spusteni simulace $ns run

(27)

3.5

Nedostatky v˚

ci IPv4

Ns pˇr´ıliˇs nekoresponduje s IPv4 prostˇred´ım. N´asleduje v´yˇcet nedostatk˚u, kter´e m´a ns-2 bez proveden´ı jak´ychkoliv zmˇen:

• Pouze uzly maj´ı adresy, rozhran´ı jsou neadresovateln´a.

• Pakety vch´azej´ı do uzly pouze 1 vstupem, rozhran´ı lze rozliˇsit pouze v´ystupu. • Rozhran´ı na v´ystupu m´a formu pouh´e linky.

• Smˇerov´an´ı neprob´ıh´a nad s´ıtˇemi, ale na uzly. Ve smˇerovac´ı tabulce jsou uvedeny uzly a cesty k nim, nam´ısto s´ıt´ı. Toto tak´e plyne z toho ˇze pouze uzly mohou m´ıt adresu Shrnut´ı

V t´eto kapitole byl pˇredstaven simul´ator s´ıtˇe ns-2 a byli adresov´any jeho nedostatky v˚uˇci IPv4 prostˇred´ı, kter´e budou muset b´yt pˇred implementaci napraveny.

(28)

Kapitola 4

avrh a implementace

´ Uvod

V t´eto kapitole jsou uvedeny poˇzadavky na aplikaci spoleˇcnˇe s n´avrhem moˇzn´e implemen-tace. D´ale je tu pops´an zp˚usob implementace jednotliv´ych vlastnost´ı.

4.1

Koncept rozˇ

s´ıˇ

ren´ı

N´avrh

Z´amˇerem t´eto pr´ace je rozˇs´ıˇren´ı st´avaj´ıc´ıch moˇznost´ı ns-2 a ne ´upln´a zmˇena ns-2 a proto by mˇela b´yt implementace koncipov´ana tak, aby ji bylo moˇzn´e selektivnˇe aktivovat ˇci de-aktivovat. A v pˇr´ıpadˇe, ˇze bude deaktivov´ana nijak neovlivˇnovala bˇeh simulace.

Implementace

Soubor: ns-lib.tcl, ns-route.tcl

Aby byla dodrˇzena podm´ınka rozˇs´ıˇren´ı, tedy ˇze implementace nebude ovlivˇnovat p˚uvodn´ı strukturu ns-2, byla zavedena promˇenn´a simul´atoru IPv4 . Na z´akladˇe jeho hodnoty se akti-vuje nov´a IPv4 struktura nebo z˚ustane p˚uvodn´ı. Aktivace nov´e struktury se prov´ad´ı vol´an´ım metody simul´atoru IPv4 s parametry ON. Metoda deaktivuje z´akladn´ı, Base, smˇerovac´ı mo-dul a aktivuje nov´y IPv4 modul. Pro zjiˇstˇen´ı zda je rozˇs´ıˇren´ı aktivov´ano slouˇz´ı metoda simu´altor IPv4?, kter´a vrac´ı hodnotu ON, pokud je rozˇs´ıˇren´ı aktivn´ı.

Pˇr´ıklad zad´an´ı do skriptu:

$ns IPv4 ON

Bylo nutn´e zas´ahnout do st´avaj´ıc´ıch k´od˚u ns-2 a zmˇenit chov´an´ı smˇerovac´ı logiky, Rou-teLogic, tak aby pˇri spuˇstˇen´ı IPv4 rozˇs´ıˇren´ı vytvoˇrila instance nov´ych rtObject˚u na vˇsech uzlech.

4.2

Podp˚

urn´

e prvky a struktury

Protoˇze ns-2 nem´a pro IPv4 prostˇred´ı dostateˇcnou podporu, bylo nutn´e implementovat nov´e prvky smˇerovac´ı struktury, kter´e jiˇz IPv4 podporuj´ı.

(29)

4.2.1 IPv4 adresy

N´avrh

Uzly by mˇeli b´yt adresovateln´e v´ıce adresami, ne pouze jednou jako tomu je v p˚uvodn´ı ns-2. Uzly by mˇeli m´ıt strukturu pro uchov´av´an´ı adres rozhran´ı a tak´e by mˇeli pˇrij´ımat pakety, kter´e jsou urˇceny pro tyto adresy. Stejnˇe tak by mˇeli podporovat pˇrij´ım´an´ı broadcastov´ych zpr´av.

Implementace

Soubor: ns-nodeIPv4.tcl

Adresy jednotliv´ych rozhran´ı jsou uloˇzeny v asociativn´ım poli, kde je jako kl´ıˇc pouˇz´ıt sou-sedn´ı uzel. Nev´yhodou tohoto pˇr´ıstupu je moˇznost m´ıt pouze jedno rozhran´ı k jak´emukoliv uzlu, ale vzhledem k uloˇzen´ı linek v samotn´em simul´atoru, pomoc´ı id poˇc´ateˇcn´ıho a kon-cov´eho uzlu, neumoˇzˇnuje ani samotn´a ns-2 podporu pro v´ıce rozhran´ı mezi uzly. V´yhodou je snadn´a orientace v link´ach a pˇri vytv´aˇren´ı skript˚u.

Po zad´ani adresy rozhran´ı je z´aznam pˇreveden na tvar adresa/maska a uloˇzen do asoci-ativn´ıho pole. Nav´ıc je pˇrid´ana informace o s´ıt´ı na kter´e rozhran´ı leˇz´ı, z d˚uvodu ˇze se tato informace ˇcasto vyuˇz´ıv´a. Odpad´a tak nutnost ji znovu poˇc´ıtat pˇri kaˇzd´em jej´ım pouˇzit´ı.

4.2.2 Klasifik´ator

N´avrh

Klasifik´ator s podporou IPv4 mus´ı, pokud mu pˇrijde paket, ze sv´e smˇerovac´ı tabulky vybrat s´ıt’, ve kter´e se nach´az´ı uzel, pro kter´y je paket urˇcen. Klasifik´ator mus´ı udrˇzovat cesty k jednotliv´ym s´ıt´ım, ne uzl˚um jako to je v implicitn´ım klasifik´atoru v ns-2. D´ale by mˇel vyhled´avat ve sv´e smˇerovac´ı tabulce od nejspecifiˇctˇejˇs´ıch z´aznamu, z´aznamu s nejdelˇs´ım prefixem.

Implicitn´ı klasifik´ator v ns-2 mˇel jeˇstˇe jeden nedostatek, pokud nenaˇsel c´ıl pro dan´y paket, volal proceduru no-route, kter´a zastavila simulaci a vypsala na standardn´ı v´ystup zpr´avu o tom, ˇze dan´a cesta neexistuje. Toto chov´an´ı ale nen´ı vhodn´e pro IPv4 s´ıtˇe a je nutn´e ho odstranit. Zaˇr´ızen´ı v re´aln´ych s´ıt´ıch by v tomto pˇr´ıpadˇe odesilateli zaslalo zpr´avu o tom, ˇze dan´a s´ıt’ nen´ı k dispozici.

Implementace

Soubory: classifier-ipv4.{h, cc}, classifier-port.{h, cc}

Klasifik´ator, kter´y smˇeruje na z´akladˇe IP adres do s´ıt´ı byl jiˇz implementov´an pˇri vytv´aˇren´ı modelu BGP pro tento simul´ator. Autory tohoto modelu a i klasifik´atoru jsou Rob Ballatyne a Tony Dongliang Feng. Klasifik´ator vˇsak nepodporuje rozes´ıl´an´ı paketu v´ıce c´ıl˚um nar´az, multicast a broadcast, ale tuto vlastnost nebude potˇreba implementovat. Klasifik´ator se ale choval podobnˇe jako implicitn´ı klasifik´ator v pˇr´ıpadˇe, ˇze pˇrijal paket jehoˇz c´ılovou adresu, nebo alespoˇn s´ıt’ do kter´e spad´a, nemˇel ve smˇerovac´ı tabulce. Tuto vlastnost bylo tˇreba zmˇenit.

Pokud do klasifik´atoru pˇrijde paket je na nˇej vol´ana metoda classify jej´ıˇz n´avratov´a hodnota urˇcuje na kter´y slot v klasifik´atoru se dan´y paket odeˇsle. Jak´ym zp˚usobem se hodnota tohoto slotu z´ısk´a je ˇcistˇe na autorovi klasifik´atoru.

(30)

Metoda classify je vol´ana z metody find, kter´a na z´akladˇe slotu vrac´ı objekt na kter´y se m´a paket poslat d´ale. Pokud vˇsak metoda classify vr´atila hodnotu, kter´a znaˇcila, ˇze ˇ

z´adn´y slot nebyl nalezen, byla vol´ana pr´avˇe ona zmiˇnovan´a funkce no-route. Tato vlastnost vˇsak neodpov´ıdala n´avrhu, proto byla zmˇenˇena metoda find zdˇedˇen´a z rodiˇcovsk´e tˇr´ıdy Classifier. A to u obou pouˇz´ıvan´ych klasifik´ator˚u, jak adres tak port˚u.

4.2.3 Smˇerovac´ı modul

N´avrh

Jak jiˇz bylo zm´ınˇeno, ´ulohou smˇerovac´ıho modulu je ˇr´ızen´ı klasifik´atoru. Mˇel by proto poskytovat rozhran´ı uzlu pro pˇrid´av´an´ı cest do jednotliv´ych s´ıt´ıch a z´aroveˇn ˇr´ıdit spr´avu klasifik´atoru.

Implementace

Soubory: rtmodule.{h,cc}

Vzheldem k tomu, ˇze klasifik´ator od Ballatyna a Fenga mˇel k sobˇe jiˇz vytvoˇren´y smˇerovac´ı modul, nebyl implementov´an nov´y modul, pouze byl pouˇzit´y, ten jiˇz naimplementovan´y. V dalˇs´ım textu vˇsak bude pops´an zp˚usob jeho intergrace.

Definice nov´eho smˇerovac´ıho modulu - rtmodule.h:

class IPv4RoutingModule : public RoutingModule { public:

IPv4RoutingModule() : RoutingModule() {}

virtual const char* module_name() const {return "IPv4";} virtual int command (int argc, const char* const * argv); protected:

IPv4Classifier *classifier_; };

Je zde definov´ano zaˇrazen´ı do hieararchie tˇr´ıd a rozhran´ı s OTcl, pomoc´ı funkce command, jej´ı podrobnˇejˇs´ı rozbor je d´ale v textu aˇz pozdˇeji. Protoˇze pouˇz´ıv´ame jinou tˇr´ıdu klasi-fik´atoru je nutn´e zde tuto skuteˇcnost uv´est. Vzhledem k tomu, ˇze je tato tˇr´ıda implemen-tov´ana v obou jazyc´ıch ns-2, je nutn´e tyto dvˇe prostˇred´ı propojit. V n´asleduj´ıc´ım bloku k´odu v souboru rtmodule.cc definujeme, ˇze pokud se v OTcl vytvoˇr´ı objekt tˇr´ıdy RtModule/IPv4 bude vytvoˇren odpov´ıdaj´ıc´ı objekt tˇr´ıdy IPv4RoutingModule, pomoc´ı vol´an´ı funkce create.

Propojen´ı OTcl/C++ - rtmodule.h:

static class IPv4RoutingModuleClass : public TclClass { public:

IPv4RoutingModuleClass() : TclClass("RtModule/IPv4") {} TclObject* create(int, const char*const*) {

return ( new IPv4RoutingModule ); }

} class_ipv4_module;

V t´emˇze souboru je jeˇstˇe potˇreba implementovat funkci command, nejsou nutn´e zvl´aˇstn´ı funkce, takˇze ji m˚uˇzeme implementovat podle vzoru BaseRoutingModule.

(31)

OTcl

Soubor: ns-rtModuleIPv4.tcl

Ostatn´ı souˇc´asti ns-2 vyuˇz´ıvaj´ı nˇekolik metod smˇerovac´ıho modulu skrz Otcl. Metodu register, kter´a definuje, kter´e klasifik´atory se maj´ı pˇridat do uzlu, pokud je dan´y mo-dul aktivn´ı. Uzly potˇrebuj´ı rozhran´ı pro pˇrid´av´an´ı a odeb´ır´an´ı cest z klasifik´atoru, toto rozhran´ı je zajiˇstˇeno metodami add-route a delete-route. V tˇechto metod´ach je pot´e jiˇz vol´ano rozhran´ı klasifik´atoru.

4.2.4 Nov´y rtObject

N´avrh

P˚uvodn´ı rtObject byl implementov´an ˇcistˇe v OTcl a skl´adal z nˇekolika asociativn´ıch pol´ı, kde jako kl´ıˇc byli pouˇzity jednotliv´e uzly. Toto ˇreˇsen´ı bylo moˇzn´e vzhledem k tomu, ˇze poˇcet uzl˚u byl pˇredem zn´am. Implementac´ı IPv4 prostˇred´ı a smˇerov´an´ı na b´azi s´ıt´ı se stalo toto ˇreˇsen´ı nepouˇziteln´ym. Musela by se udrˇzovat nˇejak´a centr´aln´ı datab´aze vˇsech pouˇzit´ych s´ıt´ı, ke kter´e by mˇeli pˇr´ıstup vˇsechny prvky.

Dalˇs´ı podstatnou vˇec´ı bylo, ˇze vˇsechny smˇerovac´ı protokoly museli m´ıt jednotnou struk-turu asociativn´ıch pol´ı v OTcl, ze kter´ych si rtObject bral informace cest´ach k r˚uzn´ym uzl˚um. Pokud si tedy smˇerovac´ı protokol udrˇzoval svoji smˇerovac´ı tabulku v C++, musel m´ıt nutnˇe duplicitn´ı v OTcl, kv˚uli rtObjectu.

Tak´e chybˇela moˇznost ovlivnit, ne kter´y port bude smˇerovac´ı protokol pˇripojen. V p˚uvodn´ı implementaci si smˇerovac´ı protokoly museli nejprve zjistit na kter´em portu sou-sedsk´eho uzlu bˇeˇz´ı instance tohoto protokolu, protoˇze bylo moˇzn´e, ˇze jednotliv´ı agenti smˇerovac´ıch protokol˚u byli na r˚uzn´ych portech.

Nov´y rtObject by mˇel poskytnout podporu pro smˇerov´an´ı na z´akladˇe s´ıt´ı, a tak´e od-stranit nutnost m´ıt pevnˇe specifikovanou smˇerovac´ı tabulku v OTcl pro smˇerovac´ı proto-koly. Jako vhodn´y model se zd´al b´yt model typu dotaz/odpovˇed, kdy smˇerovac´ı protokoly informuj´ı rtObject o zmˇen´ach ve sv´ych smˇerovac´ıch tabulk´ach. On si na z´akladˇe tˇechto upozornˇen´ı mˇen´ı vlastn´ı smˇerovac´ı tabulku a informuje uzel, aby si zmˇenil informace v kla-sifik´atoru. Pokud je nutn´e smazat cestu do nˇekter´e s´ıtˇe, mˇel by se zeptat ostatn´ıch protokol˚u zda nemaj´ı cestu do dan´e s´ıtˇe. Mˇel by tak´e umˇet pˇripojit smˇerovac´ı protokol na konkr´etn´ı port.

Z d˚uvodu podobnosti s v´ypisy z Cisco zaˇr´ızen´ı by bylo vhodn´e pˇridat tak´e moˇznost specifikovat identifik´ator smˇerovac´ıho protokolu, napˇr. C pro pˇripojen´e s´ıtˇe, R pro RIP atd. Implementace

Soubor: ns-rtObjectIPv4.tcl

Nov´y model rtObjectu je zaloˇzen na komunikaci formou dotaz/odpovˇed’ mezi rtObjectem a smˇerovac´ımi protokoly, kde odpovˇedi od smˇerovac´ıch protokol˚u nemus´ı b´yt vˇzdy vyˇz´adan´e. Smˇerovac´ı protokoly pomoc´ı odpovˇedi informuj´ı rtObject o zmˇen´ach sv´ych datab´az´ı. Vzhle-dem k tomu, ˇze rtObject nepracuje s pakety, ale pouze se smˇerovac´ımi informacemi, nebyl d˚uvod implementovat jeho ˇc´ast v C++, kter´a je ve vˇetˇsinˇe pˇr´ıpadu urˇcena pro zpracov´av´an´ı jednotliv´ych paket˚u.

S´ıtˇe jsou uloˇzeny v asociativn´ım poli kde jako kl´ıˇc slouˇz´ı s´ıt’/prefix. V dalˇs´ıch pol´ıch jsou uloˇzeny pot´e informace o dalˇs´ım skoku, preference protokolu a jeho metrika.

(32)

Metoda smˇerovac´ıho protokolu, kter´a se pouˇz´ıv´a jako dotaz na cestu k s´ıt´ı a kterou mus´ı implementovat kaˇzd´y smˇerovac´ı protokol, m´a tvar volan´ı Protocol notify-about-route s´ıt’ prefix. Jako odpovˇed’ smˇerovac´ıch protokol˚u rtObjectu se pouˇz´ıv´a stejnojmenn´a me-toda, ale v tomto pˇr´ıpadˇe se jedn´a o metodu rtObjectu. Jej´ı parametry jsou vˇsak rozˇs´ıˇren´e.

Jej´ı vol´an´ı m´a tvar rtObject notify-about-route identifik´ator s´ıt’ prefix adresa dalˇs´ıho

skoku preference metrika. Pokud je v odpovˇedi hodnota metriku -1 je to sign´al pro

sma-zan´ı cesty do urˇcen´e s´ıtˇe.

Dalˇs´ı metodou, kterou mus´ı implementovat smˇerovac´ı protokoly je Protocol clear-route s´ıt’ prefix, kterou ˇz´ad´a rtObject o smazan´ı urˇcit´e cesty ze smˇerovac´ı tabulky. Pokud je hodnota parametru s´ıt’ rovna all, je to ˇz´adost o vymaz´an´ı cel´e datab´aze. O smazan´ı jiˇz nemus´ı b´yt rtObject jiˇz informov´an.

Metoda intf-changed z˚ustala v podstatˇe nezmˇenˇena, pouze v n´ı nen´ı explicitnˇe vol´ano compute-routes vˇsech protokol˚u. Nov´e protokoly by mˇeli reagovat na tuto zmˇenu, a ne na vol´an´ı funkce compute-routes

Implementace musela obsahovat funkce, kter´e by slouˇzili jako rozhran´ı pro ostatn´ı kom-ponenty simul´atoru. Ve vˇetˇsinˇe pˇr´ıpad˚u se shoduj´ı se star´ym rtObjectem, pouze metoda add-proto byla rozˇs´ıˇrena o moˇznost pˇripojit smˇerovac´ı protokol na konkr´etn´ı port. Pro ´

uplnou podporu pˇripojen´ı agenta na konkretn´ı port v demultiplexoru port˚u bylo nutn´e jeˇstˇe zmˇenit metodu simul´atoru attach-agent, definovanou v ns-lib.tcl. Metodˇe byl pˇrid´an voliteln´y parametr, kter´y urˇcuje, na kter´y port m´a b´yt agent pˇripojen. Nen´ı-li jeho hodnota specifikov´ana, agent se pˇripoj´ı na prvn´ı moˇzn´y port.

Pokud se smaˇze cesta do nˇekter´e s´ıtˇe rtObject poˇsle dotaz vˇsem protokol˚um na novou cestu do t´eto s´ıtˇe. Je nutn´e si, ale uvˇedomit ˇze toto nast´av´a okamˇzitˇe po obdrˇzen´ı zpr´avy o zmˇenˇe, a ˇze rtObject se dotazuje vˇsech smˇerovac´ıch protokol˚u, i toho kter´y zpr´avu o smazan´ı cesty odeslal. M˚uˇze totiˇz nastat situace, ˇze smˇerovac´ı protokol m´a tuto cestu jeˇstˇe v datab´azi a pˇri dotazu na tuto s´ıt’ odpov´ı pr´avˇe mazanou cestou. To vede k nejr˚uznˇejˇs´ım probl´em˚um.

Pˇrehled funkc´ı, kter´e je nutn´e implementovat do nov´ych smˇerovac´ıch protokol˚u: • intf-changed

• notify-about-route • clear-route

4.2.5 Pˇripojen´e s´ıtˇe

N´avrh

Kaˇzd´y uzel by mˇel zn´at s´ıtˇe, kter´e m´a k sobˇe pˇr´ımo pˇripojen´e. V p˚uvodn´ım ns-2 znal uzel svoje sousedsk´e uzly. To bylo realizov´ano ‘smˇerovac´ım’ protokolem Direct.

Podobn´y princip je nutn´e zaˇr´ıdit i pro pˇr´ımo pˇripojen´e s´ıtˇe a proto je nutn´e implemen-tovat modifikaci smˇerovac´ıho protokolu Direct. Tento protokol by mˇel umˇet nejenom pˇridat pˇripojen´e s´ıtˇe do klasifik´atoru, ale tak´e pˇridat adresy rozhran´ı, tak aby pakety, kter´e jsou smˇerov´any na tyto adresy byly pˇred´any klasifik´atoru port˚u. D´ale by mˇel pˇridat i broadcas-tov´e adresy jednotliv´ych s´ıt´ı.

Implementace

(33)

Spr´avu pˇripojen´ych s´ıt´ı zajiˇst’uje nov´a verze protokolu Direct s n´azvem DirectIPv4. Instance tohoto ‘smˇerovac´ıho’ protokolu vznik´a spoleˇcnˇe se vznikem rtObjectu, aby bylo zajiˇstˇeno, ˇze vˇsechny uzly budou zn´at alespoˇn pˇripojen´e s´ıtˇe. Pˇri inicializaci tak´e podle n´avrhu pˇr´ıd´av´a broadcastov´e adresy a adresy rozhran´ı do klasifik´atoru, aby uzel pˇrij´ımal pakety jej´ıˇz c´ılov´a adresa je rovna adrese rozhran´ı.

Pracuje na jednoduch´em principu, kde na z´akladˇe stavu rozhran´ı urˇcuje zda dan´a s´ıt’ m´a b´yt pˇrid´ana, pˇr´ıpadnˇe odebr´ana z rtObjectu. O adres´ach rozhran´ı pˇredpokl´ad´ame ˇze se nemˇen´ı. Na clear-route nereaguje, pˇripojen´e s´ıtˇe jsou zn´amy i pˇri smaz´an´ı smˇerovac´ıch datab´az´ı.

Protokol Direct je implementov´an pouze v OTcl, protoˇze nevyuˇz´ıv´a zas´ıl´an´ı paket˚u. Implementov´any jsou vˇsechny funkce vyˇzadovan´e pro interakci s rtObjectem.

4.2.6 Statick´e smˇerov´an´ı

N´avrh

Statick´e smˇerov´an´ı je oproti RIPu jednoduˇs´ı. Jej´ı instance si nevymˇeˇnuj´ı pakety a pouze uˇzivatel m˚uˇze zmˇenit jeho cesty k s´ıt´ım. Pˇrid´an´ı statick´e cesty k s´ıt´ı by mˇelo b´yt co nej-podobnˇejˇs´ı pˇr´ıkazu Cisco IOS ip route x.x.x.x m.m.m.m n.n.n.n p, kde x znaˇc´ı adresu s´ıtˇe, m jej´ı masku, n dalˇs´ı skok ve smˇeru k s´ıt´ı a p volitelnˇe preferenci. Protokol by mˇe pruˇznˇe reagovat na zmˇeny linek vedouc´ı k uzlu a nepropagovat cesty k s´ıt´ım skrz linky, kter´e jsou nedostupn´e.

Implementace

Soubor: ns-rtProtoStaticIPv4.tcl

Podobnˇe jako Direct ani instance statick´eho smˇerov´an´ı si mezi sebou nevymˇeˇnuj´ı zpr´avy o stavu smˇerovac´ıch tabulek a proto je moˇzn´e i statick´e smˇerov´an´ı implementovat jako OTcl tˇr´ıdu. Mus´ı implementovat, stejnˇe jako Direct a dalˇs´ı smˇerovac´ı protokoly, rozhran´ı s

rtObjectem, konkr´etnˇe funkce notify-about-route, clear-route a intf-changed.

Datab´aze cest se d´a implementovat pomoc´ı asociativn´ıch pol´ı s vhodnˇe zvolen´ym kl´ıˇcem. Kl´ıˇc v podobnˇe s´ıt’/prefix nen´ı bohuˇzel dostateˇcn´y, protoˇze u statick´ych cest je bˇeˇznou prax´ı m´ıt 2 do stejn´e s´ıtˇe, ale s r˚uznou preferenc´ı. Pokud linka ve smˇeru s cesty s niˇzˇs´ı preferenc´ı nen´ı funkˇcn´ı, zvol´ı se druh´a s preferenc´ı vyˇsˇs´ı.

Kl´ıˇc je tedy nutn´e zvolit jako kombinaci s´ıtˇe prefixu a adresy dalˇs´ıho skoku.

Protokol mus´ı sledovat zmˇeny rozhran´ı, aby protokol oznamoval rtObjectu spr´avn´e cesty skrz aktivn´ı rozhran´ı, ne skrz ty, kter´e jsou nefunkˇcn´ı. Na metodu clear-route protokol nereaguje, staticky pˇridan´e cesty, podobnˇe jako pˇr´ımo pˇripojen´e se ze smˇerovac´ı tabulky nemaˇzou, pouze dynamick´y nauˇcen´e cesty.

Pˇrid´an´ı smˇerovac´ıho protokolu do simulace

Na rozd´ıl od protokolu Direct, kter´y je pˇrid´an vˇzdy, statick´e smˇerov´an´ı je moˇzn´e pˇridat selektivnˇe na urˇcit´e uzly pomoc´ı pˇr´ıkazu:

$ns rtproto StaticIPv4 $n(1) $n(2)

(34)

Pojmenov´an´ı je zvoleno tak aby se protokol odliˇsil od p˚uvodn´ıho protokolu Static. Kv˚uli zp˚usobu pˇrid´an´ı protokolu, skrz vol´an´ı funkce rtproto, jsou jeho instance vytvoˇreny aˇz po spuˇstˇen´ı simulace a i jeho konfigurace je moˇzn´a aˇz v simulaˇcn´ım ˇcase.

4.3

Smˇ

erovac´ı protokol RIP

N´avrh

Model smˇerovac´ıho protokolu by mˇel odpov´ıdat funkˇcnˇe RFC dokument˚um [2], [4] a tak´e chov´an´ı protokolu na Cisco prvc´ıch. Implementace nemus´ı odraˇzet chov´an´ı ´uplnˇe pˇresnˇe, z d˚uvodu ˇze se jedn´a o model protokolu, z toho d˚uvodu je moˇzn´e si dovolit nˇekter´a zjed-noduˇsen´ı.

Implementace

soubory: rtProtoRIP.h, cc, rtProtoRIP packets.h

Implementace RIPu je naps´ana jak v OTcl tak v C++, z d˚uvodu manipulace s pakety. Z

toho plyne, podobnˇe jako v pˇr´ıpade smˇerovac´ıho modulu, nutnost tyto 2 oddˇelen´e ˇc´asti pro-pojit. Tak´e bylo nutn´e nadefinovat novou hlaviˇcku paketu a zpˇr´ıstupnit nastaven´ı procesu uˇzivatel˚um.

4.3.1 Nov´y typ paket˚u

N´avrh

Aby spolu mohly instance protokolu komunikovat je nutn´e nadefinovat form´at zpr´avy, RIP hlaviˇcku paketu. Z tabulek2.3 a 2.4je patrn´e, ˇze vˇetˇsinu pol´ı maj´ı protokoly spoleˇcn´e. Je tedy moˇzn´e nadefinovat pouze 1 hlaviˇcku, kterou budou vyuˇz´ıvat obˇe verze protokolu. Pole verze protokolu poskytuje dostateˇcn´e rozliˇsen´ı jednotliv´ych verz´ı. Specifick´a pole verze 2, m˚uˇze verze 1 ignorovat.

Implementace

Obsah paketu je stejn´y jako obsah paketu RIPv1 obohacen´y o poloˇzku RIPv2, kter´a urˇcuje d´elku prefixu dan´e s´ıtˇe. Oproti pln´e RIPv2 hlaviˇcce chyb´ı poloˇzka TAG, z d˚uvodu, ˇze v souˇcasn´e dobˇe nen´ı redistribuce z jin´ych protokol˚u implementov´ana, ˇz´adn´e dalˇs´ı nejsou zat´ım k dispozici. Tak´e chyb´ı pole dalˇs´ıho skoku, implicitnˇe se vˇzdy vyuˇz´ıv´a zdrojov´e adresy paketu. Zmˇenou oproti tradiˇcn´ı struktuˇre RIP paket˚u, kde je prvn´ı z´aznam vyuˇzit pro autentizaˇcn´ı ´udaje, je vytvoˇren´ı samostatn´e promˇenn´e, kter´a tyto ´udaje obsahuje.

Struktura paketu - rtProtoRIP packets.h:

int command_; int version_;

const char * authentication_; RIP_route_list routes_;

Promˇen´a routes zastupuje z´aznamy jednotliv´ych s´ıt´ı v paketu. Kaˇzd´y z´aznam m´a n´asleduj´ıc´ı strukturu, kter´a odr´aˇz´ı strukturu z´aznamu RIPu. Jedin´ym rozd´ılem je ukazatel na dalˇs´ı z´aznam.

References

Related documents

For example and as in Table 5, regressing a Health indicator (Healthy Life Expectancy) on a QoG variable (Government Effectiveness) and two Health Spending variables (Government

The wavelength ranges that were observed contain a number of spectral lines of other elements. In the process of comput- ing the synthetic spectra, estimates of the abundances of

We are interested in estimating the causal effect of changes in mortality, mea- sured by infant mortality or crude death rates, on GDP per capita growth, pop- ulation growth

To facilitate course and program submissions universities, colleges, and career-technical institutions we will be using program accreditations or state board approvals as proof

In Section 2.3, we then cover topics related to our work on the field of data-driven software development: methods for collecting user related data, its analysis, and

21st Century Learning 22 Mobile Learning 26 Seamless Learning 26 Collaboration 27 Learner Autonomy 28 Presence 29 Critical Literacies 31 Transactional Distance 32

This will entail conceiving language as an essential social and ideological instrument which enables learners to question methods and procedures and contributes to

To capture CNVs within CDH candidate regions, we developed and tested a targeted array comparative genomic hybridization platform to identify CNVs within 140 regions in 196 patients