Marsruutimine

Allikas: Traadita Wiki by Jan & Co.
Mine navigeerimisribale Mine otsikasti

Sissejuhatus

Internet

on laivõrk, mis koosneb paljudest omavahel ühendatud kohtvõrkudest.

Kohtvõrk

on selline arvutivõrk, kus kõik sinna kuuluvad arvutid saavad omavahel otse, ilma täiendavate võrguseadmeteta, näiteks ruuteriteta, suhelda. Skeemil on kujutatud kolm masinat A, B ja C, mis asuvad ühes võrgus.

            A           B           C
           ___         ___         ___
          |   |       |   |       |   |
          |___|       |___|       |___|
            |           |           |
      |-----|-----------|-----------|------|


Kui kaks erinevates võrkudes asuvat arvutit soovivad andmeid vahetada, peab kõige lihtsamal juhul leiduma üks masin, mis asub korraga mõlemas võrgus ja mille kaudu andmed liiguvad.

Erilisi, mitme võrguseadmega samaaegselt mitmesse võrku ühendatud aparaate, mis jälgivad ning suunavad andmevooge sobivalt edasi, nimetatakse ruuteriteks.


Näide: skeemil on kujutatud kolm võrku v1, v2 ja v3 ning igas neist kolm arvutit. Need võrgud on üksteisega ühendatud ruuteri R vahendusel.

          v1-A        v1-B        v1-C
           ___         ___         ___
          |   |       |   |       |   |
          |___|       |___|       |___|
            |           |           |
      |-----|-----|-----|-----------|------|
                  |
                  |            v2-A         v2-B        v2-B
                  |             ___         ___         ___
                  |            |   |       |   |       |   |
                __|__          |___|       |___|       |___|
               |     |           |           |           |
               |  R  |-----------|-----------|-----------|-----|
               |_____|            
                  |
                  |
                  |           
|-----|-----------|-----------|-----------|------|
     _|_                     _|_         _|_
    |   |                   |   |       |   | 
    |___|                   |___|       |___|

    v3-A                    v3-B        v3-C

Kui näiteks arvuti v3-B soovib suhelda arvutiga v1-C, liiguvad andmed läbi ruuteri R. Samasse võrku ühendatud suvalised arvutid saavad ilma ruuteri abita andmeid omavahel vahetada.

Arvutite võrkudesse grupeerimise üks põhjusi on andmeliikluse lokaliseerimine.

Mõnel puhul käsitletakse kohtvõrguna füüsiliselt ühe asutuse sisse jäävat võrku, kusjuures see võib koosneda mitmes väiksemast võrguseadmete abil ühendatud võrgust.

IP-aadressid

Kuivõrd Internetis ja suures osas Linuxi, FreeBSD, Solarise ja Windowsi operatsioonisüsteeme kasutavate tööjaamadega kohtvõrkudes tarvitatakse TCP/IP võrguprotokolle, käsitletakse käesolevas palas vaid seda, mis puutub TCP/IPsse.

Iga TCP/IP võrgus olevat võrguseadet identifitseerib unikaalne arv - seadme IP-aadress (ehk IP-number). Kuna enamasti on arvutil vaid üks võrguseade (näiteks võrgukaart), siis kõneldakse ka arvuti IP-aadressist. Samal ajal on näiteks ruuteril mitu võrguseadet ja igal neist oma IP-aadress.

Tänapäeval (aasta 2000 lõpp) kehtiva IPv4 standardi kohaselt märgitakse IP-aadresse neljaelemendiliste arvukombinatsioonidena, kusjuures iga elemendi väärtus võib olla 0 ... 255 ning neid eraldatakse üksteisest punktiga. Näiteks on korrektne IP-aadress 193.40.10.130.

Järgneva paremaks mõistmiseks tuleb arvestada, et arvutites väljendatakse elementidele vastavaid arve kahendsüsteemis. Nii vastab näites toodud IP-numbrile kahendsüsteemis arv

193     .   40      .   10      .   13
1100 0001   0010 1000   0000 1010   0000 1101

IP-aadressi esitamiseks on vaja nelja baiti ehk 32 bitti. Niisiis, IPv4 standard näeb ette 2^32 erineva aadressi kasutamise.

IP-aadresside klassid

Ruutingu efektiivsemaks korraldamiseks on IP-aadressid grupeeritud klassidesse. See teeb ruuterite konfigureerimise mugavamaks, kuna seadistamisel kirjeldatud reeglid toimivad kõigi vastavasse klassi kuuluvate IP-aadresside jaoks.

Tavaliselt kuulub klassi kahe astme jagu IP-aadresse (4, 8, 16, 32 ...) ning nad on järjestikulised (193.40.80.160, 193.40.80.161, 193.40.80.162 ...). Klasse märgitakse kaldkriipsu abil selliselt: võrguaadress/võrgumask

näiteks

193.40.80.0/24

Võrguaadress (ingl. k. network address) on klassi kõige väiksem IP-aadress, antud näites 193.40.80.0.

Võrku kuuluvate IP-aadresside koguarvu saab leida sellise valemi abil

aadresside arv = 2^(32 - mask)

antud juhul

aadresside arv = 2^(32 - 24) = 2^8 = 256

Võrgu kõige suuremat IP-aadressi nimetakse leviaadressiks (ingl. k. broadcast address) ning ta arvutatakse sellise valemi järgi

leviaadress = võrguaadress + aadresside koguarv alamklassis - 1

näites antud alamklassi 193.40.80.0/24 leviaadressiks saame

leviaadress = 0 + 256 - 1 = 255

Tulemuseks on 193.40.80.255.

Kõik klassi võrguaadressi ja leviaadressi vahele jäävad IP-aadressid, ka võrgu- ja leviaadress ise, kuuluvad kõnealusesse klassi.

Alamklassile vastavasse võrku kuuluvate arvutite IP-aadressidena võib kasutada kõiki klassi kuuluvaid aadresse peale võrgu- ja leviaadressi. Niisiis, igast klassist läheb tehnilistel põhjustel kaotsi 2 IP-aadressi.

Kuna klassi kuuluvaid IP-aadresse kasutatakse ühte võrku kuuluvate arvutite jaoks, siis tihti öeldakse ka 193.40.80.0/24-suguse asja kohta võrk, mõeldes sellele võrgule vastavate IP-aadresside komplekti, so klassi.

Lisaks /24 notatsioonile on kombeks võrgumaski üles märkida ka nö pikal kujul. Teisendus viiakse läbi kasutades kahendarve ja arvestades, et võrgumaski (ingl. k. netmask) pikkus on nagu IP-aadressi pikkuski 32 bitti. /24 näitab, et vasakpoolsed 24 bitti on seatud

1111 1111  1111 1111  1111 1111  0000 0000

Väljendades kaheksaseid bittide gruppe kümnendsüsteemis ning eraldades neid punktiga nagu pala alguses IP-aadressi puhul, saame kirjutada samaväärselt võrgumaski /24 selliselt

255.255.255.0

Oluline on märkida, et teades võrgumaski ja IP-aadressi, saab üheselt kindlaks teha selle võrgunumbri, kuhu see IP-aadress kuulub.

Näiteks võrgumaski 255.255.255.0 (ehk /24) ja IP-aadressi 193.40.10.13 järgi saab kindlaks teha, et kõnealune IP-aadress kuulub võrku 193.40.10.0/24. Selleks kirjutame mõlemad arvud välja kahendkujul ning korrutame bittipidi (ingl. k. bitwise)

193.40.10.13   --    1100 0001   0010 1000   0000 1010   0000 1101

   &&

255.255.255.0   --    1111 1111   1111 1111   1111 1111   0000 0000

  =

 193.40.10.0   --    1100 0001   0010 1000   0000 1010   0000 0000

Bittipidi korrutamisel on tulemus üks, kui mõlemad tegurid on ühed, kõigil muudel juhtudel on korrutise väärtus null. IP-aadressi võrgu- ja masinaosa

IP-aadressi saab vaadelda koosnevana võrgu- ning masinaosast, kusjuures võrgumask näitab, kus üks lõpeb ja teine algab. Kirjutades IP-aadressi ja võrgumaski kahendkujul üksteise kohale välja, moodustab võrgunumbri see osa IP-aadressist, mis jääb maski ühtede kohale, ülejäänud on masinaosa.

Näiteks IP-aadressi 193.40.10.13 ja võrgumaski 255.255.255.0 puhul

                   | <------    võrguosa    -------->  | masinaosa
255.255.255.0   --    1111 1111   1111 1111   1111 1111   0000 0000
193.40.10.13   --    1100 0001   0010 1000   0000 1010   0000 1101

IP-numbrite täisklassid ja alamklassid

Täisklassid

Vanarahvas räägib, et esialgu ei osatud nii globaalset arvutite võrgutamist ette näha, nagu seda on tänapäeval Internet. Seepärast jaotati IP-numbrid kolme täisklassi A, B ja C vahel. IP-aadresside täisklassid:

klass	võrgumask	IP aadresruum	võrke	IP aadresse võrgus	klassi aadresse kokku
A	255.0.0.0	0.0.0.0 - 127.255.255.255	128	256^3 = 16 777 216	128 x 256^3 = 2 147 483 648
B	255.255.0.0	128.0.0.0 - 191.255.255.255	64 x 256 = 16 384	256^2 = 65 536	64 x 256^3 = 1 073 741 824
C	255.255.255.0	192.0.0.0 - 223.255.255.255	32 x 256^2 = 2 097 152	256	32 x 256^3 = 536 870 912
muud	-	224.0.0.0 - 255.255.255.255	-	-	32 x 256^3 = 536 870 912


Kokku on IPv4 aadressruumi suuruseks 256^4 = 4 294 967 296 aadresse, kusjuures 75 % neist kuulub klassidesse A ja B.

Rida 'muud' vastab ülejäänud numbritele ja need on reserveeritud spetsiaalseks kasutuseks.

Näiteks IP-aadress 130.15.40.1 kuulub B klassi võrku.

Üldlevinud kokkuleppe kohaselt ei kasutata avalikult järgmisi IP-aadresse: need on privaataadressid ja mõeldud kasutamiseks ainult kohalikes võrkudes, näiteks ilma internetiühenduseta võrkudes, või maskeraaditud võrkudes. Privaatvõrguaadressid

klass	võrgumask	IP-aadresruum	võrke	IP-aadresse võrgus
A	255.0.0.0	10.0.0.0 - 10.255.255.255	1	16 777 216
B	255.255.0.0	172.16.0.0 - 172.31.255.255	16	65 536
C	255.255.255.0	192.168.0.0 - 192.168.255.255	256	256

Alamklassid

Kuna praktiliselt on tihti piisav omada näiteks ka 16 IP-aadressilist võrku, siis lubab standard moodustada ka sellised võrke, mille võrguosa ulatub võrgumaskis viimase, neljanda baidi sisse. Näiteks alamklassi 193.40.10.128/28 puhul on võrgumaskis seatud 28 vasakpoolset bitti

193.40.10.128    --    1100 0001   0010 1000   0000 1010   1000 0000
/28              --    1111 1111   1111 1111   1111 1111   1111 0000

Kirjutades võrgumaskile vastavad nelikud kümnendsüsteemis saame

255.255.255.240

Näeme, et võrgumaskiga /28 võrku jääb 16 IP-aadressi, kuna masinaosale vastab 4 bitti ja see võimaldab moodustada 2 ^ 4 = 16 erinevat IP-aadressi.

Võrgu leviaadress on alamvõrgu suurim aadress. 128 + 16 = 144 on järgmise võrgu algus, seega on võrgu 193.40.10.128/28 leviaadress 143. Ehk teisipidi, seades masinaosas kõik neli bitti ühtedeks, saame viimasele baidile kahendväärtuse 1000 1111, mis on kümnendsüsteemis 143.

Võrgumaskiga on võimalik ka klasse ühendada. Näiteks võrku 192.168.16.0/20 kuuluvad aadressid vahemikus 192.168.16.0 kuni 192.168.31.255. Selles võrgus on 2^12 = 4 096 IP-aadressi.

Ruuting

Ruuterid tegutsevad IP-tasemel - ruuditakse IP-pakette. Millisesse võrguseadmesse pakett edasi saadetakse, otsustatakse iga paketi jaoks eraldi paketi IP-päise järgi. Ruutingu seisukohalt on IP-päises oluliseks informatsiooniks vaid sihtpunkti IP-aadress.

Vaikelüüs

Igas tööjaamas on vaja ära näidata tema alamvõrgu ruuteri ehk vaikelüüsi IP-aadress.

Enne IP-paketi arvutist väljumist tehakse esmalt kindlaks, kas ta on suunatud samasse võrku või mujale. Selleks korrutatakse bittipidi väljuva paketi sihtpunkti IP-aadress kohaliku võrgu võrgumaskiga.

Kui tulemuseks saadakse kohalik võrgunumber, siis järelikult soovitakse pakett saata mõnele kohaliku võrgu arvutile ning pakett toimetatakse otse kohale.

Kui tulemuseks ei ole kohaliku võrgunumber, tuleb pakett saata kohalikust võrgust välja. Selleks saadetakse pakett esmalt kohaliku võrgu ruuterile. Ruuter "otsustab", kuhu pakett edasi saata.

Ruutingutabel

Ruuteri ülesandeks on suunata ükskõik millise seadme kaudu saabunud paketid sobivalt edasi. Ruuter võrdleb IP-paketi päises olevat sihtpunkti aadressi ruutingutabeli reeglitega ning otsustab, millise võrguseadme kaudu see pakett välja saata. Kui paketi sihtpunkti aadress kuulub sellesse võrku, kus asub väljasaatmiseks valitud võrguseade, saab paketti saata otse sihtpunkti kohale. Vastasel juhul saadetakse pakett töötlemiseks edasi järgmisele ruuterile.

Korrektse ruutingu puhul ei saa tavaliselt nii olla, et ruutingu tulemusena otsustatakse pakett saata välja sama seadme kaudu, kust ta ruuterisse sisenes.

Selgituseks kirjutame välja mõned ruuterite ruutingutabelid ning kommenteerime

R3 
Destination         Gateway          Iface
193.40.223.0/27     *                i1
193.40.223.32/27    *                i2
223.19.4.0/24       *                i3
193.40.223.96/28    *                i4
default             193.40.223.97    i4

Esimesel real on toodud tulpade tähendused: sihtvõrk (Destination) - rida toimib näidatud võrku suunatud IP-pakettidega vaikelüüs (Gateway) - millisele ruuteriga samas võrgus olevale aadressile pakett suunatakse edasi; * märgib, et paketi saab ruuterist otse kohale toimetada võrguseade (Iface) - millise võrguseadme kaudu pakett väljastada

Näiteks teine rida tähendab, et 193.40.223.0/27 võrku suunduv pakett tuleb saata välja läbi seadme i1. Kuna seade i1 asub selle võrgu masinatega samas võrgus, saadetakse pakett otse sihtpunkti kohale.

Sarnaselt toimub pakettide edasisuunamine võrkudesse 193.40.223.32/27, 223.19.4.0/24 ja 193.40.223.96/28. Kõikidesse muudesse võrkudesse (default) suunatud paketid saadetakse välja läbi seadme i4 selle seadmega samas võrgus olevale aadressile 193.40.224.97, seega ruuterile R2.

Kirjutame näiteks välja ka ülejäänud kahe ruuteri ruutingutabelid.

R2 
Destination         Gateway          Iface
193.40.25.128/30    *                i1
193.40.223.96/28    *                i2
193.40.23.0/27      *                i3
193.41.25.0/28      193.40.25.129    i1
193.13.20.128/27    193.49.25.129    i1
default             193.40.223.98    i2

R1 
Destination         Gateway           Iface
193.41.25.0/28      *                 i1
193.13.20.128/27    *                 i2
193.40.25.128/30    *                 i3
default             193.40.25.130     i3
Alamvõrkude arvutamise näide

Vajadus alamvõrkude arvutamise järgi tekib näiteks siis, kui asutusele eraldatakse IP-aadressruum, võrk 193.40.10.0/24 ning administratiivsetel ja tehnilistel põhjustel on vaja kohtvõrk jagada neljaks võrdseks alamvõrguks.

256-aadressilise klassi jagamisel võrdseteks alamklassideks kuulub igasse alamklassi 64 aadressi. Kuna 64 on võrdne 2^6, st antud juhul on võrgumaski masinaosa 6 biti pikkune, ülejäänud 26 bitti on võrguosa.

| <------    võrguosa    -------------> | masinaosa
1111 1111   1111 1111   1111 1111   11   00 0000

Võrgumask esitatuna kümendsüsteemis on 255.255.255.192.

Esimesse alamklassi kuuluvad 64 järjestikust aadressi alates esimesest võrgunumbrist 193.40.10.0 kuni 193.40.10.63. Tabelis on toodud kokkuvõtvalt kõikide võrkude andmed. võrgunumber

network	võrgumask
netmask	leviaadress
 broadcast	arvutite IP-aadressid	   arvuteid võrgus
193.40.10.0	255.255.255.192	193.40.10.63	193.40.10.1 - 193.40.10.62	62
193.40.10.64	255.255.255.192	193.40.10.127	193.40.10.65 - 193.40.10.126	62
193.40.10.128	255.255.255.192	193.40.10.191	193.40.10.129 - 193.40.10.190	62
193.40.10.192	255.255.255.192	193.40.10.255	193.40.10.193 - 193.40.10.254	62 


Tavaliselt jääb majasisene ruuting asutuse enda korraldada, kusjuures see peab olema kooskõlas teenusepakkuja ruuteri ruutingutabeliga.

                 ___
                |   |  teenusepakkuja ruuter
                |___|                    ___       ___
                  | 1                   |   | ... |   |
                  |                     |___|     |___|
                  |                       |         |
 |----|-----------|----- 193.40.10.0/26 --|---------|-----|
      |
      | 
  i1 _|_                                     ___      ___
    |R1 |                                   |   | .. |   |
    |___|                                   |___|    |___|
  i2  |                                       |        |
      |                                       |        |
 |----|--|----- 193.40.10.64/26 -----------|--|--------|---|
         |                                 |
     i1 _|_                               _|_ i1
       |R2 |                             |R3 |
       |___|                             |___|
     i2  |                                 |  i2
         |                                 |
 |--|----|---|-- -193.40.10.128/26 --|  |--|---|--------|-- 193.40.10.192/26 --|
    |        |                                 |        |
   _|_      _|_                               _|_      _|_
  |   | .. |   |                             |   | .. |   |
  |___|    |___|                             |___|    |___|


Skeemil on tähistatud asutusesisesed võrke ühendavad ruuterid nimedega R1, R2 ja R3.

Pange tähele, et igast võrgust kulub osa aadresse ka ruuterite võrguseadmete tähistamiseks.