Mika Lehtonen
Tietotekniikka
Teknillinen Korkeakoulu
18.11.1998
mhlehton@cc.hut.fi
Reitittimiltä vaaditaan nykypäivän tietoverkoissa melkoisesti enemmän kuin aiemmin. Suurimpana syynä tähän ovat liikenteen kasvu sekä koko tietoverkkon kiihtyvä kasvuvauhti - verkkojen topologiat muuttumat kun uusia komponentteja liittyy verkkoon.
Reittimet ovat nopeutuneet niin, että ne eivät enää muodosta pullonkaulaa verkkoliikenteessä, vaan toimivat lähes samalla nopeudella kuin pelkät toistimet. Reitittimen nopeutta tärkeämpi on kuitenkin se, että reititin reitittää oikein. Reititys tapahtuu oikein, kun reitittimen reititystaulu on ajan tasalla ja kun sen sisältämää tietoa käytetään oikein. Reititystaulun päivittämisestä ja sen tulkitsemisesta huolehtivat reititysprotokollat. Ihminen ei voi korvata reititysprotokollia, koska verkossa tapahtuu muutoksia, niin paljon että reititystaulujen ylläpito ei ole ihmiskäsin mahdollista.
Koska kuormitus on internetin kasvun myötä moninkertaistunut, on entistä tärkeämpää että
reitittimet pystyvät reitittämään niin, ettei turhia tukoksia tai ruuhkia synny. Verkon
toimimattomuus on nykypäivänä paljon suurempi katastrofi kuin moni osaa kuvitellakkaan.
Hyvin monet ihmiset ja yhtiöt ovat ainakin jollain muotoa riippuvaisia tietoliikenneyhteyksistä.
Suuntaus jatkuu edelleen, joten verkon toimivuuden tärkeys kasvaa entisestään tulevaisuudessa.
Reititykseltä vaaditaan siis kapasiteettia ja luotettavuutta, ja näihin vaatimukseen
nykypäivän reitittimet ja niiden käyttämät protokollat pystyvät myös vastaamaan, mutta miten
käy tulevaisuudessa?
Reititys on olennainen osa verkonhallintaa. Sitä voidaan kuvata niiden sääntöjen joukoksi joiden avulla siirretään verkosta toiseen informaatiota. Reititin sijoittuu OSI-mallissa sen kolmanteen eli verkkokerrokseen.
Reityksellä on tärkeä osuus kasvavassa tietoverkkoliikenteessä. Sen on oltava nopeaa ja luotettavaa, jotta pullonkauloja ei verkkoihin synny. Algoritmien pitää pitää huoli siitä, että paketit eivät joudu silmukkaan. Niiden pitää osata löytää varareitit oletusreitin ollessa poikki. Mitä hyvältä reitittimeltä vaaditaan? Mihin tämänpäivän reitittimet pystyvät? Miten reititysalgoritmit toimivat?
Internet-maailmassa reitittimien tehtävänä on välittää paketteja verkosta toiseen. Reititin seisoo verkkojen välissä ja ohjaa IP-osoitteiden avulla paketteja verkosta toiseen. Reitittimen ja normaalin isännän ero on se, että isännän ei tarvitse tietää juuri mitään verkon rakenteesta, vaan se voi luottaa reitittimiin. Reitittimiä käytetään, kuten siltojakin, verkkojen yhdistämiseen tai erottamiseen. Erona on kuitenkin se, että verkkojen ei tarvitse olla keskenään samankaltaisia. Verkonhallinta ja suodatusominaisuuksiltaan reititin on selvästi siltaa kehittyneempi. Reitittimen avulla voidaan hyvin tarkkaan kontrolloida verkon osien käyttöä ja asiattomien pääsy haluttuihin osiin voidaan estää.
Reititin voi tietyissä olosuhteissa reitittää vaikka sillä ei täydellistä tietoa olekkaan tietoverkon rakenteesta. Mikäli reititin osuorassa yhteydessä kohde verkkoon on kyseessä suora reititys (Direct Delivery).
Kaikissa tapauksissa reitittimellä ei kuitenkaan ole suoraa yhteyttä kaikkiin verkkoihin, vaan verkon on pystyttävä välitämään paketit perille mahdollisesti useiden reitittimien kautta. Tämän seurauksena reitittimen on pystyttävä päättämään minne se ohjaa paketit sellaisiin verkkoihin, joihin sillä ei ole suoraa yhteyttä.
Tässä tapauksessa on kyseessä epäsuora reititys (Indirect Delivery).
Mikäli datapaketti kohde on samassa verkossa kuin lähettäjä ei reitittimiä tarvita paketin toimittamiseen perille, vaan lähettäjä voi lähettää kehykset suoraan kohde osoitteeseen.
Reitittimen tehtävänä on välittää lähiverkkojen välistä liikennettä, se toimii yleensä "porttina" lähiverkon ja ulkopuolisen reititinverkon välissä. Reitittimen ensisijainen tehtävä on ohjata lähiverkosta ulospäin suuntautuvat paketit optimaalista reittiä pitkin eteenpäin reititinverkkoon, jossa olevat reitittimet toimittavat paketit lopulta perille. Toisaalta reititin ohjaa reititinverkosta lähiverkkoon tulevat paketit oikeaan segmenttiin.[1]
Reititin eristää lähiverkon sisäisen liikenteen ulkomaailmasta ja päästää läpi vain halutun liikenteen. Reitittimella voidaan myös jakaa verkkoja aliverkoiksi, jolloin se toimii samalla siltana. Käytännössä reititin on ohjelmisto, joka suorittaa pakettien reitityksen.[1]
Tällä hetkellä reitittimet ovat, niin nopeita etteivät ne muodosta enää pullonkaulaa liikenteeseen tietoverkossa, toisin sanoen ne toimivät käytännöllisesti katsoen yhtä nopeasti kuin sillat ja toistimet.
Yksinkertaisin tapa, jolla tämä voidaan hoitaa on nk. oletusreitti (default gateway). Tässä tapauksessa reititin lähettää kaikki paketit, jotka kohdistavat sellaisiin verkkoihin, jotka eivät ole suoraan kiinni siinä itsessään, tietyä oletusreittiä pitkin. Näin kyseinen reititin jättää oikean reitin löytämisen ylemmän tason reitittimien ongelmaksi.[4]
Oletusreitti toimii hyvin pienissä verkoissa ja sen käyttö varmistaa sen, etteivät reititystaulukasva liian suuriksi reitittimen muistille, joskaan se ei enää ole niin suuri ongelma kuin muutama vuosi sitten reitittimien kapasiteetin koko ajan parantuessa.
Vaihtoehtoisten reittien käyttäminen edellyttää siis paljon suurempaa tietoa koko verkon rakenteesta. Jotta tätä tietoa voidaan käyttää hyväksi tarvitaan myös tehokkaa reititysalgoritmit.
Reitysalgoritmit olisivat paljon yksinkertaisempia, jos verkko olisi stabiili. Nyt kuitenkin verkko laajentuu jatkuvasti ja sen osaset voivat olla epäkunnossa. Reitittimen pitää olla tietoinen verkon rakenteesta, mikä pitää sisällään siinä tapahtuvat muutokset.
Koska suurissa verkoissa muutoksia tapahtuu jatkuvasti, muutosten ylläpitäminen käsin ei ole mahdollista. Reitityksessä tarvittavien muutostietojen välittämiseksi reitittimet keskustelevat keskenään reititysprotokollan avulla. Reititysprotokollalla reitittimet saavat toisilta reitittimiltä tietoa IP-verkkonumeroista sekä reitittimien välisistä linkeistä, jotta yksittäinen reititin voi päättää mitä kautta IP-paketit tulee ohjata.[4]
Seuraavassa muutaman yleisimmän reititysprokollan kuvaus.
Vektori-etäisyys ei tässä viittaa yhteen algoritmiin, vaan algoritmien luokkaan joka käyttää tätä hyväksi. Idea vektori-etäisyys algoritmissä on varsin yksinkertainen: kun reititystaulu luodaan reititin alustaa sen liittämällä siihen kaikki ne verkot joihin sillä on suora pääsy (directly connected). Jokaista verkkoa kohden liitetään myös etäisyys verkkoihin, joka näissä suoraan kytketyissä verkoissa on 0. Tämän jälkeen tauluja vaihdetaan naapurien kesken. Aina kun naapurilla on tiedossa lyhyempi reitti johonkin verkkoon, korvaa reititin omaa reititystauluaan siten, että kyseisen verkon etäisyydeksi asetetaan yksi enemmän kuin mitä se oli naapurin reitittimessä. Käsite vektori etäisyys tulee siitä, että tietoa vaihdetaan pareina (V,D), jossa V identifioi kohdeverkon ja D etäisyyden.[3]
Yksi vektori-etäisyys protokolla on Gateway-to-Gateway Protocol, GGP. GGP ei tosin enää ole olennaisessa osassa TCP/IP:tä, mutta se tarjoaa kuitenkin hyvän esimerkin vektori-etäisyys reitittämisestä. GGP etäisyyttä mitataan hypyillä lähettäjältä vastaanottajalle. GGP toimii juuri, kuten vektori-etäisyys määritteleekin. Esimerkiksi kun uusi reititin liittyy verkkoon, sen pitää informoida vain naapureitaan ja näin se voi luottaa että tieto leviää läpi koko verkon.[3]
Open Shortest Path First eli OSPF perustuu siihen, että reititimet autonomisessa systeemissä voivat vaihtaa reititystietoja keskenään. Autonominen on systeemi kostuu ryhmästä reitittimiä, jotka kuuluvat yhden organisaation käskynalaisiksi. OSPF minimoi suurien IP verkkojen ylitysajat.[2]
OSPF:ssä reitittimet vaihtavat reititystietoja vian kun verkon topologiassa tapahtuu muutoksia. Tämän muutoksen huomaava reititin ilmoittaa muutoksen naapureilleen. Se ei siis lähetä koko reititystauluaan. Naapurit taas informoivat naapureitaan ja näin tieto kulkee mahdollisimman vähällä verkon rasittamisella. Koska tieto topologian muuttumisesta kulkee välittömästi, muutokset ovat päivitetty nopeammin kuin esim RIP:ssä.[2]
Routing Information Protocol eli RIP on toinen reititysprotokolla. RIP valitsee reitit etäisyys-vektorin avulla. Etäisyyden arvo on hyppyjän määrä kohde- ja lähtöverkon välillä. Reitti, jossa on vähiten hyppyjä valitaan kustannuksiltaan alhaisimmaksi.[2]
Verkossa jossa käytetään RIP-protokollaa on maksimaalinen hyppyjen määrä 15. Näin voidaan estää silmukoiden syntyminen. Reititystietojen vaihtaminen tapahtuu siten, että jokainen reititin lähettää koko reititystaulunsa 30 sekunnin välein broadcastina. Kun reititin saa naapurinsa reititystaulun se päivittää omansa ja lähettää päivitetyn version naapureilleen. Tapahtuma jatkuu, kunnes kaikilla reitittimillä on yhteinen näkemys verkon topologiasta. [2]
Reitittimien vastuun voidaan siis sanoa kasvaneen viime vuosina. Töitä on entistä enemmän
ja samalla myös virheistä koituu paljon aikaisempaa suuremmat menetykset. Reititysprotokollat
ovat varsin pitkäikäisiä, mutta silti on välttämätöntä, että kasvavien tietoliikenneverkkojen
ja kasvavan verkkoliikenteen takia, myös reititysprotokollat kehittyvät.
[1] Anon., Reititin, [viitattu 23.9.1998]
< http://www.math.jyu.fi/~numive/jtv/router.html >
[2] Anon., Routing Protocols, Bay Networks 1998[viitattu 23.9.1998]
< http://www.baynetworks.com/products/Routers/Protocols/WAN/ip.html >
[3] Comer Douglas, Internet working with TCP/IP, Prentice Hall 1995
[4] Koivisto Matti, Reititysprotokollat, [viitattu 23.9.1998]
< http://mursu.mikkeliamk.fi/opinnot/tekniikka/datasiirto/tcpip/luku7/matsku7.htm >