Nimeäminen. Distributed systems - principles & paradigms kirjan luku 5. Kari Systä

Samankaltaiset tiedostot
Nimeäminen. Kari Systä. Distributed systems - principles & paradigms kirjan luku /Kari Systä OHJ-5010/Hajautettujen perusteet 1

Directory Information Tree

Push- ja pull-protokollat

2.2. Sähköposti. SMTP (Simple Mail Transfer Protocol) Postipalvelimet käyttävät SMTPprotokollaa. TCP-yhteys on pysyvä

Sähköpostisanoman muoto. Push- ja pull-protokollat. työntöprotokolla (PUSH) Yleisiä sanoman otsakekenttiä kentät erotettu rivinvaihdolla

C:. S: 250 Message accepted for delivery C: QUIT S: 221 princeton.edu closing connection

Lähettävä postipalvelin Vastaanottava postipalvelin

Unix-perusteet. Tulostaminen

A Linux -järjestelmät TI09TIVE. Joni Ruotsalainen

DNS- ja DHCPpalvelut. Linuxissa. Onni Kytönummi & Mikko Raussi

Käyttäjäliitäntä (user agent) sanomien kirjoittaminen, lukeminen ja lähettäminen

Luento 3. Timo Savola. 7. huhtikuuta 2006

DNSSec. Turvallisen internetin puolesta

Kytkimet, reitittimet, palomuurit

TCP/IP-protokollat ja DNS

S Tietoliikennetekniikan perusteet. Pakettikytkentäiset verkot. Helsinki University of Technology Networking Laboratory

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov)

Network Services Location Manager. Verkon ylläpitäjän opas

Algoritmit 1. Luento 8 Ke Timo Männikkö

Security server v6 installation requirements

Internet Protocol version 6. IPv6

Laitteessa tulee olla ohjelmisto tai uudempi, tarvittaessa päivitä laite

Ohjelmoinnin perusteet Y Python

Algoritmit 2. Luento 6 Ke Timo Männikkö

chroot chroot [options] hakemisto [komento]

xinetd service discard { = discard-stream

IHTE 1900 Seittiviestintä (syksy 2007) VERKKOTEKNIIKKAA. Mikä on protokolla, IP osoite, nimipalvelu jne ja mihin näitä tarvitaan?

Mark Summary Form. Tulospalvelu. Competitor No Competitor Name Member

Introduction to exterior routing

Fi-verkkotunnus yksilöllinen ja suomalainen

Security server v6 installation requirements

Introduction to exterior routing

Etsintä verkosta (Searching from the Web) T Datasta tietoon Heikki Mannila, Jouni Seppänen

OSI ja Protokollapino

Algoritmit 2. Luento 6 To Timo Männikkö

Introduction to exterior routing

ELEC-C7241 Tietokoneverkot Sovelluskerros

Algoritmit 1. Luento 7 Ti Timo Männikkö

ASIAKASKOHTAINEN NIMIPALVELU

Ohjelmoinnin perusteet Y Python

Introduction to exterior routing. Autonomous Systems

Tekninen kuvaus Aineistosiirrot Interaktiiviset yhteydet iftp-yhteydet

Luento 4: Sovelluskerros nimipalvelu (DNS), tiedostonsiirto sähköposti, vertaisverkot (P2P)

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia

HAMINETTI WLAN LIITTYMÄN KÄYTTÖÖNOTTO-OHJE

Algoritmit 2. Luento 5 Ti Timo Männikkö

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

Julkaiseminen verkossa

8 XSLT-muunnoskieli XSLT-muunnoskieli

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY

Algoritmit 2. Luento 4 To Timo Männikkö

T Tietokoneverkot kertaus

Algoritmit 1. Luento 9 Ti Timo Männikkö

A TIETORAKENTEET JA ALGORITMIT

Yleinen ohjeistus Windows tehtävään.

Yleistä tietoa Windows tehtävästä

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

Tikon Ostolaskujenkäsittely versio SP1

1 Yleistä Suojaus ja rajoitukset Liikenteen suojaaminen EPP rajoitukset... 3

Sisältö. Linkkikerros ja sen laitteet Linkkikerroksen osoitteet (MAC-osoite) ARP (eli IP-MAC-mäppäys) ja kytkintaulu

Mikä on internet, miten se toimii? Mauri Heinonen

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

Graafin 3-värittyvyyden tutkinta T Graafiteoria, projektityö (eksakti algoritmi), kevät 2005

KAIKKI LAITTEET KÄYNNISTETÄÄN UUDELLEEN ENNEN TARKISTUSTA

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

Kurssin verkkoalueet

Tiedostojen siirto ja FTP - 1

Katsaus analyysityökaluihin

Tikon Ostolaskujenkäsittely versio 6.2.0

Oulun yliopisto Sähkö- ja tietotekniikan osasto

Sovellukset (osa 2) CSE-C2400 Tietokoneverkot Sanna Suoranta. Tietokoneverkot 2015

A TIETORAKENTEET JA ALGORITMIT

TELEWELL TW-EA200 MODEEMIN ASENTAMINEN SILLATTUUN SAUNALAHDEN ADSL-LIITTYMÄÄN KÄYTTÄEN USB-VÄYLÄÄ

Tietoliikenteen perusteet

6.4. Järjestyssuhteet

Tietoliikenteen perusteet

VERKKOKÄYTTÄJÄN OPAS. Tulostuslokin tallennus verkkoon. Versio 0 FIN

TIE Tietorakenteet ja algoritmit 261

1/27/15. Sovellukset (osa 2) Sisältö: sovellusarkkitehtuurit. Lyhenteitä ja terminologiaa. Internet-protokollapino

Sivuston tiedotmysiteworthcheck.com

Pilvi 9.0. Arkkitehtuuri. Esimerkki arkkitehtuurit

Paikkatiedon hallinta ja analyysi 4. Paikkatiedon indeksointi

Retiisi Reaaliaikaiset Internet- palvelut ja SIP

Miten käydä läpi puun alkiot (traversal)?

Algoritmit 2. Luento 4 Ke Timo Männikkö

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka

PARITUS KAKSIJAKOISESSA

HOW-TO: Kuinka saan yhdistettyä kaksi tulospalvelukonetta keskenään verkkoon? [Windows XP]

MatTaFi projektin HAKA-pilotti

Linux-ylläpito: Verkkopalvelut 4. Kalvosetti. Jani Jaakkola

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

Liikkuvien isäntäkoneiden reititys

IP-reititys IP-osoitteen perusteella. koneelle uusi osoite tässä verkossa?

Petri Nuutinen 2011 KEVÄT

Transkriptio:

Nimeäminen Distributed systems - principles & paradigms kirjan luku 5 Kari Systä

Sisältö Käsitteitä Nimi, tunniste ja osoite Nimeäminen Lattea nimeäminen Rakenteinen nimeäminen Esimerkki: Domain Name System (DNS) Attribuuttiperustainen nimeäminen

Nimi Nimi on (bitti-) merkkijono, joka viittaa resurssiin Ihmisystävällinen nimi on yleensä merkkijono www.cs.tut.fi /home/systa/face.jpg Teemu Teekkari

Tunniste Ohjelmat käyttävät tunnisteita (identifier) viittaamaan olioihin (esim. etäolioviite) 1. Viittaa enintään yhteen olioon 2. Olioon viittaa enintään yksi tunniste 3. Tunniste viittaa aina samaan olioon Jos voidaan antaa jollekin muulle resurssille, se ei ole tunniste Ville Virtanen ei ole tunniste Entä henkilötunnus????

Osoite (address) Resurssia käsitellään liityntäpisteen (access point) kautta Liityntäpisteen nimi on osoite Liityntäpiste voi siirtyä paikasta toiseen Resurssi voi tarjota useampia liityntäpisteitä Esim. kotiosoite, puhelinnumero ja email Nimeämisjärjestelmä ylläpitää nimi osoite sidontaa yksinkertaisimmillaan taulu (nimi, osoite)-pareja nimen etsintä on usein lähellä reitittämistä

Lattea nimeäminen (Flat Naming) Nimessä ei ole rakennetta Esim. hash arvo tai vapaamuotoinen tekstipätkä tunniste osoite -muunnos Broadcast ja multicast Kysy kaikilta/joukolta tunnistetta, paluuviesti palauttaa osoitteen Ehkä joskus riittävän tehokasta Forwarding pointers Kotiperustainen nimeäminen Hajautettu hajautustaulu

Forwarding pointers Resurssi jättää stubin poistuessaan luo vastaavan skeletonin saapuessaan

Forwarding pointers Vastaus-sanoma tulee oikopolkua

Forwarding pointers Tämän jälkeen pyynnöt oikaisevat

Kotiperustainen nimeäminen Kotipaikassa pidetään tieto resurssin paikasta Esim. mobiili-ip Jokaisella on kiinteä IP-osoite Kommunikaatio ohjataan kotiagentille Mobiililaitteen muuttaessa verkkoa, se pyytää care-of-osoitteen, joka rekisteröidään kotiagentille

Kotiperustainen nimeäminen

Rakenteinen nimeäminen Ihmisille sopii paremmin rakenteiset nimet Koostuvat osista /home/systa/face.jpg www.cs.tut.fi Nimeämisgraafi on abstraktio, johon nimeäminen perustuu Graafi antaa rakenteen nimille Haku on polun löytämistä graafista

Nimiavaruudet Nimet organisoidaan nimiavaruuksiksi (name spaces) Voidaan esittää suunnattuna graafina Lehtisolmu sisältää tyypillisesti tietoa edustamastaan oliosta (esim. osoite) Puusolmut ovat hakemistoja Graafin polut voidaan esittää jonona kaarien nimiä: N:<l 1, l 2,, l n > N on alkusolmu (n 0 ) ja l i on kaaren nimi

Esimerkki Nimiavaruudet

Nimiavaruudet Jos first(n) = n 0, niin nimi on absoluuttinen Jos first(n) n 0, niin nimi on suhteellinen Monet tiedostojärjestelmät toimivat kuten nimeämisgraafi Absoluuttinen: /home/steen/mbox Suhteellinen steen/mbox Yleensä nimeämisgraafi on directed acyclic graph ja siinä on vain yksi juuri

Aliakset Toista nimeä samaan solmuun kutsutaan aliakseksi Esim. N0:<home,steen,keys> ja N0:<keys> UNIX-terminologiassa kova linkki (hard link) Toinen vaihtoehto: symbolinen linkki

Aliakset Esimerkki symbolisesta linkistä

Se kova linkki oli

Nimen etsintä (Name resolution) Prosessia, jossa nimeämisgraafista etsitään tietoa kutsutaan nimen etsimiseksi (name resolution) Etsitään polkua N 0 :< l 1, l 2, l 3 > Aluksi etsitään solmun N 0 hakemistotaulusta solmu N 1, johon l 1 viittaa Seuraavaksi etsitään polkua N 1 :<l 2, l 3 > Sitten N 2 :< l 3 > Etsintä loppuu kun on löydetty solmu N 3

Esim.: UNIXin tiedostojärjestelmä UNIXissa puusolmut (hakemistosolmut) ovat tiedostohakemistoja ja lehtisolmut tiedostoja Nimeämisgraafi toteutetaan vierekkäisinä blokkeina loogiselta levyltä Superblokissa on tietoa koko tiedostojärjestelmästä Inodessa on tieto missä tiedostodatablokeissa tiedosto on fyysisesti Tiedostodata-blokissa on tiedostodataa

Sulkeumamenetelmä (closure mechanism) Ongelma mistä saadaan juurisolmu (alkukonteksti), josta nimen etsintä aloitetaan Esim.: /home/tta/arwen.jpg: UNIXin inode #0 $HOME/arwen.jpg www.tut.fi: paikallinen nimipalvelin 112: lähin puhelin

Mounting Nimiä voidaan etsiä myös useamman kuin yhden nimiavaruuden sisällä Hakemistosolmussa on tunniste hakemistosolmuun toisessa nimiavaruudesta Hakemistosolmua, jossa tunniste on sanotaan mount point:iksi Hakemistosolmua, johon tunniste viittaa sanotaan mounting point:ksi

Esim. nfs mounting Nimiavaruuden mountaamiseen tarvitaan Käsittelyprotokollan nimi Palvelimen nimi Mounting point:n nimi Esim.: Sunin Network File System nfs://flits.cs.vu.nl/home/steen Ongelma: kolme ratkaistavaa nimeä Ratkaisu nfs on yleisesti tunnettu cs.tut.fi etsitään DNS:n avulla /home/steen etsitään toisessa nimiavaruudessa

Nimiavaruuden toteuttaminen Isot nimiavaruudet jaetaan loogisiin tasoihin (logical layers) Global layer Sisältää ylimmän tason solmut Erittäin stabiili Administrational layer Koostuu hakemistosolmuista, joita hallinnoi yksi organisaatio tai organisaation osa Melko stabiili Managerial layer Sisältää esimerkiksi loppukäyttäjien hakemistoja ja tiedostoja Solmut muuttuvat säännöllisesti

Nimien etsinnän toteuttaminen Nimiavaruus jaetaan zoneihin, jotka ovat toisensa poissulkevia Zone on nimiavaruuden alue, jonka toteuttaa erillinen nimipalvelin Nimiavaruuden hajauttaminen monelle palvelimelle vaikuttaa myös nimien etsintään Oletuksia Ei replikoita Ei kätköjä Asiakkailla pääsy paikalliseen nimien etsijään (name resolver)

Nimien etsinnän toteuttaminen Etsitään nimi root:<fi,tut,cs,ftp,pub,src,bar.txt> eli ftp://ftp.cs.tut.fi/pub/src/bar.txt Asiakas tietää, että 5 ensimmäistä osaa haetaan DNS:stä ja loput ovat managerial tasolla

Iteratiivinen nimipalvelu Nimi- palvelu <fi, tut, cs, ftp> #<fi> <tut, cs, ftp> #<tut> <cs, ftp> #<cs> <ftp> #<ftp> Root fi tut cs <fi, tut, cs, ftp> #<fi, tut, cs, ftp>

Rekursiivinen nimipalvelu <fi, tut, cs, ftp> #<fi, tut, cs, ftp> Root <tut, cs, ftp> Nimi- palvelu #<tut, cs, ftp> fi <cs, ftp> #<cs, ftp> tut #<ftp> cs <ftp> <fi, tut, cs, ftp> #<fi, tut, cs, ftp>

Ratkaisujen vertailu Rekursiivinen ratkaisu asettaa kovat suorituskykyvaatimukset palvelimille Siksi globaaleissa palvelimissa vain iteratiivinen ratkaisu Rekursiivisessa tiedon tallettaminen kätköihin tehokkaampaa Rekursiivisessa kommunikointi-kustannukset joskus pienempiä Keskeisin optimointi: pidä vanhat kysely muistissa (cache)

Vaatimukset nimipalvelimille Eri tasoilla oleville nimipalvelimille asetetaan erilaisia vaatimuksia Globaali taso Saatavuus tärkeää Asiakkaiden on helppo muistaa(cache) tuloksia suorituskyky ei kriittinen Hallinnollinen taso Palvelimet toimivat organisaatioiden sisällä sisäinen saatavuus tärkeää Myös hallinnollisella tasolla asiakkaiden kätköt vähentävät suorituskyvyn tarvetta

Nimiavaruuden toteuttaminen Vaatimuksia nimipalvelimille Managerial taso Hetkelliset palvelun kaatumiset eivät ole kriittisiä Saatavuus ei niin tärkeää Käyttäjät olettavat operaatioiden tapahtuvan nopeasti suorituskyky erittäin tärkeää

Domain Name System Linkittää puhelinluettelo tavoin internetin kaksi nimiavaruutta (myös olemassa käänteispalvelu) Verkkotunnus <-> IP-osoitteiksi Merkkijonoesitys nimestä aloitetaan oikeanpuoleisimmasta nimen osasta root:<fi,tut,cs,keltatikka> keltatikka.cs.tut.fi. Nimen maksimipituus on 255 Alipuuta kutsutaan domain:ksi Polkua domainiin kutsutaan domainin nimeksi

DNS Jokaisessa zone:ssa on yleensä vähintään kaksi nimipalvelinta (authoritative name server) Primääri- ja sekundääripalvelin Päivitykset tehdään primääripalvelimeen Zone transfer: sekundääripalvelimet pyytävät primääripalvelimelta sisällön Kyselyt ja vastaukset UDP:nä

DNS Resurssitietueet Yksi solmu esittää nimiavaruudessa useampaa asiaa: Domain on nimiavaruuden alipuu, johon kuuluvat kaikki sen alla olevat domainit Zone on yksittäisen nimipalvelimen hallinnoima solmujoukko tut.fi ja cs.tut.fi kuuluu samaan domainiin, mutta ei zoneen Zonen osa voidaan delegoida toisen hallinnoitavaksi Solmujen sisältö muodostetaan resurssitiedostolla

DNS resurssitietueet Tyyppi Liittyy Kuvaus SOA Zone Tietoa zonesta A Host Tämän solmun edustaman host:n IP osoite MX SRV Domain Viittaa postipalvelim., joka hoitaa tämän noden postin Domain Viittaa tietyn palvelun palvelimeen NS Zone Viittaa nimipalvelimeen joka toteuttaa zonen CNAME Node Symlink primäärisellä nimellä edustettuun nodeen PTR Host Kuvaa IP-osoitteen hostin kanoniseksi nimeksi HINFO Host Tietoa hostista, jota solmu esittää TXT Any Mitä tahansa tärkeätä tietoa

Esim: ns.cs.tut.fi $TTL 3600 @ IN SOA ns.cs.tut.fi. hostmaster.cs.tut.fi. ( 2008022212 28800 7200 604800 3600) IN NS ns.cs.tut.fi. IN NS ns2.cs.tut.fi. IN NS ns-secondary.funet.fi. cs.tut.fi. 60 IN MX 1 mail.cs.tut.fi. cs.tut.fi. 60 IN MX 10 mx.cs.tut.fi. cs.tut.fi. 60 IN MX 20 mx2.cs.tut.fi.

news.cs.tut.fi. IN CNAME news.cc.tut.fi. irc.cs.tut.fi. IN CNAME irc.cc.tut.fi. modeemi.cs.tut.fi. IN NS ns.modeemi.cs.tut.fi. modeemi.cs.tut.fi. IN NS ns.cs.tut.fi. modeemi.cs.tut.fi. IN NS ressu.cc.tut.fi. ns.modeemi.cs.tut.fi. IN A 130.230.72.134 kaarne.cs.tut.fi. 60 IN A 130.230.4.31 kaarne.cs.tut.fi. 60 IN AAAA 2001:708:310:4::31 kaarne.cs.tut.fi. 60 IN A 130.230.4.32 kaarne.cs.tut.fi. 60 IN AAAA 2001:708:310:4::32

in-addr.arpa $TTL 3600 @ IN SOA ns.cs.tut.fi. hostmaster.cs.tut.fi. ( 2008022212 28800 7200 604800 3600) IN NS IN NS IN NS ns.cs.tut.fi. ns2.cs.tut.fi. ns-secondary.funet.fi. 0 IN PTR net-4.cs.tut.fi. 1 IN PTR default-gw-vlan4.cs.tut.fi. 2 IN PTR ns.cs.tut.fi. 3 IN PTR ns2.cs.tut.fi. 4 IN PTR amurinsorsa.cs.tut.fi. 99 IN PTR olutkyyhky.cs.tut.fi.

Esim: ns.cs.tut.fi % host -t MX cs.tut.fi cs.tut.fi mail is handled by 1 mail.cs.tut.fi. cs.tut.fi mail is handled by 10 mx.cs.tut.fi. cs.tut.fi mail is handled by 20 mx2.cs.tut.fi. % host 130.230.4.99 99.4.230.130.in-addr.arpa domain name pointer olutkyyhky.cs.tut.fi.

Address resolution 1. Juuripalvelimen osoite root hints tiedostosta (.) 2. Joltain juuripalvelimista haetaan autoritäärinen nimipalvelin top level domainille (org) 3. tieto seuraavasta nimipalvelimesta (wikipedia.org) 4. Jatketaan kunnes lopulta löydetään hostin osoite Yleensä jotain löytyisi jo cachesta

DNS (iteratiivinen nimipalvelu)

Juuripalvelimet DNS:ssä on loogisesti 13 juuripalvelinta UDP asettaa rajan Osa hajautettu anycast:n avulla Nimetty A-M: esim. f.root-servers.net

DNS Internet Corporation for Assigned Names and Numbers päättää ylimmän tason nimistä http://www.iana.org fi-domainia hallinnoi Viestintävirasto www.ficora.fi

DNS toimii hyvin, mutta vaihtoehtoja tutkitaan Esimerkkinä CoDoNS http://www.cs.cornell.edu/people/egs/beehive/codons.php Perustuu hajautettuihin hajautustauluihin (DHT) Skaalautuva Vikasietoinen Tehokas

Hajautettu hajautustaulu Esimerkkinä P2P-järjestelmä Chord Solmuilla m-bittinen satunnaisesti valittu ID Resurssi avaimella k on pienimmän solmun vastuulla, jolle id k (succ(k)) Hakuja varten sormitaulu (finger table) Enintään m riviä FT p [i] = succ(p+2 i-1 ) p.lookup(k) lähettää edelleen kyselyn q:lle, jolla q=ft p [j] k < FT p [j+1]

Chord Selvitetään avainta 26 vastaava solmu alkaen solmusta 1, ja avainta12 vastaava solmu alkaen solmusta 28

Attribuuttiperustainen nimeäminen Latteat ja rakenteiset nimet paikkatuntumattomia ja ihmiselle sopivia Joskus tarve tehdä hakuja ominaisuuksien perusteella Resurssit kuvataan joukolla (attribuutti, arvo) - pareja

Esimerkki: LDAP Lightweight Directory Access Protocol Tarkoitettu löytämään resursseja kuvaavien hakujen perusteella Organisaatiot voivat julkaista tietoja Voidaan käyttää myös kuten perinteistä nimipalvelua Monenlaisia hakuja Analogia valkoisiin ja keltaisiin sivuihin

LDAP (Samoin kuin DNS) LDAP-palvelimet muodostavat puuhierarkian (Toisin kuin DNS:ssä) solmuissa nimiin on sidottu paljon attribuutteja ja hakuja voidaan tehdä attribuutteihin perustuen Puuta kutsutaan nimellä Directory Information Tree (DIT) Koko järjestelmä on nimeltään Directory Information Base (DIB)

LDAP Kuvitteellinen esim. hakemistoentrystä dn: uid=fsmith, ou=employees, objectclass: person uid: fsmith telephonenumber: 510-555-1234 roomnumber: 122G mailroutingaddress:fsmith@foobar.com mailhost: mail.foobar.com Osoite /ou=employees/uid=fsmith/

Etsintä LDAP Esimerkki hausta: answer = search( &(objectclass=person)(mailhost= mail.foobar.com) ) Meillä käytetään esim. (Windowspuolen) käyttäjähallintaan ja tulostintenjakoon.

Yhteenveto nimeämisestä Kolmen tyyppisiä nimiä: Osoite (address) Tunniste (identifier) Ihmisen luettava Litteä nimiavaruus hankala hajautetuissa järjestelmissä broadcasting, forward pointers, home Strukturoidut nimet Attribuuttipohjaiset nimet