ELEC-C7241 Tietokoneverkot Verkkokerros Pasi Sarolahti (useat kalvot: Sanna Suoranta) 21.2.2017
Kurssin loppuvaiheet Kolme luentoa (ja harjoituskierrosta) jäljellä 21.2. Verkkokerros Ensi viikolla tauko 7.3. Linkkikerros 14.3. Tietoturva ja Multimedia Projektin deadline pe 7.4. 2. Välikoe ti 4.4. Tentti 8.5. 5.3.2017 2
Välipalaute presemo.aalto.fi/verkot17 5.3.2017 3
Projekti Ryhmät ilmoitettu MyCoursesissa Ota yhteyttä kaveriin ja sovi alkumetreistä: Koska tavataan? Työnjako Ohjelmointikielet Jne Projektiin voi kysyä apua esimerkiksi harjoituksissa 5.3.2017 4
Verkkokerros Tehtävät: pakettien välitys ja reititys IPv4 ja IPv6 osoitejärjestelmä Rakenne Kuinka osoite saadaan? Pakettien välitys Osoitemuunnokset (NAT) Reititys 5.3.2017 5
d Verkko 1 Verkko 2 Päätelaite 1 Päätelaite 2 Sovelluskerros Kuljetuskerros Verkkokerros Linkkikerros Fyysinen kerros Reititin 1 Verkkokerros Linkkikerros Fyysinen kerros Reititin 1 Verkkokerros Linkkikerros Fyysinen kerros Sovelluskerros Kuljetuskerros Verkkokerros Linkkikerros Fyysinen kerros o w h a t I m e a n
IP - protokolla 5.3.2017 7
IPv4-osoitteen kaksi osaa 10000010 11100000 11011111 11000100 Alkuosa kertoo verkon (network prefix) ja loppuosa identifioi verkkorajapinnan (host id) Käytetään CIDR-tekniikkaa (Classless Interdomain Routing): kerrotaan verkko-osoite (ensimmäinen osoite) ja merkitsevien bittien määrä 130.233.0.0/16 on Aallon verkko-osoite (vanha B-luokan verkko) Huom: osoitetta käsitellään binäärinä, vaikka se esitetään ihmiselle helpommin ymmärrettävässä desimaalimuodossa
Aliverkot ja verkkomaski Kone: Kone: 130.233.224.196/22 10000010 11100000 11011111 11000100 Verkko: Verkkomaski 10000010 11100000 11011100 00000000 11111111 11111111 11111100 00000000 Verkko voidaan jakaa vielä aliverkkoihin lainaamalla kone-osan alusta bittejä aliverkkoa varten, esim. Aliverkon osoite: 130.233.224.0/22; maski 255.255.252.0 Aliverkkoon kuuluvat osoitteet: 130.233.224.0-130.233.227.255 Alin osoite on verkon osoite 130.233.224.0 (koneosa nollia) Ylin yleislähetysosoite: 130.233.227.255 (koneosa ykkösiä), Loput sopivat isäntäkoneille, eli koneita voi olla yht 2 (32-22) -2=1022
Esimerkki: IP-verkko ja osoitteet 223.1.1.0/24 223.1.1.2 223.1.2.0/ 223.1.2.0/28 24 223.1.1.1 223.1.2.1 223.1.2.9 223.1.1.3 223.1.3.1 223.1.2.2 223.1.1.4 223.1.3.27 223.1.3.2 223.1.3.0/ 223.1.3.0/27 24 23.2.2016
Yksityiskäyttöön varatut osoitteet Vain paikalliseen käyttöön (IPv4) 10.0.0.0/8 (alunperin Arpanetille varattu osoiteavaruus) 192.168.0.0/16 172.16.0.0/12 Linkki- ja toimipaikkakohtaiset osoitteet (IPv6) Alkaa biteillä 1111111010 (linkkikohtainen), ei välitetä ulos fyysisestä verkosta 1111111011 + aliverkko (toimipaikkakohtainen), ei välitetä ulos organisaation verkosta Runkoverkko kieltäytyy reitittämästä näitä Voi käyttää vapaasti lähiverkossa, mutta Ei voi viestiä (suoraan) Internet-verkkoon apuna käytetään NATtekniikkaa
Mistä saa verkolleen osoitteen? Organisaation sisällä vastuulliselta taholta oma aliverkko Internet-palveluntarjoajalta (ISP) voi ostaa oman verkon ISP saa osoitteitaan oman alueensa Internet-rekisteriltä (Regional Internet Registry, RIR) näitä on viisi Euroopassa Réseaux IP Européens Network Coordination Centre (RIPE NCC) Alueen rekisteri saa osoitteet ICANNilta (Internet Corporation for Assigned Names and Numbers) Viimeinenkin IPv4-verkko on jaettu 2011! Eli IPv4-osoitteet ovat käytännössä nyt loppuneet IPv6-osoitteita on joka hiekanjyvälle, joten niitä riittää hyvin Miten IPv4 voi vielä olla käytössä? Miten osoitteita yhä riittää?
DHCP esimerkki Palvelin A (223.1.2.6) Asiakas Läh: 0.0.0.0:68 Vast: 255.255.255.255:67 yiaddr: 0.0.0.0 ID: 654 Palvelin B (223.1.2.5) Läh: 223.1.2.5:67 Vast: 255.255.255.255:68 yiaddr: 223.1.2.4 ID: 654 Server ID: 223.1.2.5 Läh: 0.0.0.0:68 Vast: 255.255.255.255:67 yiaddr: 223.1.2.4 ID: 654 Server ID: 223.1.2.5 23.2.2016
Network/Port Address Translation Reitittimellä yksi (tai muutama) julkisen verkon osoite Sisäverkossa käytetään yksityisosoitteita Yksityisosoitteet vaihdetaan reitittimessä julkisiin ja päinvastoin Reititin pitää kirjaa käytetyistä osoite (ja portti) pareista Huom! Reitittimessä on verkkoyhteyden tila Päätelaite ei (välttämättä) huomaa, että yhteyden välissä on NAT-laite (eikä sitä, että sillä on käytössä vain yksityisosoite) Huonot puolet NAT rikkoo päästä-päähän-yhteyden Internetistä ei voi aloittaa yhteyttä NATin takana olevalle sisäverkon koneelle (jollei käytetä kiinteää NAT-muunnosta) Kaksi NATin takana olevaa päätelaitetta ei pysty viestimään, vaan avuksi tarvitaan STUN-, ICE-, tai TURN-välityspalvelimia 23.2.2016
NAT esimerkki 1 2 4 3 10.0.0.2 10.0.0.1 194.197.18.3 130.233.9.10 lähdeosoite lähdeportti kohdeosoite kohdeportti 1 10.0.0.2 8890 130.233.9.10 80 2 194.197.18.3 3498 130.233.9.10 80 3 130.233.9.10 80 194.197.18.3 3498 4 130.233.9.10 80 10.0.0.2 8890 23.2.2016
IPv6 osoitteen metsästys Keksi ryhmälle nimi Ota käyttöön dig Esim: https://www.digwebinterface.com Tee AAAA nimikyselyitä mieleen tuleville nimille Kun löydät positiivisen vastauksen, eli IPv6-osoitteen Kirjoita Presemoon: DNS-nimi, IPv6 osoite, ryhmän nimi Samaa DNS-nimeä ei saa ehdottaa uudestaan presemo.aalto.fi/verkot17 5.3.2017 16
Lohkominen IPv4:ssä (fragmentation) MTU=1500 Ethernet, MTU=1500 MTU= 1500 MTU= 576 d o w h a t I m e a n Reitillä olevien eri linkkikerroksen tekniikoita käyttävien verkkojen kehysten koko vaihtelee MTU Maximum Transmission Unit; taattu minimi 68 oktettia IPv4 ja 1280 IPv6 (mutta näiden käyttäminen olisi erittäin epätehokasta) Reititin voi joutua lohkomaan paketin useampaan fragmenttiin ID jokaisessa sama, fragment offset kertoo palasen sijainnin alkupeäisessä paketissa ja liput kertovat, onko palasia lisää Vastaanottaja kokoaa fragmentit yhdeksi IP-paketiksi
Polun MTU:n selvittäminen Lohkomista pyritään välttämään selvittämällä koko polun suurimman sallitun tietosähkeen koko ja lähettäjä tekee alunperin sen kokoisia paketteja Näin toimii esim IPv6, jossa matkan varrella ei lohkota mitään Path MTU Discovery: Lähetetään suuri paketti, jossa do not fragment lippu päällä Jos paketti oli liian suuri, vastaanotetaan virheviesti reitittimeltä Kokeillaan pienemmällä paketilla uudestaan; virheviestissä mukana sen verkon MTU, johon matka tyssäsi) 23.2.2016
Internetin rakenne Internet-yhteydentarjoajat (ISP) jaoteltu kolmeen luokkaan tier 1: globaali Vähän yli kymmenen kappaletta Internetin selkäranka eli runkoverkko Sallivat toistensa liikenteen maksutta verkkonsa kautta tier 2: alueellinen Myös peering, lisäksi myös ostaa yhteyttä muilta (transit palvelu) tier 3: lokaali Yksinomaan ostaa yhteyttä muilta (ylemmän kategorian) ISP:lta Toisenlainen jaottelu: Reunaverkot (stub), yksi yhteys muualle, monikotiset (multihomed) reunaverkot, useampi yhteys muualle, mutta kauttakulkua ei tarjota muillle Transit-verkot tarjoavat läpikulkua toisiin verkkoihin 19
Internetin rakenne 20
Reitin valinta BGP:ssä Edelleenlähetyksessä verkkoprefixien perusteella 1. Paikallinen priorisointi verkonhaltijan asetusten mukaan 2. Lyhin AS-polku 3. Jos yhtä pitkät polut, lähin reunareititin AS:n sisällä Reititystaulun päivityksessä: Sopimuspohjaista on, minkä toisen liikennettä välitetään ja millä ehdoilla (engl. Policy) Reunaverkot (stub) eivät mainosta reittejä kuin omaan verkkoon vaikka olisivatkin monikotisia läpikulkuliikenteestä olisi kuluja 21
AS:n sisäinen reititys Staattinen reititys: ylläpitäjä lisää reitin käsin reititystauluun Oletusreitti lisätään käsin esim. työasemiin, tai DHCP:n avulla Dynaaminen reititys reititysprotokollien avulla Tieto paikallisista verkoista eli suoraan reitittimeen kytketyistä lähiverkoista lisätään käsin reitittimen reititystauluun Reitittimet mainostavat toisilleen omia verkkoja reititysprotokollan avulla eli muutokset huomioidaan automaattisesti Reittimainostuksista rakennetaan reititystaulu, jonka perusteella sitten verkossa kulkeville paketeille löydetään paras reitti (edelleenlähetyksessä) IGP-reititykseen useita protokollia tarjolla RIP, OSPF, EIGRP (Ciscon oma), IS-IS, 22
Reititys ja IP-osoitteet Kun paketti saapuu reitittimelle, sen osoitetta verrataan reititystauluun tallennettuihin verkkojen osoitteisiin (network prefix) Jotta reititystaulut eivät paisu jättimäisiksi, saman verkkorajapinnan reittejä voidaan yhdistellä (route aggregation) Destination 30.1.0.0/24 30.1.2.0/24 30.2.1.0/24 30.3.1.0/24 20.2.0.0/16 20.1.1.0/28 Next Hop R3 direct direct R3 R2 R2 Destination 30.1.0.0/24 30.1.2.0/24 30.2.1.0/24 30.3.1.0/24 20.0.0.0/8 Next Hop R3 direct direct R3 R2 23
Pisin soveltuva sääntö valitaan Destination Next Hop 11001000 200.223.0.0/16 11011111 R2 11001000 200.16.0.0/13 00010 R4 11001000 200.22.0.0/15 0001011 R1 Kohdeosoite on: 200.23.146.51 11001000 00010111 10010010 00110011 1.3.2016 24
Routing Information Protocol (RIP) Etäisyysvektorialgoritmi Yksinkertainen, sopii pieniin AS-verkkoihin Etäisyyden metriikkana käytetään hyppyjen lukumäärää, max 15 hyppyä Ei kokonaiskuvaa verkosta, reititystaulu lasketaan naapureiden kertomien etäisyysvektorien perusteella iteratiivisesti RIPin toiminta (yksinkertaistettuna) Naapureiden (=RIP-reitittimet) selvittäminen monilähetyksellä 244.0.0.9 (tai yleislähetyksenä) UDP-porttiin 520 Reitittimet vaihtavat reititystaulunsa naapurien kanssa joka 30 sekunti RIP Advertisement -viesteillä Lasketaan parhaat reitit perustuen naapurien ilmoituksiin Reititystaulussa: <kohde, seuraava hyppy, etäisyys> RIPv1 RFC 1058 ja RIPv2 RFC 2453 25
Etäisyysvektorireititysalgortmi 0. Merkitse etäisyydet kaikille noodin suorille naapureille, muille 1. Lähetä naapureille kaikki tiedot reititystaulun sisällöstä <kohde, seuraava hyppy, etäisyys>-vektoreina 2. Laske naapureilta saatujen etäisyysvektorien perusteella, muuttuiko mikään jos löytyi uusi lyhyempi reitti, päivitä se reititystauluun reitti voi olla parempi kuin aiemmin tiedetty tai uuteen, ennen tuntemattomaan verkon noodiin 3. jatka kohdasta 1 Jossain vaiheessa mikään ei vaan enää muutu, jollei jokin yhteyksistä katkea tai tule lisää, joten algoritmi lopettaa itse (reititysprotokolla toki jatkaa kokoajan tietojen vaihtoa naapureiden kanssa) Algoritmi on asynkroninen, iteratiivinen, itselopettava ja hajautettu 26
Etäisyysvektori - Esimerkki Etäisyys Suoraan kytketty A B C D 2 1 1 2 1 E 5 3 Alkutila: suorat naapurit B:n taulu E:n taulu A 1 A 2 C 1 B 1 E 1 C 5 F 3 1 F 1 1. kierroksen jälkeen: B:n taulu A:n taulu rakentuu E:n taulu A 1 A 2 C 1 B 1 D 3, C C 2, B E 1 D 4, F F 2, C F 3 B C D E F 0. kierros 1, - 2, - 1. kierros 1, - 2, B 2, - 5, E 2. kierros 1, - 2, B 4, B 2, - 3, B Seuraava hyppy: B Hyvät uutiset eli uudet reitit leviävät nopeasti Joka kierrokselle saadaan lisää tietoa naapureilta 27
Etäisyysvektori - Ongelmat 1 1 2 A B C D Reitin heikkenemistieto leviää hitaasti B kuvittelee, että C:llä on vaihtoehtoinen reitti A:han Äärettömyyteen laskemisen ongelma (count- toinfinity problem Ratkaisut: Jaettu horisontti (split horizon): reittiä ei mainosteta takaisinpäin sinne, mistä tieto saatiin Lähteen myrkytys (poisoned reverse): ilmoitetaan metriikaksi ääretön sille kohteelle, josta reitti saatiin Tietojen nopea välitys (triggered updates): välitetään muuttunut tieto heti naapureille B C D 1 2 4 2 4 3 2 4 3 4 4 5 4 6 28
Open Shortest Path First (OSFP) Linkkitila-algoritmi Sopii laajoihin (esim. ISP) verkkoihin Verkon voi jakaa hierarkisesti alueisiin (area), joista huolehtii jokin edustajareititin (designated router) Jokainen reititin rakentaa itselleen kuvan koko AS:n verkon topologiasta Viestit lähetetään suoraan IP:n päällä, OSPF:n protokollanumero on 89, monilähetysosoitteeseen 244.0.0.5 OSPF:n toiminta (yksinkertaistettuna) kolme osaa Hello-protokolla naapureiden tavoitettavuuden selvittämiseksi säännöllisin väliajoin Exchange-protokolla yhteyden aluksi naapurien reititystaulujen saamiseksi, käytetään oman reititystaulun laskemiseen Flooding-protokolla tilatietojen päivittämiseen säännöllisin väliajoin OSPFv2, RFC 2328 29
Dijkstran lyhimmän polun algoritmi 0. Polku itseen = 0 ja muihin, merkitse noodit vierailemattomiksi, aloita tarkatelu nykynoodista (A itse) 1. Laske etäisyys nykynoodista naapureihin, jos lyhyempi kuin tiedossa (huom: laske koko polku), vaihda merkitse noodi vierailluksi 2. Jos jäljellä on vierailemattomia noodeja, siirry niistä lähimpään ja jatka kohdasta 1 jos kaikissa noodeissa on jo vierailtu, lopeta A B C D 2 1 1 2 1 E kierros nykynoodi 5 3 1 F 1 B C D E F 1. A 1 2 2 B 1 2 2 3. E 1 2 2 5 4. C 1 2 4 2 3 5. F 1 2 4 2 3 6. D 1 2 4 2 3 30