Otetaampa tällä kertaa vähän syventävää katsausta internetin toimintaan. Käytännössä jokainen internetsivu on jonkin IP-osoitteen takana toiminnassa ja jokaisella laitteella on oma IP-osoitteensa millä se näkyy internettiin. IP-osoite on vähän niinkuin puhelinnumero kyseiselle laitteelle (internetsivutkin on aina jonkin laitteen muistissa ja tieto haetaan sen sisältä). Mutta käytännön syistä IP-osoitteen sijaan internetsivuja kutsutaan tietokoneen internetselaimeen näkyville tekstimuotoisella osoitteella. Mitä taikuuksia siis tapahtuu?

IP-osoite

Nykyisin vielä pääsääntöisesti liikenne tapahtuu IPv4 standardin mukaisissa osoitteissa. IP-osoite on muotoa X.X.X.X jossa kukin X voi olla jokin numero 0-255 välillä, eli esimerkiksi http://vuodatus.net/ sivusto löytyy tällä hetkellä tietokoneelta jonka osoite on 80.69.174.95 (tämä voi muuttua jo artikkelin julkaisuun mennessä).

IP-osoitteita on IPv4 mukaisessa järjestelmässä yhteensä 4 294 967 296 kappaletta, eli vähän päälle neljä miljardia. Tuo kuulostaa suurelta lukemalta itsessään, mutta jos miettii että maailmassa on 7,6 miljardia ihmistä, joille kaikille halutaan saada pääsy internettiin, ei nuo IP-osoitteet riitä. Tämän lisäksi yritykset ja palvelut tarvitsevat monesti useamman eri IP:n eri palveluille, eli IPv4 on nykypäivän internettiin auttamatta alimitoitettu.

Tätä ratkaisemaan on kehitetty IPv6, jota ollaan ottamassa pikkuhiljaa enenevissä määrin käyttöön. IPv6 määritteellä osoitteita on tarjolla 340 sekstiljoonaa, eli yli 340 000 000 000 000 000 000 000 000 000 000 000 000 kappaletta. Tämä tulnee riittämään vähän paremmin tulevaisuudessakin :)

Domain eli verkkotunnus

Ilman verkkotunnuksia, internetissä navigointi menisi aikalailla näin:

"Hmm.... Mikähän on Facebookin IP-osoite? En tiedä, koitampa Googlettaa tämän tiedon! Haluasin tutustua tähän palveluun josta kaikki puhuvat"

Jotta Google aukeaa, tarvitsee selaimen osoiteriville kirjoittaa 216.58.211.131 IP-osoite, joka on oltava joko ulkomuistissa tai sitten erillisessä osoitekirjassa tallessa. Tämän jälkeen kun olet Googlesta löytänyt tuon kaivatun IP:n jota et vielä tiennyt eikä sitä IP-osoitekirjassasikaan oltu mainittu, kirjoitat selaimeen osoiteriville 185.60.216.35 ja näin olet Facebookissa katsomassa kavereidesi kuulumisia.

Koska tämä ei kovin käytännöllistä ole, eikä noiden numerosarjojen muistaminen ole mitenkään helppoa, on otettu käyttöön verkkotunnukset. Verkkotunnusten avulla edellinen skenaario tapahtuu näin:

"Hmm... Mikähän oli Facebookin verkkotunnusosoite? En muista, koitampa Googlettaa tämän tiedon! Haluaisin tutustua tähän palveluun josta kaikki puhuvat"

Tämän jälkeen osoiteriville kirjoitetaan google.fi ja Google aukeaa, tuolta tehdään haku joka palauttaa tiedoksi facebook.com osoitteen. Tämän jälkeen voit kirjoittaa tuon osoitteen osoiteriville ja loppu onkin historiaa.

Knoppitietona niille, joita sattuu kiinnostamaan: ICS:n mukaan tammikuussa 2018 DNS järjestelmässä oli 1 003 604 363 eri domain nimeä.

DNS eli internetin puhelinluettelo

Koska IP-osoite ja verkkotunnuspareja ei ole kovin järkevää jokaiselle koneelle erikseen ladata ja tallentaa, on kehitetty DNS järjestelmä. DNS on lyhenne sanoista Domain Name System eli verkkotunnusten nimipalvelu.

Kun kirjoitat osoitekenttään vaikkapa tuon http://google.fi/ osoitteen, tarvitsee tietokoneesi selvittää, mistäpäin maailmaa tällainen sivusto löytyy. Selain lähettää siis nimenselvityspyynnön eteenpäin ja jää odottamaan IP:tä johon yhdistää pyyntö. Nimenselvennyspyyntö menee rekursiiviselle resolverille (recursive resolver) joka lähtee selvittämään asiaa. Resolveri esittää ensimmäisenä pyynnön juurinimipalvelimelle (Root name server), jonka tehtävä on ohjata pyyntö päätteen mukaiseen suuntaan. Tässä tapauksessa juurinimipalvelin kertoo resolverille IP-osoitteen josta voi kysellä .fi pääteisille osoitteille tietoja.

Tämän jälkeen resolveri ottaa yhteyttä annettuun IP-osoitteeseen jossa vastaa korkeamman tason (Top Level Domain eli TLD) DNS palvelin ja esittää kysymykseen tarkennuksen kohdeosoitteen osalta. TLD tarkistaa millä palvelimella löytyy haetun osoitteen IP ja antaa tämän palvelimen IP:n resolverille.

Seuraavaksi resolveri yhdistää annetulle palvelimen IP:lle ja pyytää käyttäjän pyytämän sivun (http://google.fi/) osoitetta. Palvelin kertoo tämän ja resolveri palaa kertomaan tietokoneellesi että kohde löytyy 216.58.211.131 osoitteesta. Nyt tietokoneesi voi yhdistää tuonne palvelimelle ja avata http://google.fi/ sivun.

Juurinimipalvelimet

Näitä on yhteensä 13 kappaletta, pääasiassa ne sijaitsevat USA:n ulkopuolella vaikka vain kolme on jonkin ei USA:ssa toimivan yrityksen hallinnoimia. Jokaisella on oma kirjain A-M ja näistä C, F, I, J ja K toimivat jokulähetys (anycast) tekniikalla (palataan näihin lähetyksiin myöhemmin, käytännössä tuo tarkoittaa että pyyntöä ei lähetetä kaikille palvelimille vaan vain jollekin näistä, kuka nyt palvelinryhmästä sattuukaan nopeiten ottamaan pyynnöstä kopin). Juurinimipalvelimia käytetään lähinnä sattumanvaraisella logiikalla, eli pyyntö ei mene tietyltä operaattoriyhteydeltä aina tietylle palvelimelle.

Suomessa sijaitsee I, J ja K palvelinten yhdet kopiot, joita ylläpitää FICIX.

Loppusanat

Vaikka tuo kysely vaikuttaa pitkälliseltä ja monimutkaiselta prosessilta (artikkelissa raapaistiin vain pintaa ja tehtiin selveyden vuoksi vähän yksinkertaistamista), ei tähän koko verkkotunnus-IP-parin selvittämiseen mene yleensä kuin silmänräpäys eli alle 0,4 sekuntia. Yllättävän tehokasta toimintaa, etenkin jos vertaa aikaan ennen DNS palvelimia. Tuolloin ennen vuotta 1983 verkkotunnus-IP-parit oli omana tiedostonaan tietokoneella, jota piti päivittää aktiivisesti, jos halusi löytää uudetkin sivut tai sivut joiden IP-osoite oli muuttunut toiseksi. Tuo yli miljardin verkkotunnuksen päivittäminen ja tiedon hakeminen olisi nykyisillä tietokoneillakin aikaa vievää ja hidasta verrattuna DNS palveluun.

 

Osoitetietoja tutkimassa,

Elektronikkari