811338A 4 Reititys ja osoitteistus. IP - protokolla Oulun yliopisto Tietojenkäsittelytieteiden laitos
Luento pohjautuu kirjan James F. Kurose, Keith W. Ross, Computer Networking, A Top-Down Approach, 6th (Internat.) ed., Pearson Education Limited, 2013, ISBN 10: 0-273-76896-4, ISBN 13: 978-0-273-76896-4 neljänteen lukuun. 2
Mitä käsitellään? 0. Johdanto 1. Verkkokerroksen tehtävät ja palvelumallit 2. Virtuaalipiiri- ja datagrammiverkot 3. Reitittimen rakenne 4. Internet-protokolla: eteenpäinohjaus ja osoitteistus 5. Reititysalgoritmit 6. Reititys Internetissä 7. Broadcast ja multicast reititys 3
Mitä käsitellään (2) 0. Johdanto 1. Verkkokerroksen tehtävät ja palvelumallit 1.1 Eteenpäinohjaus ja reititys 1.2 Tietoverkon palvelumallit 2. Virtuaalipiiri- ja datagrammiverkot 2.1 Virtuaalipiiriverkot 2.2 Datagrammiverkot 2.3 Virtuaalipiiri ja datagrammiverkkojen alkuperä 3. Reitittimen rakenne 3.1 Prosessointi syöttöportilla 3.2 Kytkentärakenne 4
Mitä käsitellään (2) 3. Reitittimen rakenne (jatkuu...) 3.3 Prosessointi tulostusportilla 3.4 Missä jonotetaan? 3.5 Reitityksen kontrollointi 4. Internet-protokolla: eteenpäinohjaus ja osoitteistus 4.1 IP paketin (datagrammin) formaatti 4.2 IPv4 osoitteistus 4.3 Internet Control Message Prorocol (ICMP protokolla) 4.4 IPv6 5. Reititysalgoritmit 5.1 Linkkitila algoritmi (LS algoritmi) 5.2 Etäisyysvektorialgoritmi (DV algoritmi) 5.3 Hierarkinen reititys 5
Mitä käsitellään (2) 6. Reititys Internetissä 6.1 Intra-AS reititys: RIP 6.2 Intra-AS reititys: OSPF 6.2 Inter-AS reititys: BGP 7. Broadcast ja multicast reititys 7.1 Broadcast reititysalgoritmit 7.2 Multicast reititysalgoritmit 6
0. Johdanto verkkokerros tarjoaa isäntäkoneiden välisen yhteyden verkkokerroksen protokollia sovelletaan sekä päätelaitteissa että Internetin reitittimissä lähteessä verkkokerros muuttaa saamansa TCPsegmentit IP-paketeiksi, kohteessa päinvastoin Internetin reitittimet ohjaavat IP-paketteja niissä olevan osoitteen mukaan 7
Kuva 1 8
1. Verkkokerroksen tehtävät ja palvelumallit 1.1 Eteenpäinohjaus ja reititys 1.2 Tietoverkon palvelumallit 9
1.1 Eteenpäinohjaus ja reititys Verkkokerroksen tehtävät Eteenpäinohjaus (eli kytkentä). Kun paketti saapuu reitittimen sisääntulolinkkiin, reitittimen täytyy siirtää paketti sopivaan ulosmenolinkkiin Reititys. Verkkokerroksen tulee määrittää se polku, jota pitkin paketit kulkevat lähettäjältä vastaanottajalle; tämän polun laskeminen lankeaa reititysalgoritmeille Yhteyden pystytys. Tietyissä verkkoarkkitehtuureissa reitittimet polunmäärityksen jälkeen pystyttävät yhteyden, jolloin peräkkäiset reitittimet suorittavat kättelyn (esim. virtuaalipiiriverkot ATM, frame-relay, X.25; ei internetverkoissa) 10
Kuva 2 Reititysalgoritmit määrittävät lähetystaulun arvot 11
1.2 Tietoverkon palvelumallit verkon palvelumalli määrittää päätelaitteelta toiselle tapahtuvan tiedonsiirron ominaisuudet verkkokerroksen palveluja (pakettikohtaisesti) taattu perilletoimitus taattu perilletoimitus ja rajoitettu viive muita palveluja (paketttivirralle) pakettien oikea järjestys taattu minimikaistanleveys taattu huojunnan (jitter) yläraja internet-tietoverkoissa parhaan yrityksen palvelumalli; em. takuita ei anneta ATM-verkon palvelumallit: Constant Bit Rate (CBR) Available Bit Rate (ABR) 12
Palvelumalleja Verkko- arkkitehtuuri Palvelu- malli Takuu kaistanleveydestä Takuu hävi- kittömyydestä Järjestys Ajoitus Ruuhka- ilmoitus Internet paras yritys ei ei ei yllä- pidetä ei ei ATM CBR taattu vakiokaistanleveys ATM ABR taattu minimikaistanleveys kyllä on ylläpidetään ei ruuhkaa ei on ei ylläpidetä on 13
2. Virtuaalipiiri- ja datagrammiverkot 2.1 Virtuaalipiiriverkot 2.2 Datagrammiverkot 2.3 Virtuaalipiiri ja datagrammiverkkojen alkuperä 14
Virtuaalipiiri- ja datagrammiverkot kaksi tietoverkkojen päätyyppiä: datagrammi- ja virtuaalipiiriverkko (VC, Virtual Circuit). virtuaalipiiriverkon palvelu yhteyspohjainen (suor. esim. kättely) datagrammiverkon palvelu yhteydetön verkkokerroksen palvelut isäntäkonekohtaisia, (kuljetuskerroksen palvelut prosessikohtaisia) verkkokerros tarjoaa joko yhteydettömän palvelun tai yhteyskohtaisen palvelun, mutta ei molempia verkkokerroksen yhteyspohjainen palvelu implementoidaan reitittimissä (kuljetuskerroksen palvelu päätelaitteissa) 15
2.1 Virtuaalipiiriverkko virtuaalipiiri koostuu polusta (jono linkkejä ja reitittimiä) virtuaalipiirinumeroista (VC-numero); kullakin linkillä on polusssa oma numero kussakin reitittimssä olevan lähetystaulun tiedoista tiettyyn virtuaalipiiriin kuuluva paketti kantaa virtuaalipiirinumeroa otsikossaan tietyn virtuaalipiirin numero eri linkeissä voi vaihdella; reititin päivittää paketin virtuaalipiirinumeron lähetystaulun datan mukaan reitittimet säilyttävät yhteyksien tilatietoja; kun uusi yhteys (virtuaalipiiri) perustetaan, lähetystaulujen tietoja päivitetään reitittimissä 16
Virtuaalipiiriverkon vaiheet Virtuaaalipiirin pystytys Lähteen kuljetuskerros pyytää verkkokerrokselta VC:n rakentamista tiettyyn osoitteeseen; tällöin verkkokerros määrittää polun lähteestä kohteeseen märittää eri linkkien virtuaalipiirinumerot päivittää reititinten lähetystaulut varaa tarvittavat resurssit (esim. kaistanleveys) Tiedonvälitys Datapaketit siirtyvät lähteestä kohteeseen. Virtuaaalipiirin purku Tapahtuu sen jälkeen, kun kuljetuskerros pyytää yhteyden lopettamista; verkkokerros informoi vastapuolta ja poistaa yhteyden reitittimien lähetysohjaustauluista. 17
Kuva 3 Virtuaalipiirin pystytys 18
2.2 Datagrammiverkko käyttää IP-osoitteita, jotka verkkokerros kirjaa datagrammin otsikkoon verkkokerros ei pystytä yhteyttä; yhteyden tilatietoja ei säilytetä reitittimissä reitittimet ohjaavat paketit eteenpäin ilman yhteyden tilatietoja lähetystaulun tietojen perusteella; kohteen osoite kuvautuu linkkirajapinnaksi pisin yhteinen alkuosa -säännön nojalla reititysprotokollat päivittävät lähetystauluja, joten paketit kulkevat lähdekoneelta kohdekoneelle mahdoll. eri teitä 19
Kuva 4 Datagrammipalvelumalli 20
Datagrammiverkko lähetystaulun brute-force -implementointi: tietue jokaista mahdollista kohdetta varten 2 32 (> 4 000 000 000 vaihtoehtoa) brute-force -implementointi mahdoton: suuria vierekkäisten IP-osoitteiden lohkoja ohjataan eteenpäin pisin yhteinen alkuosa -säännön nojalla pisin yhteinen alkuosa -sääntö: etsitään lähetystaulusta osoitealue, jolla on pisin yhteinen alkuosa paketin kohdeosoitteen kanssa ja lähetetään IP-paketti vastaavaan linkkirajapintaan 21
2.3 Virtuaalipiiri- ja datagrammiverkkojen alkuperästä virtuaalipiiriverkko alkuperä puhelinliikenteessä mutkikkaampi kuin datagrammiverkko; puhelinverkossa tyhmät päätelaitteet, teknologia kaikissa verkoissa yhdenmukainen datagrammiverkko alkuperä tietokoneiden kommunikoinnissa fiksut päätelaitteet, yksinkertainen verkko kehittyneet palvelut ylemmissä kerroksissa päätelaitteissa erilaisten verkkolaitteiden ja teknologioiden kommunikointi ja yhteenliittäminen mahdollista uusien sovellusten kehittäminen mahdollista; tarvitaan päätelaite, sovellus ja sovellusprotokolla, kaikki verkon reunalla 22
3. Reitittimen rakenne 3.1 Prosessointi syöttöportilla 3.2 Kytkentärakenne 3.3 Prosessointi tulostusportilla 3.4 Missä jonotetaan? 3.5 Reitityksen kontrollointi 23
Mitä reitittimessä tapahtuu? reititttimen kytkentätehtävä: pakettien siirtäminen sisääntulolinkiltä ulosmenolinkille reitittimen komponentit syöttöportit kytkentärakenne tulostusportit reititysprosessori 24
Kuva 5 Reititittimen arkkitehtuuri 25
3.1 Prosessointi syöttöporteilla syöttöportin toiminnassa mukana kolme kerrosta: fyysinen, linkki- ja verkkokerros reititinprosessori laskee lähetystaulun (forwarding table), josta kopio myös kussakin syöttöportissa reitityspäätös joko syöttöporteissa tai reititinprosessorissa lähetystaulun tieto puurakenteena lineaarinen ja jopa binaarihaku liian hitaita; etsintää voidaan nopeuttaa CAM-muisti (Contents Accessible Memory): lähes vakioaika juuri käytetyt osoitetiedot välimuistissa 26
Kuva 6 Syöttöportin toiminnot 27
3.2 Kytkentärakenne paketit siirtyvät syöttöportilta tulostusportille kytkentärakenteen (switch fabric) kautta toteutustapoja; kytkentä (reititinprosessorin) muistin kautta: perinteinen tapa, käytössä myös nykyään väylää (bus) käyttäen: kuljetus syöttöportista tulostusporttiin suoraan yhteisen väylän välityksellä yhteysverkon kautta: useden väylien muodostama verkko kuljettaa paketit; tehokaampi kuin kaksi edellistä 28
Kuva 7 Kolme kytkentätekniikkaa 29
3.3 Prosesointi tulostusporteilla ottaa vastaan kytkentärakenteen kuljettaman paketin jonotus- ja puskurinhallintapalvelut toimittaa paketin yli tulostuslinkin yhteyskerroksen protokolla prosessoi pakettia tulostusportissa fyysinen siirtolinja alkaa 30
Kuva 8 Tulostusporttien toiminta 31
3.4 Missä jonotetaan pakettijonoja voi muodostua sekä syöttö- että tulostusporttiin jos jonot kasvavat liian suuriksi, tapahtuu puskuriylivuotoja ja pakettihävikkiä pakettihävikkiin vaikuttavat liikennekuorma kytkentärakenteen nopeus linjanopeus (= nopeus, jolla syöttö-/tulostusportti kykenee vastaanottamaan paketteja) jos tulostusportissa jonoa, pakettitaulukoija valitsee välitettävät paketit 32
Kuva 9 Jonotus tulostusporteilla 33
Missä jonotetaan (2) jos syöttöportissa ei riittävästi puskuritilaa saapuville paketeille, joudutaan niitä hylkäämään puskuritilan arvio bitteinä B RTT C / N missä on RTT kiertoviive, C linkin kapasiteetti ja N TCPtavuvirtojen lukumäärä jos kytkentärakenne on hidas (verrattuna syöttöportin linjanopeuteen), muodostuu syöttöportille pakettijonoja oletetaan seuraavassa, että kaikki linkkinopeudet ovat yhtäsuuria kytkentätekniikka ja syöttöporttien linjanopeudet yhtäsuuria paketit siirretään saapumisjärjestyksessä (FCFS-palvelu) seur. kuvassa esim. blokkauksesta jonon etupäässä (HOL-blocking, Head-Of-the-Line) 34
Kuva 10 HOL esto 35
3.5 Reitityksen kontrollointi edellä on oletettu, että reitityksen kontrollointi on sijoitettuna ja toimii reititinprosessorissa tällöin verkonlaajuinen reitityksen kontrollointi on hajautettu; pieni osa kontrollista sijaitsee kussakin reitittimessä ja reitittimet kommunikoivat kontrolliviestejä vaihtaen viime aikoina on tutkittu uutta reitityksen kontrolloinnin arkkitehtuuria, jossa osa kontrolloinnista tapahtuu hajautetusti (laitteistopohjainen datan kontrolli) ja osa reititinten ulkopuolella (ohjelmistopohjainen reitityksen kontrolli) 36
4. Internet-protokolla: eteenpäinohjaus ja osoitteistus 4.1 IP paketin (datagrammin) formaatti 4.2 IPv4 osoitteistus 4.3 Internet Control Message Prorocol (ICMP protokolla) 4.4 IPv6 protokolla 37
Internet protokolla: eteenpäinohjaus ja osoitteistus Internetin verkkokerroksen komponentit verkkoprotokolla, Internet Protocol (IP) versio IPv4 (RFC 791) ja versio IPv6 (RFC 2373, RFC 2460) osoitteistus datagrammiformaatti pakettien käsittely polunmääritys reititysprotokollat RIP, OSPF, BGP verkonhallinta ja virhekontrolli virheistä ilmoittaminen, verkkokerrosta koskevan informaation välittäminen ICMP 38
Kuva 11 Internetin verkkokerros 39
4.1 IP paketin (datagrammin) formaatti verkkokerroksen tietoyksikkö: datagrammi eli IP paketti seuraavassa tarkastellaan IPv4 datagrammin syntaksia ja semantiikkaa datagrammin tärkeimmät kentät versionumero (4 bittiä): IP-versio otsikon pituus (4 bittiä): ilman optioita 20 tavua palvelutyyppi (8 bittiä): miten pakettia kohdellaan paketin pituus (16 bittiä): paketin kokonaispituus tavuina tunnistus (16 bittiä): tarvitaan sirpaloinnissa liput (3 bittiä): tarvitaan sirpaloinnissa sirpaleen siirtymä (13 bittiä): tarvitaan sirpaloinnissa elinaika (8 bittiä): jokainen reititin vähenttää yhdellä protokolla (8 bittiä): kuljetuskerroksen protokolla 40
Datagrammiformaatti (2) datagrammin tärkeimmät kentät (jatkuu) otsikon tarkistussumma (16 bittiä): lasketaan kaikista otsikon kentistä (kuten UDP:ssä) jokaisessa reitittimessä, tarkistussummabitit asetetaan nolliksi lähteen IP-osoite (32 bittiä) kohteen IP-osoite (32 bittiä) optiot (tavuina): IP-otsikkoa voidaan laajentaa data jokaisessa IP-paketissa (datagrammissa, tietosähkeessä) on lähteen ja kohteen IP-osoite sekä datakenttä lähteen ja kohteen osoite säilyy IP-paketissa koko sen siirron ajan tyypillisesti datakenttä sisältää (yhden) TCP- tai UDPsegmentin 41
Kuva 12 IPv4 datagrammiformaatti 42
IP paketin sirpaloiminen verkkoteknologiat (esim. Ethernet) määrittävät maksimin siirtoyksikön (maximum transfer unit, MTU) jos IP-paketti on suurempi kuin MTU, se täytyy jakaa osiin, sirpaloida IP-paketin kokoaminen sirpaleista tapahtuu kohteessa sirpaloinnissa (ja kokoamisessa) käytetään IP-paketin Tunnistus-, Liput- ja Sirpaleen siirtymä kenttiä Tunnistus-kenttä määrittää yksikäsitteisesti isäntäkoneen lähettämän datagrammin kolmibittisen Liput-kentän 2. ja 3. bittiä käytetään sirpaloinnissa, 1. bitti varattu ja aina asetettu nollaksi 43
IP paketin sirpaloiminen (2) jos 2. bitti on arvoltaan yksi, se tarkoittaa älä sirpaloi Liput kentän 3. bitti on enemmän sirpaleita bitti kun paketti sirpaloidaan, Liput-kentän enemmän sirpaleita bitin arvo jokaisessa sirpaleessa viimeistä sirpaletta lukuunottamatta on yksi, viimeisessä sirpaleessa (samoin kuin sirpaloimattomissa datagrammeissa) enemmän sirpaleita bitin arvo on nolla Sirpaleen siirtymä ilmoittaa sirpaleen sijainnin alkuperäisessä paketissa; kun kentän arvo kerrotaan kahdeksalla, saadaan sen tavun numero, joka on sirpaleen datakentässä ensimmäisenä (alkuperäisen datagrammin datakentässä olevat tavut ajatellaan numeroiduksi nollasta ylöspäin) 44
Kuva 13 IP paketin sirpalominen ja kokoaminen 45
4.2 IPv4 osoitteistus rajapinta: laitteen ja fyysisen linkin välinen reuna päätelaitteella tavallisesti yksi rajapinta verkkoon, reitittimellä useita (yksi kutakin linkkiä varten) jokaisella rajapinnalla oma (yksikäsitteinen) IP-osoite IP-osoite 32-bittinen (4-tavuinen) binääriluku: 2 32 ( 4 miljardia) eri vaihtoehtoa IP-osoite esitetään tavallisesti pistedesimaalimuodossa; kukin tavu desimaalilukuna pisteillä muista tavuista erotettuna 11000011 01000101 00111000 00100010 195.69.56.34 osa IP-osoitteesta kuvaa aliverkkoa, johon laite kuuluu 46
Kuva 14 Rajapintaosoitteita ja aliverkkoja 47
IPv4 osoitteistus (2) seuraavassa kuvassa kolme ensimmäistä IP-osoitteen tavua muodostavat osoitteen aliverkko-osan, neljäs tavu rajapintaosan seuraavassa kuvassa aliverkko-osoitteita ovat 223.1.1.0/24, 223.1.2.0/24 ja 223.1.3.0/24 verkkomaski (network mask) on 32-bittinen luku (voidaan esittää joko binaari- tai pistedesimaalimuodossa), joka jakaa IP-osoitteen aliverkko- ja rajapintaaosaan esim. aliverkko-osoitteen 223.1.1.0/24 verkkomaski on 255.255.255.0 tai 11111111 11111111 11111111 00000000 kun binarimuotoinen verkkomaski lisätään bittikohtaista ja-operaatiota käyttäen isäntäkoneen IP-osoitteeseen, saadaan IP-osoitteen aliverkko-osa s 48
Kuva 15 Aliverkko - osoitteita 49
Kuva 16 Kolme reititintä yhdistää kuusi aliverkkoa (ja päätelaitetta) 50
IPv4 osoitteistus (3) edellisessä kuvassa kuusi aliverkkoa; osoitteet 223.1.1.0/24, 223.1.2.0/24, 223.1.3.0/24, 223.1.7.0/24, 223.1.8.0/24 ja 223.1.9.0/24 aliverkkojen määrittäminen: kukin rajapinta irroitetaan laitteestaan, jolloin syntyy epäyhtenäinen verkko, jossa rajapinnat ovat solmuja; epäyhtenäisen verkon jokainen yhtenäinen komponentti on aliverkko 51
Kuva 17 IPv4:n osoiteformaatit 52
Osoiteluokat luokka A: aliverkko-osa yksi tavu (alkaa bitillä 0), rajapintaosa kolme tavua luokka B: aliverkko-osa kaksi tavua (alkaa bittijonolla 10), rajapintaosa kaksi tavua luokka C: aliverkko-osa kolme tavua (alkaa bittijonolla 110), rajapintaosa yksi tavu luokka D: multicast-osoite (alkaa bittijonolla 1110) viides luokka (alkaa bittijonolla 11110) varattiin tulevaan käyttöön 53
Osoiteluokaton reititys (CIDR) IPv4 osoitteita liian vähän, perinteinen luokitus kankea Classless Interdomain Routing (CIDR, RFC 1519) IP-osoitteen aliverkko-osan voi vaihdella joustavasti; aliverkko-osoitteen pistedesimaaliesitys on muotoa a.b.c.d/x, missä x ilmoittaa kuinka monta osoitteen ensimmäistä bittiä on varattu aliverkolle esim. aliverkko-osoitteen 195.68.0.0/14 binääriesitys on 11000011 01000100 00000000 00000000 esim. isäntäkoneen 195.68.17.112/14 binääriesitys on 11000011 01000100 00010001 01110000 54
Kuva 18 Hierarkinen osoitteistus 55
Kuva 19 Hierarkinen osoitteistus: pitkä alkuosa 11001000 00010111 00010000 00000000 11001000 00010111 00010010 00000000 56
IP-osoitteiden jako ICANN (Internet Corporation for Assigned Names and Numbers) hallinnoi maailmanlaajuisesti IP-osoitteita organisaatio saa omalta ISP:ltä nipun IP-osoitteita ylläpito konfiguroi manuaalisesti reititinrajapinnat isäntäkoneille voidaan antaa IP-osoitteet joko manuaalisesti (ylläpito konfiguroi); tai DHCP-protokollaa käyttäen automaattisesti (Dynamic Host Configuration Protocol, RFC 2131) IP-osoite voi olla pysyvä tai väliaikainen DHCP-protokolla soveltuu erityisen hyvin väliaikaisten IPosoitteiden jakeluun ja mobiiliin verkkotoimintaan 57
DHCP protokolla Dynamic Host Configuration Protocol auttaa organisaatioiden, yliopistojen ja kotien paikallisverkkoja dynaamisesti määrittämään isäntäkoneiden IP-osoitteet IP-osoitteiden automaattinen jakelu ( plug-and-play ) tiedonjakelu (oletusreitittimen ja DNS-palvelimen IPosoitteet) asiakas-palvelin protokolla asiakas (fyysisesti): tavallisesti verkkoon tuleva uusi kone, joka haluaa tietoa verkon konfiguroinnista sekä IP-osoitteen palvelin (fyysisesti): DHCP palvelin; usein jokaisella aliverkolla on oma DHCP palvelimensa; ellei näin ole, tarvitaan sellaisen reitittimen apua, joka tuntee lähimmän DHCP serverin osoitteen 58
Kuva 20 DHCP asiakas palvelin toteutus 59
DHCP protokolla (2) kun verkkoon liitetään uusi isäntäkone tapahtuu seuraavaa asiakas lähettää DHCP discover -viestin radiolähetyksenä lähdeosoitteena 0.0.0.0 ja kohdeosoitteena 255.255.255.255 kaikille verkon koneille DHCP-palvelin vastaa DHCP-offer viestillä, jossa tarjotaan IPosoitetta (ja muutakin informaatiota) asiakas lähettää DHCP request -viestin, jossa hyväksyy tarjouksen palvelin vastaa DHCP-ACK viestillä, jolla kuitataan IP-osoitteen (ja muun informaation) vastaanotto 60
Kuva 21 Asiakkaan ja palvelimen vuoropuhelu DHCP:ssä 61
NAT - protokolla Network Address Translation (RFC 2663, RFC 3022) suosittu menetelmä IP-osoitteiden muuttamiseksi IP-osoitteita liian vähän: eri intraneteissä mahdollista käyttää samoja IP-osoitteita, kun pidetään huoli siitä, että Internetissä osoitteet yksikäsiteisiä NAT- yhteensopiva reititin tunnistaa intranetin isännän osoitteen uuden porttinumeron avulla yksityisverkoille varatut osoiteavaruudet (RFC 1918) luokka A: 10.0.0.0 10.255.255.255 luokka B: 172.16.0.0 172.31.255.255 luokka C: 192.168.0.0 192.168.255.255 62
NAT protokolla (2) em. yksityisvekoille varatuilla osoitteilla merkitystä vain sisäverkossa NAT yhteensopiva reititin kätkee sisäverkon muulta Internetiltä; sillä on yksi IP osoite ja se edustaa kaikkia sisäverkon koneita ulkomaailmaa vastaan tavallisesti NAT reititin saa oman IP osoitteensa ISP:n DHCP palvelimelta; se pyörittää itse DHCP palvelinohjelmaa ja jakaa IP osoitteet sisäverkkoon NAT reititin käyttää NAT muuntotaulua, joka yhdistää sisä- ja ulkoverkon kommunikoivat osapuolet toisiinsa porttinumeroiden ja IP osoitteden avulla 63
Kuva 22 Verkko-osoitteen muuttaminen (NAT) 64
NAT protokolla (3) vastustajat porttinumerot prosesseja ei isäntäkoneita varten kuljetus- ja verkkokerroksen toiminnot sekaantuvat reitittimien ei tulisi käsitellä kuljetuskerroksen dataa isäntäkoneiden kommunikoitava suoraan keskenään (ei IPosoitteiden vaihtoa, ei uusia porttinumeroita) IP protoollan versiota 6 (IPv6) tulisi käyttää ratkaisemaan IP osoitteiden vähyysongelma NAT muodostaa ongelman esim. P2P-sovelluksissa; sisäverkossa oleva kone ei voi (ilman NAT reitittimen konfigurointi) toimia P2P serverinä ja hyväksyä itsenäisesti TCP yhteyksiä 65
4.3 Internet Control Message Prorocol (ICMP protokolla) Internet Control Message Protocol (RFC 792) käytetään, kun isäntäkoneet ja reitittimet välittävät verkkokerrosta koskevaa informaatiota toisilleen tyypillinen toiminto: virheilmoitus ('destination network unreachable') on osa verkkokerrosta (vaikka rakenteellisesti yläpuolella) ICMP-viesti välitetään IP-pakettien sisällä sisältää (1) tyyppikentän, (2) koodikentän ja (3) otsikon sekä kahdeksan ensimmäistä tavua siitä IP-paketista, joka viestin aiheutti http://www.iana.org/assignments/icmp-parameters 66
ICMP protokolla (2) ping ohjelmassa lähde lähettää echo request-viestin (tyyppi 8, koodi 0) kohteeseen, joka vastaa echo reply -viestillä (tyyppi 0, koodi 0) source quench viesti: ruuhkanhallinta verkkokerroksessa Traceroute -ohjelma implementoidaan ICMP-viesteillä lähde haluaa oppia tuntemaan lähteen ja kohteen välisten reittimien nimet ja IP-osoitteet lähteen Traceroute lähettää kohteeseen sarjan tavallisia IPpaketteja, joista kukin kantaa epätodennäköisellä kohdeporttinumerolla varustettua UDP-segmenttiä 1. datagrammin TTL on yksi, 2. datagrammin TTL on 2, jne... 67
ICMP protokolla (3) Traceroute -ohjelma implementoidaan (jatkuu... ) kullekin datagrammille käynnistetään ajastin kun n. datagrammi tulee n. reitittimeen, reititin havaitsee, että datagrammin elinaika TTL on pudonnut nollaan; reititin hylkää paketin ja lähettää TTL expired -viestin (tyyppi 11, koodi 0) lähteeseen; viestissä on reitittimen nimi ja IP-osoite; lähde saa lisäksi tietoonsa kiertoviiveen RTT omasta ajastimestaan jokin datagrammi saavuttaa kohdekoneen; koska se sisältää epätodennäköisellä kohdeportilla varustetun UDP-segmentin, kohde vastaa (todennäköisesti) destiantion port unreachable -viestillä (tyyppi 3, koodi 3); lähde voi lopettaa IP - pakettien lähettämisen Traceroute lähettää aina kolme samalla elinajalla varustettua pakettia 68
Kuva 23 Muutamia ICMP:n viestityyppejä 0 Echo Reply 1 Unassigned 2 Unassigned 3 Destination Unreachable 4 Source Quench 5 Redirect 6 Alternate Host Address 7 Unassigned 8 Echo 9 Router Advertisement 10 Router Solicitation 11 Time Exceeded 12 Parameter Problem 13 Timestamp 14 Timestamp Reply 15 Information Request 16 Information Reply 17 Address Mask Request 18 Address Mask Reply 19 Reserved (for Security) 20-29 Reserved (for Robustness Experiment) 30 Traceroute 31 Datagram Conversion Error 32 Mobile Host Redirect 33 IPv6 Where-Are-You 34 IPv6 I-Am-Here 35 Mobile Registration Request 36 Mobile Registration Reply 37 Domain Name Request 38 Domain Name Reply 39 SKIP 40 Photuris 41 ICMP messages utilized by experimental mobility protocols such as Seamoby 42-255 Reserved 69
ICMP viestityyppejä ja koodeja ICMP tyyppi koodi kuvaus 0 0 echo reply (ping-ohjelmalle) 3 0 destination network unreachable 3 1 destination host unreachable 3 2 destination protocol unreachable 3 3 destination port unreachable 3 6 destination network unknown 3 7 destination host unknown 4 0 source quench (congestion control) 8 0 echo request 9 0 router advertisment 10 0 router discovery 11 0 TTL expired 12 0 IP header bad 70
4.4 IPv6 protokolla IETF alkoi kehittää 1990-luvun alussa IPv4:n seuraajaa syy: 32 bittisen osoiteavaruuden loppuminen 1990-luvun puolivälissä arveltiin, että kaikki IP-osoitteet olisivat käytössä vuoden 2010 paikkeilla IPv4:n käytössä ilmenneitä puutteita (tietoturva) haluttiin paikata helmik:ssa 2011 viimeinen reservi IPv4-osoitt. käyttöön uuden teknolgian käyttöönotto vie aikaa; IPng (Next Generation) projekti alulle 1996 IPv6 spesifikaatio RFC 2460, yksi versionumero hypättiin yli 71
IPv6 paketin rakenne IPv6:n muutokset IPv4:ään verrattuna laajennettu osoiteavaruus: IPv6 kasvattaa osoitteen kokoa 32 bitistä 128 bittiin; anycast osoite, joka sallii paketin välittämisen mille tahansa tietyn isäntäkoneryhmän jäsenelle kevennetty 40 tavun otsikko: kenttiä poistettu tai tehty vapaavalintaisiksi; nopea datagrammiprosessointi; optioiden uudelleenkooditus tekee niiden käsittelyn joustavammaksi vuonimiöinti ja -prioriteetti paketit voidaan nimiöidä kuuluman tiettyyn vuohon, jolle lähettäjä vaatii erikoiskohtelun; esim. audio- ja videodataa voidaan kohdella vuona paketit (ja siten liikenne) voidaan priorisoida; tulevaisuudessa huomio palvelunlaatuun (QoS, Quality of Service); myös liikenneluokka kenttää voidaan käyttää etuoikeuden antamiseen tietyille datagrammeille (esim. vuossa) tai sovelluksille (esim. ICMP) 72
IPv6 paketin rakenne (2) IPv6-datagrammin kentät versionumero: (4 bittiä); nro 6 merk. IPv6:ta liikenneluokka (8 bittiä); mahdollistaa erityypisten datagrammien tai eri sovellusten datagrammien erottamisen toisistaan vuolipuke (20 bittiä); liikennevuot kyetään erottamaan toisistaan kuormanpituus (16 bittiä); hyötykuorman (paketin otsikkoa seuraavan osan) pituus tavuina seuraava otsikko (8 bittiä); protokolla, jolle paketin sisältö luovutetaan hyppyraja (8 bittiä); parametri, jota jokainen pakettia käsittelevä reititin vähentää yhdellä lähteen osoite (128 bittiä) kohteen osoite (128 bittiä) data; paketin otsikkoa suraava paketin osa (hyötykuorma) 73
Kuva 24 IPV6 pakettiformaatti 74
IPv6 otsikon puuttuvat kentät sirpalointi ja uudelleenkokoaminen ei sallita IPv6:ssa; ylisuuri paketti hylätään reitittimessä, virhelmoitus lähteeseen; sirpalointi ja uudelleenkokoaminen resursseja kuluttavaa, reitittimien toiminta nopeutuu tarkistussumma puuttuu IPv6:ssa; kuljetuskerroksessa ja yhteyskerroksessa käytetään tarkistussummia, tämän katsotaan riittävän; reitittimien toiminta nopeutuu optiot ei enää osa otsikkoa; optiokenttä osa laajennusotsikoista, joihin voidaan viitata IPv6 otsikosta; laajennusotsikko sijaitsee IPv6- otsikon ja kuljetuskerroksen protokollan otsikon välissä 75
Siirtyminen IPv4-protokollasta IPv6:een ongelma: IPv6-yhteensopivat järjestelmät pystyvät käsittelemään IPv4:n paketteja, mutta ei päinvastoin eri mahdollisuuksia toteuttaa siirtyminen lippupäivä: kaikki isäntäkoneet vaihtavat protokollaa samana päivänä; nykyaikana epätodennäköinen ellei täysin mahdoton kaksipinoinen lähestymistapa (RFC 4213) jokaisessa IPv6-solmussa täydellinen IPv4-implementointi IPv6/IPv4-solmu kykenevä kommunikoimaan kumpaa tahansa protokollaa käyttäen; solmussa molempien versioiden IP-osoitteet IPv6/IPv4-solmun kyettävä tunnistamaan onko toinen osapuoli IPv6-kommunikointiin kykenevä; DNS ratkaisee tämän ongelman joidenkin IPv6-kenttien (esim. vuolipuke) tiedot voivat hävitä, jolloin vastaanottajan IPv6-paketit erilaisia kuin lähettäjän 76
Kuva 25 Kahden protokollapinon ratkaisu IPv6:n otsikkotietoa voi hävitä C:n ja D:n välillä 77
IPv4:n vaihtaminen IPv6 protokollaksi (2) eri mahdollisuuksia (jatkuu) tunnelointi (RFC 4213) IPv6-paketit tunneloidaan IPv4-yhteyden yli tunnelin lähetyspäässä IPv6/IPv4-solmu sulkee koko IPv6- paketin (uuteen) IPv4-pakettiin; kohdeosoitteeksi tulee tunnelin vastaanottopään IPv6/IPv4-solmun IPv4-osoite uusi IPv4-paketti reititetään tunnelin IPv4-solmujen kautta vastaanottopään IPv6/IPv4-solmuun, joka saatuaan paketin purkaa sen alkuperäiseksi IPv6-paketiksi ja lähettää sen edelleen IPv6:n käyttöön hitaasti; NAT ja DHCP ratkaisseet osan ongelmasta; mobiilisuus lisännyt IPv6:n suosiota Euroopan 3GPP: IPv6 mobiilin multimedian standardiprotokolla kokemus osoittanut, että verkkokerroksessa uuden protokollan käyttöönotto (toisin kuin sovelluskerroksessa) hankalaa (IPv6, multicast- ja resurssinvarausprotokollat) 78
Kuva 28 Tunnelointi 79
5. Reititysalgoritmit 5.1 Linkkitila algoritmi (LS algoritmi) 5.2 Etäisyysvektorialgoritmi (DV algoritmi) 5.3 Hierarkinen reititys 80
Reititysalgoritmit Verkkokerroksen reititysprotokolla määrittää pakettien kulkeman polun lähdekoneesta kohdekoneeseen olipa verkon tyyppi sitten datagrammiverkko tai virtuaalipiiriverkko. Isäntäkoneen oletusreititin on se reititin, johon isäntäkone on yhdistetty (lähdereititin, kohdereititin). Reititysprotokollan ydin: reititysalgoritmi. Reititysalgoritmin tehtävä: kun on annettu joukko reitittimiä, niiden välisiä linkkejä ja linkkien kustannuksia, on etsittävä hyvä polku lähdereitittimestä kohdereitittimeen. 81
Kuva 29 Tietoverkon abstraksti malli solmu reititin väli linkki välin painokerroin linkin kustannus 82
Reititysalgoritmit (2) Reititysagoritmit voidaan jaotella globaaleihin (esim. linkkitila-algoritmit) täydellinen tieto verkon rakenteesta laskenta keskitetysti tai useassa paikassa hajautettuihin (esim. etäisyysvektorialgoritmi) yhdessäkään solmussa ei ole täydellellistä tietoa verkon rakenteesta; solmu aloittaa laskennan omia linkkejään koskevan tiedon perusteella ja vaihtaa tietoja naapurisolmujensa kanssa laskenta iteratiivisesti ja hajautetusti Toinen reititysalgoritmien jaottelutapa staattisiin (reittejä muutetaan hitaasti) ja dynaamisiin (reittejä muutetaan rivakasti verkkotopologian tai liikennekuorman mukaan) Kolmas jaottelutapa kuormitusherkkiin (load-sensitive, linkkikustannusta vaihdetaan vireästi ruuhkan mukaan ) ja kuormitustunteettomiin (loadinsensitive, ruuhka ei juurikaan vaikuta linkkikustannukseen) 83
5.1 Linkkitila algoritmi (LS algoritmi) Link State Routing Algorithm (LS algoritmi) verkkotopologia ja linkkikustannukset tiedossa kukin reititin toimittaa tiedot naapureistaan ja linkkiensä kustannuksista verkon kaikille reitittimille tiedonvälitys käytännössä: linkkitilapaketit broadcast-lähetyksenä sopivaa algoritmia käyttäen kaikilla reitittimillä identtinen ja täydellinen kuvaus verkosta Dijkstran ja Primin algoritmit ovat linkkitila-algoritmeja Dijkstran algoritmi laskee iteratiivisesti lyhimmän polun annetusta solmusta (solmu a) jokaiseen verkon solmuun; k. iteraation jälkeen lyhimmät polut tunnetaan k:hon kohdesolmuun; lasketut lyhimmät etäisyydet saadaan lyhin ensin -periaatteella; k. iteraatio antaa siten solmun ja etäisyyden, joka on k:nneksi lyhin lähtösolmusta 84
Dijkstran algoritmi merkintöjä c(u,v) solmujen u ja v välinen painokerroin, u ja v naapureita d u (v) LS-algoritmin laskema etäisyys solmusta u solmuun v d(u,v) solmujen u ja v välinen lyhin etäisyys N ne solmut, joihin algoritmi on jo laskenut lyhimmän etäisyyden; d(u,v) = d u (v) heti, kun v N p(v) solmun v välitön edeltäjä Dijkstran algoritmin laskemassa polussa Dijkstran algoritmia ajettaessa on tietyllä ajanhetkellä kolmenlaisia solmuja; sellaisia solmuja joihin lyhin etäisyys on jo määritetty, eli joukon N solmut jotka eivät ole joukossa N, mutta ovat jonkin joukon N solmun naapureita solmuja, jotka eivät ole minkään N:n solmun naapureita (eli solmuja v, joille d u (v) = ) 85
Dijkstran algoritmi 1. Aloitus: N = {a} ; 2. Jokaisella verkon solmulle v a asetetaan d a (v) = c(a,v), jos v on a:n naapuri; ja d a (v) =, jos v ei ole a:n naapuri 3. Toistetaan i. määritä sell. w, joka ei ole joukossa N, että d a (w) saa pienimmän arvonsa; ii. lisää w joukkoon N ja aseta d(a,w)= d a (w); iii. päivitä d a (v) aina kun v on sell. w:n naapuri, joka ei ole joukossa N : d a (v) = min {d a (v), d a (w) + c(w,v)} kunnes kaikki verkon solmut sisältyvät joukkoon N. 86
Dijkstran algoritmi (2) on kompleksisuudeltaan luokkaa O(n 2 ), missä n on verkon solmujen lukumäärä. kun lukua d(a,u) määritettäessä kirjataan ylös u:n välitön edeltäjä (solmu, jonka kautta u:hun saavutaan), saadaan määritettyä lyhin polku a:sta u:hun. linkkitilareititys voi johtaa patologiseen tilanteeseen, ns. heilahteluun eli oskillaatioon; oskillaatio voidaan estää olettamalla, että linkin kustannus ei riipu liikennemäärästä (mahdoton oletus) kaikki reitittimet eivät suorita linkkitila-algoritmia yhtäaikaisesti Esim. lasketaan Djikstran algoritmia käyttäen Kuva 29:n verkossa lyhin polku solmusta A kaikkiin muihin solmuihin. 87
Kuva 30 Oskillaatio kuormitusherkässä verkossa 88
5.2 Etäisyysvektorialgoritmi (DV algoritmi) Distance Vector Routing Algorithm (DV algoritmi) iteratiivinen: toiminta jatkuu siihen asti, että tietoa lakataan välittämästä asynkroninen: ei vaadi kaiken solmujen välisen toiminnan tahdittamista hajautettu: solmu saa vain naapureitaan koskevaa tietoa, suorittaa laskutoimenpiteet ja välittää tulokset takaisin naapureilleen käytetään merkintöjä (vrt. LS-algoritmi) c(u,v) solmujen u ja v välinen painokerroin, u ja v naapureita d u (v) dv-algoritmin laskema etäisyys solmusta u solmuun v d(u,v) solmujen u ja v välinen lyhin etäisyys (d(u,u)=0) 89
Etäisyysvektorialgoritmi (2) Bellman-Fordin yhtälö (x ja y solmuja, x y) d(x,y) = min {c(x,v) + d(v,y) v on x:n naapurisolmu} jokainen solmu x ylläpitää seuraavia tietoja painokerrointa c(x,v) jokaiselle naapurilleen v omaa etäisyysvektoria D x, joka koostuu luvuista d x (y), y V; edellä d x (x)=0 ja jos x y, on d x (y) x:n arvio omasta etäisyydestään solmuun y kunkin naapurinsa v etäisyysvektoria D v DV-algoritmissa jokainen solmu lähettää aika ajoin oman etäisyysvektorinsa kaikille naapureilleen kun solmu x saa naapurinsa v etäisyysvektorin D v, se päivittää oman vektorinsa D x seuraavasti d x (y) = min {c(x,v) + d v (y) v on x:n naapurisolmu } aina, kun y x 90
Etäisyysvektorialgoritmin rakenne Algoritmi suoritetaan jokaisessa verkon solmussa x. 1. Aloitus: kaikille v V asetetaan d x (x) = 0 d x (v) = c(x,v) jos v on x:n naapuri d x (v) = jos v ei ole x:n naapuri. 2. Lähetetään jokaiselle x:n naapurille etäisyysvektori D x. 3. Toistetaan i. odotetaan (kunnes tapahtuu c(x,v):n muutos jollekin x:n naapurille v tai saadaan päivitys D v joltakin naapurilta v) ; ii. asetetaan d x (y) = min {c(x,v) + d v (y) v on x:n naapurisolmu } aina, kun y V, y x iii. jos d x (y) muuttuu yhdelläkään y V, lähetetään päivitetty vektori D x kaikille naapureille. 91
Etäisyysvektorialgoritmin rakenne (2) 92
Etäisyysvektorialgoritmi: esimerkki 93
Linkkitila- versus etäisyysvektorialgoritmi Viestien lukumäärä LS-algoritmissa kukin tila tuntee verkon jokaisen linkin kustannuksen; tarvitaan O(nm) viestiä (n solmujen lkm, m välien lkm); kaikki päivitykset jokaiseen solmuun DV-algoritmissa viestien vaihto vain naapurisolmujen kesken Suppenemisnopeus LS-algoritmi O(nm) viestiä O(n 2 ) ajassa DV-algoritmi voi supeta hitaastikin Virheensieto LS-algoritmissa reitinmääritys hajautettua, reitittimen romahtaminen ei välttämättä vaikuta muihin solmuihin DV-algoritmissa reitittimen laskuvirhe välittyy muihin verkon solmuihin (epäsuorasti) 94
Muita reititysalgoritmeja tällä hetkellä käytössä lähes yksinomaan linkkitila- ja etäisyysvektorialgoritmeja muitakin vaihtoehtoja ollut esillä hot potato reititys: reititin lähettää paketin välittömästi eteenpäin mihin tahansa ruuhkattoman reitittimen yhteydessä olevaan linkkiin (vrt. hot potato hierarkisessa reititykessä) network flow reititys: reitti saadaan optimointiongelman ratkaisemisen tuloksena piirikytkentäinen reititys: yhteyden resurssit varattava etukäteen 95
5.3 Hierarkinen reititys edellä verkon reitittimet muodostivat homogeenisen joukon, jossa sama reititysalgoritmi käytännössä malli on liian yksinkertainen, koska se ei ole skaalautuva; salli organisaatioiden hallinnoida omia verkkojaan haluamallaan tavalla molemmat em. ongelmat poistuvat, kun verkon reitittimet ryhmitetään autonomisiksi järjestelmiksi (Autonomous Systems, AS) autonomisissa järjestelmissä ryhmä reititimiä on saman hallinnollisen kontrollin piirissä 96
Hierarkinen reititys (2) autonomisissa järjetelmissä jatkuu... yhden AS:n sisällä jokainen reititin käyttää samaa, ns. intraautonomista reititysprotokollaa (joka soveltaa joko ls- tai dvalgoritmia) eri AS:t yhdistetään toisiinsa yhdyskäytäväreitittimien avulla eri autonomisten systeemien välinen reititys tapahtuu interautonomista reititysprotokollaa käyttäen 97
Kuva 31 Keskenään yhteydessä olevat autonomiset järjestelmät 98
Hierarkinen reititys (3) Kuva 31:ssä autonomiset järjestelmät AS1, AS2 ja AS3 reitittimet 1a,1b,1c,1d ajavat AS1:n intra-autonomista reititysprotokollaa (AS2:n ja AS3:n reitittimet vastaavasti omaansa) yhdyskäytäväreitittimet: 1b, 1c, 2a ja 3a ajavat myös interautonomista reitiysprotokollaa oletetaan että reititin 2b saa paketin, jonka osoite on AS2:n ulkopuolella; tällöin 2b ohjaa paketin (AS2:n intra-autnomisen reititysprotokollan laskeman reititystaulunsa perusteella) joko reitittimelle 2a tai reitittimelle 2c aikanaan paketti saapuu yhdyskäytäväreitittimeen 2a, joka ohjaa paketin (interautonomisen reitityssprotokollan laskeman reitiystaulun perusteella) reitittimelle 1b 99
Lisätään uusi AS:n ulkopuolinen kohde reitittimen kytkentätauluun 100
6. Reititys Internetissä 6.1 Intra-AS reititys: RIP 6.2 Intra-AS reititys: OSPF 6.2 Inter-AS reititys: BGP 101
Reititys Internetissä Internetissä sovelletaan hierarkista reititystä aikaisemmin esitettyjen periaatteiden mukaisesti reititysalgoritmit: linkkitila- ja etäisyysvektorialgoritmeja reitittimet muodostavat autonomisia järjestelmiä (AS); kussakin AS:ssä useita aliverkkoja intra-autonomiset protokollat = sisäyhdyskäytäväprotokollat reitittävät AS:n sisällä interautonomiset protokollat = ulkoyhdyskäytäväprotokollat reitittävät usean AS:n välillä 102
6.1 Intra-AS reititys: RIP Routing Information Protocol (RIP); eräs vanhimmista reititysprotokollista (RFC 1058, RFC 2453) sisältyy v. 1982 Berkley Software Distribution (BSD) Unix-järjestelmään (joka tukee TCP/IP pinoa) puhdas etäisyysvektoriprotokolla polun kustannus = hyppyjen lukumäärällä (lähteestä kohdealiverkkoon); polun maksimikustannus 15 (hyppyä) päivitys 30 sek välein, kommunikointi RIP request ja RIP response viesteillä implementoidaan sovelluskerroksen prosessina, RIP käyttää UDP:tä ja porttia 520; segmentit välitetään tavanomaisina IP-paketteina 103
6.2 Intra-AS reititys: OSPF Open Shortest Path First (OSPF) sovelletaan ylätason ISP:ssä, RIP alatason ISP:ssä RIP:n seuraaja (RFC 2328), kehittyneitä piirteitä linkkitilaprotokolla, käyttää Dijkstran algoritmia linkkitilainformaatio radiolähetyksenä kaikille AS:n reitittimille aina muutoksen sattuessa ja kerran puolessa tunnissa vaikka muutoksia ei olisikaan kommunikointi OSPF-viesteillä, jotka kääritäään suoraan IP-paketiksi, OSPF:n protokollanro IP-paketissa on 89 testaa linkkien toiminnallisuutta naapureille lähetetyillä HELLO-viesteillä 104
OSPF:n kehittyneitä piirteitä Turvallisuus. OSPF-kommunikointi voidaan autentikoida yksinkertainen autentikointi; salasana selkokielisenä Message Authentication Code (MAC) -autentikointi; paketista ja salasanasta MD5-tiiviste Useita polkuja, joilla sama kustannus. Kohteeseen voidaan käyttää useita polkuja joilla on sama kustannus. Integroitu tuki unicast- (tavanomaiselle) ja multicastreititykselle. Multicast OSPF (MOSPF, RFC 1584) laajentaa OSPF-protokollaa lisäämällä uudentyyppisiä linkkitilailmoituksia broadcast-mekanismiin. Hierarkisen rakenteen käyttö yhden autonomisen järjestelmän (AS) sisällä. OSPF kykenee tarkastelemaan autonomista järjestelmää hierarkisena rakenteena. 105
OSPF: hierarkisen rakenteen tuki OSPF-protokollaa käyttävä AS voidaan jakaa alueisiin (area); kukin alue ajaa omaa OSPF-protokollaa alueen sisäreitittimet (internal routers) reitittävät alueen sisäistä liikennettä toimittavat radiolähetyksenä linkkitilatietoa toisilleen kussakin alueessa yksi tai useampi (alueen) reunareititin (area border router) vastaa reitityksestä muihin AS:n alueisiin täsmälleen yksi alue AS:ssä järjestetään tukialueeksi (backbone area), jonka päätehtävänä on reitittää liikennettä muiden alueiden välillä 106
6.3 Inter-AS reititys: BGP Border Gateway Protocol (RFC 1772, RFC 1773, RFC 4271) Internetin de facto standardi interautonomiseen reititykseen BGP:llä on etäisyysvektoriprotokollan piirteitä; se on hajautettu ja iteratiivinen BGP:tä voi luonnehtia polkuvektoriprotokollaksi, koska BGP-reitittimet vaihtavat yksityiskohtaista polkutietoa AS tunnistetaan globaalisti yksikäsitteisen ASN-numeron (Autonomous System Number, RFC 1930) avulla 107
Inter-AS reititys: BGP (2) BGP operaatiot polkutietoa sisältävien viestien vastaanotto naapurisolmuilta päivitys ja reitinvalinta polkutietoa sisältävien viestien lähettäminen naapurisolmuihin BGP tarjoaa AS:lle keinon saada tietoa naapurina olevien autonomisten järjestelmien aliverkkojen tavoitettavuudesta jakaa tietoa tavoitettavuudesta AS:n sisäisille reitittimille määrittää 'hyviä' polkuja aliverkkojen tavoitettavuutta koskevan tiedon ja AS:n (toiminta)politiikan nojalla BGP sallii aliverkon mainostaa olemassaoloaan muulle Internetille 108
Inter-AS reititys: BGP (3) BGP varmistaa, että muut AS:t tietävät aliverkon olemassaolosta ja sen kuinka sinne päästään BGP ylläpitää puolipysyviä TCP-yhteyksiä (BGP-istuntoja) autonomisten järjestelmien välillä (ulkoinen BGP-istunto, ebgp) saman autonomisen järjestelmän sisällä (sisäinen BGP-istunto, ibgp) BGP auttaa AS:ää tietämään mitkä määränpäät ovat saavutettavissa naapurissa sijaitsevien AS:sien kautta määränpäät eivät ole isäntäkoneita, vaan CIDRosoitteiden (Classless Interdomain Routing) alkuosia kukin CIDR-osoitteen alkuosa edustaa yhtä tai useampaa aliverkkoa 109
Inter-AS reititys: BGP (4) BGP viestityypit OPEN: reititin aloittaa BGP-toiminnan jonkun naapurin kanssa UPDATE: reititin viestittää polkutietoa KEEPALIVE: reititin toiminnassa, ei informaatiota lähetettävänä NOTIFICATION: on havaittu virhe tai lähettäjä lopettaa BGPistunnon 110
7. Broadcast ja multicast reititys 7.1 Broadcast reititysalgoritmit 7.2 Multicast reititysalgoritmit 111
Broadcast- ja multicast reititys protokollat, jotka sallivat vain yhden lähettäjän ja yhden vastaanottajan ovat ns. unicast protokollia monissa sovelluksissa yksi tai useampi lähettäjä ja ryhmä vastaanottajia (multicast) tai vastaanottajina kaikki solmut verkossa (broadcast) multicast toiminto: yhdeltä lähettäjältä kulkee paketteja usealle vastaanotttajalle yhdellä lähetysoperaatiolla multicast toiminnossa reititysprotokollat keskeisessä roolissa Internet-multicast ei ole yhteydetön palvelu: reitittimet ylläpitävät yhteyden tilatietoja 112
7.1 Broadcast - reititysalgoritmit yhdeltä kaikille unicast (N way unicast) solmu lähettää jokaiseen kohteeseen kopion paketista tehoton; useita kopioita samasta paketista kulkee samassa linkissä vastaanottajien IP-osoitteet oltava tiedossa reititysalgoritmeissa broadcast-lähetystä käytetään päivittämään unicast-reittien tietoa; on ristiriitaista luottaa unicast-reititykseen broadcast-toiminnon saavuttamiseksi kontrolloimaton tulva (uncontrolled flood) solmu lähettää kopion paketista jokaiselle naapurilleen naapuri monistaa paketin ja lähettää sen edelleen kaikille naapureilleen (lukuunottamatta solmua, jolta se sai paketin) jos verkossa syklejä, paketit voivat jäädä niihin kiertämään syntyy 'broadcast - myrsky ; pakettien loputon kopiointi voi johtaa verkon romahtamiseen 113
Kuva 33 Monistaminen lähteessä ja verkossa 114
Broadcast reititysalgoritmit (2) kontrolloitu tulva paketin monistamista kontrolloidaan pakettiin lähteen osoite ja broadcast järjestysnumero solmut ylläpitävät tietoa broadcast paketin lähdeosoitteista ja järjestysnumeroista kertaalleen vastaanotettu, monistettu ja eteenpäinohjattu paketti hylätään toinen tapa takapolkuohjaus (reverse path forwarding) paketti sisältää lähettäjän osoitteen, reititin monistaa paketin vain jos se saapui rajapinnasta, johon lähettäjälle menevät paketit ohjataan 115
Kuva 34 Takaportttiohjaus 116
Broadcast reititysalgoritmit (3) virittävä puu -broadcast (spanning tree broadcast) jokaisen solmun tulisi ideaalitapauskessa saada vain yksi broadcast paketti virittävään puuhun perustuva broadcast yhtenäisen verkon (minimaalinen) virittävä puu: yhtenäinen syklitön aliverkko (jonka välien painoarvojen summa on pienin mahdollinen) minimaalinen virittävä puu voidaan luoda esim. ns. keskukseen perustuvaa menetelmää käyttäen määritellään puun keskussolmu (eli ydin) muut solmut lähettävät unicast-paketteja (ns. puuhunliittymispaketteja) ytimeen paketit ohjataan keskussolmuun unicast-reititystä käyttäen kun paketti saapuu solmuun, joka kuuluu jo virittävään puuhun, paketin kulkema polku lisätään virittävän puun aihioon 117
Kuva 35 Broadcast pitkin virittävää puuta 118
Kuva 36 Virittävän puun luonti: keskukseen perustuva menetelmä 119
7.2 Multicast - reititysalgoritmit multicast palvelu: multicast paketti toimitetaan verkon solmujen jollekin osajoukolle useat sovellukset tarvitsevat multicast palvelua massamainen ja täydentävä datansiirto (esim. ohjelmistopäivitys) virtaava jatkuva media (reaaliaikaiset audio- ja videolähetykset) jaetut sovellukset (videokonferenssi usean osallistujan kesken) datan syöttö (osaketarjoukset) välimuistipäivitykset interaktiiviset pelit 120
Multicast reititysalgoritmit (2) Multicast-kommunikoinnin ongelmat kuinka tunnistaa vastaanottajat kuinka osoitteistaa datagrammit, jotka vastaanottajille lähetetään Jokainen datagrammi ei voi kantaa kaikkien vastaanottajien osoitteita, koska vastaanottajia voi olla paljon lähettäjä ei välttämättä tunne kaikkia vastaanottajia eikä heidän osoitteitaan Tämän vuoksi Internetissä yhtä tunnistinta (D-luokan IP-osoitetta) käytetään kokonaiselle (multicast-) ryhmälle vastaanottajia kopio datagrammista, joka sisältää ryhmän tunnisteen toimitetaan jokaiselle ryhmän jäsenelle 121
Multicast reititysalgoritmit (3) Ongelma: jokaisella ryhmän jäsenellä muista ja multicastosoitteesta riippumaton IP-osoite. Kysymyksiä kuinka ryhmä perustetaan ja lopetetaan? miten ryhmän osoite valitaan? miten ryhmään lisätään jäseniä, onko jäsenyys rajoitettua? tuntevatko ryhmän jäsenet toistensa IP-osoitteet? miten verkko toimii välittäessään multicast-datagrammin ryhmän jäsenille? 122
Kuva 37 Multicast ryhmä 123
IGMP vastaa aikaisemmin esitettyihin multicast-toimintoja koskeviin kysymyksiin Internet Group Management Protocol, versio 2, RFC 2236 operoi isäntäkoneen ja sen oletusreitittimen välillä hoitaa isäntäkoneen sovellusten jäsenyyttä multicastryhmissä Internetin multicast-reitittimet siirtävät multicast-paketit (verkkokerroksen) multicast-reititysalgoritmia käyttäen lähettäjältä ryhmän jäsenille multicast-reititysalgoritmeja: PIM, DVMRP, MOSPF 124
IGMP (2) toimii paikallisesti (isäntäkone oletusreititin) ei toimi multicast-ryhmän jäsenten välillä (sell. protokollaa ei ole olemassa): jäsenet eivät periaatteessa tunne toisiaan tarvitaan protokolla koordinoimaan multicast-paketteja välittävien reitittimien toimintaa verkkokerroksen multicast-toiminto koostuu kahdesta toisiaan täydentävästä osasta IGMP:stä (joka operoi paikallisesti) multicast - reititysprotokollasta 125
Kuva 38 Kaksi komponenttia: IGMP ja multicast reititysprotokollat 126
IGMP (3) IGMP:ssä neljäntyyppisiä viestejä jäsenyystiedustelu (reititin lähettää) mihin ryhmiin (rajapinnassa) kuuluu jäseniä jäsenyystiedustelu: spesifinen (reititin lähettää) kuuluuko (rajapinnassa) tiettyyn ryhmään jäseniä jos isäntäkone ei vastaa, reititin tekee johtopäätöksen ryhmään kuulumattomuudesta ('soft state') jäsenyysraportti (isäntäkone lähettää) isäntäkone vastaa jäsenyystiedusteluun tai ilmoittaa haluavansa kuulua johonkin ryhmään ryhmästä lähteminen (isäntäkone lähettää) IGMP-viestit kuljetetaan IP-paketeissa (protokollanro 2) kuka tahansa voi liittyä multicast-ryhmään 127
IGMP (4) lähettäjän ei tarvitse huolehtia muiden ryhmään liittymisestä, hän ei voi myöskään kontrolloida sitä kuka ryhmään liittyy sitä kuka lähettää datagrammeja multicast-ryhmälle ei liioin voi kontrolloida: paketit voivat sekoittua vastaanottaja ei IGMP:n varhaiversioissa voinut spesifioia lähettäjiä, joilta haluaa (tai ei halua) paketteja; tilanne korjautui IGMPv3:ssa pakettien suodatus, järjestys ja yksityisyys voidaaan taata sovelluskerroksen toimenpitein IGMP heijastaa Internetin filosofiaa: yksinkertainen verkkokerros, lisätoiminnot (ryhmän jäsenyys) verkon reunalla ylempien kerrosten protokollilta 128
Kuva 39 IGMP:n viestiformaatti 129