DNS

Wikipediasta
Siirry navigaatioon Siirry hakuun
Tämä artikkeli kertoo internetin nimipalvelujärjestelmästä. Muita merkityksiä kerrotaantäsmennyssivulla.
TCP/IP-pino
sovelluskerros
sovelluskerros

sovelluskerros
BGP·DHCP·DNS·ESMTP·FTP·HTTP·IMAP·IRC·LDAP·MGCP·NNTP·NTP·POP3·RPC·RTP·RTSP·SIP·SMTP·SNMP·SOCKS·SSH·Telnet·TLS/SSL·XMPP·(..lisää..)
kuljetuskerros
kuljetuskerros

kuljetuskerros
TCP·UDP·QUIC·DCCP·SCTP·RSVP·RIP·ECN
verkkokerros
verkkokerros

verkkokerros
IP(IPv4jaIPv6)·ICMP(ICMPv6)·IGMP·IPsec
siirtoyhteyskerros ARP·IS-IS·NDP·OSPF·L2TP·PPP
fyysinen kerros

DNS(engl.Domain Name Systemeli nimipalvelujärjestelmä) onhajautettujärjestelmä, jonka avulla voidaan nimetä tietokoneita ja palvelujaInternetissätai muissaIP-verkoissa. Se on tärkeä osa internetin infrastruktuuria, ja se toimiipuhelinluettelontavoin kääntäenverkkotunnuksiaIP-osoitteiksi(esimerkiksifi.wikipedia.orgon185.15.59.224).[1][2]

Internetin laitteet kommunikoivat keskenään pitkien numeeristen IP-osoitteiden avulla, joiden muistaminen sellaisenaan olisi hankalaa ja epäkäytännöllistä.[2]

Nimipalvelun toteuttavia palvelimia kutsutaan nimipalvelimiksi ja niitä on neljää eri tyyppiä:[3][4]

  • Paikallinen nimipalvelin (engl.resolver) vastaa käyttäjien nimipalvelupyyntöihin ja hakee niihin vastaukset muilta nimipalvelimilta.
  • Virallinen tai auktoritatiiviset nimipalvelin (engl.authoritative nameserver) sisältää ja tarjoaa tietyn verkkotunnuksen DNS-tietueet eli IP-osoitteet, joihin verkkotunnus osoittaa.
  • Verkkotunnuspalvelin (engl.TLD nameserver) ohjaa pyynnöt oikealle viralliselle nimipalvelimelle. Niitä on jokaista verkkotunnuspäätettä (kuten,.fi,.org...) kohden, ja ne sisältävät nimipalvelintiedot kaikille verkkotunnuksille, jotka loppuvat kyseiseen päätteeseen. Niitä hallitseeIANA.
  • Juuripalvelin(engl.root nameserver) ohjaa pyynnöt oikealle verkkotunnuspalvelimelle. Niitä on yhteensä 13 kappaletta, ja niitä hallitsee IANA.

Nimipalvelun historia

[muokkaa|muokkaa wikitekstiä]

Tietokoneitaon nimetty niiden keksimisestä lähtien, samointietoverkkoja.DNS on rakennettu tukemaanIP-protokollaa käyttäviä verkkoja ja nimipalvelun kannalta on epäolennaista kuinka nimet toimivat muissa verkoissa.

IP-verkon alkuaikana osoitteille annettiin nimiä ainoastaanhosts-tiedostossa, jonka kopiota jaettiin koneiden välillä.[5]Laitekannan kasvaessa menetelmä ei ollut käytännöllinen, ja vuonna1983Jon PostelpyysiPaul Mockapetrisiäratkaisemaan nimiin liittyvän ongelman. Alkuperäinen nimipalvelun määritelmä löytyy dokumenteistaRFC 882jaRFC 883.Vuonna1987nimipalvelun määritelmiä päivitettiinRFC 1034- jaRFC 1035-dokumenteissa, jolloin muodostui nykyisen nimipalvelun perusta.

Nimipalvelua kehitetään edelleen.[6]Vuosien aikana nimipalveluun on lisätty tietoturvaa tukevia tietotyyppejä, sen dynaamisuutta on paranneltu ja määrityksiä täsmennetty.

Ensimmäinen nimipalvelusovellus oli Paul Mockapetrisin luoma JEEVES. MyöhemminBerkeleynopiskelijat Douglas Terry, Mark Painter, David Riggle ja Songnian Zhou kirjoittivat sovelluksen uusiksi, ja antoivat sille nimeksiBerkeley Internet Name DomaineliBIND.

Verkkotunnus nimipalvelussa

[muokkaa|muokkaa wikitekstiä]
Pääartikkeli:Verkkotunnus

Verkkotunnuksen osat erotetaan toisistaan pisteellä. Yleensä osat kirjoitetaan järjestyksessä spesifisemmästä laajempaan vasemmalta oikealle, eli juuresta katsottuna oikealta vasemmalle. Ensimmäisen tason verkkotunnus onjuuri,joka on pelkkä piste. Juuresta seuraavan tason tunnuksia nimitetäänylätason verkkotunnuksiksi(Top-Level DomaineliTLD). Kaikki ylätason verkkotunnukset ovat säädeltyjä, ja lähes kaikilla ylätason verkkotunnuksilla on oma, erillinen rekisterinsä.

Ylätason verkkotunnuksia on kahta päätyyppiä, maatunnuksia (Country Coded TLDeliccTLD) ja yleisluontoisia tunnuksia (Generic TLDeligTLD). Esimerkiksi Suomessa käytettävä maatunnus on fi. Yleisluontoisia puolestaan ovat,.orgja.net.[7]Ylätason verkkotunnuksen haltija, Suomessa esimerkiksi Traficom, jakelee edelleen hallinnoimansa ylätason tunnuksenaliverkkotunnukset.[8]Ylätason aliverkkojen kaksiosaisia tunnuksia – esimerkiksi wikipedia.org – kutsutaan verkkotunnuksiksi.

Verkkotunnuksen ylläpitäjä voi edelleen tehdä omalle verkkotunnukselleen aliverkkotunnuksia. Tällainen on esimerkiksidhcp.inet.fi,jonka alla olevat verkkotunnukset ovat samassalaajakaistaverkossaolevien koneiden tunnuksia.

Verkkotunnuksia IP-osoitteisiinpuhelinluettelontavoin liittävän nimipalvelun lisäksi on olemassa käänteisnimipalvelu, jonka avulla saadaan selville IP-osoitetta vastaava verkkotunnus. Käänteisosoitteiden juuri on in-addr.arpa. Osoitteet muistuttavat tavanomaisia verkkotunnuksia. Merkittävin ero on se, että niihin viitataan eri tietotyypillä kuin tavallisiin nimiin. Käänteisverkkotunnuksen saa palveluntarjoajalta tai Internet-rekisteristä. Euroopan alueella Internet-rekisteri onRIPE.

ISC:nmukaan tammikuussa 2017 internetissä oli 1 062 660 523 nimeä DNS-järjestelmässä.[9]

Verkkotunnuksella voi olla useita osoitteita nimipalvelussa esimerkiksikuormituksen tasaamisenvuoksi (ks.RFC 1035,RFC 1794).[10]

Mallinne resolverin toiminnasta.

Arkikielessä nimipalvelimilla tarkoitetaan usein ainoastaan resolvereja, jotka määritellään Internetin tietokoneille staattisesti taiDHCP:navulla. Tavallisesti resolvereita määritellään kaksi tai useampia.

Resolvereiden tärkein tehtävä on etsiä vastauksia nimipalvelukyselyihin. Resolverit tallettavat vastauksiavälimuistiin,millä vältetäänrekursiosilloin, kun jotain nimeä kysytään usein. Tämä parantaa resolvereiden tehokkuutta.[11]

Resolverin rekursio selvittää, onko kysytty nimi tai sen osa välimuistissa. Mikäli koko nimi on välimuistissa, eikä vanhentunut, se palautetaan ilman rekursiota. Mikäli vain nimen vähemmän merkitsevä osa on välimuistissa, tehdään ulossuuntautuvia kyselyjä, jotta resolveri pystyy kertomaan pyydetyn tiedon. Samalla se myös tallennetaan välimuistiin. Jos välimuisti on tyhjä, resolveri käyttää vihjetiedostoa, jonnejuurinimipalvelimeton merkitty, ja ryhtyy sen kautta täyttämään välimuistiaan.

Resolveri ei saa pitää välimuistissaan tietoja kauempaa kuin nimipalveluun on määritelty. Välimuistissapitämisaikaa (Time to LiveeliTTL) säätelevät autoritääristen nimipalvelimien (katso alempana) ylläpitäjät. Käytössä olevan resolverin olisi syytä olla verkossa mahdollisimman lähellä ja tehokkaalla koneella,[12]jotta nimipalvelun käyttötuntuma olisi nopea.

Resolverin tulisi vastata ainoastaan sen organisaation kyselyihin jonka käytössä kone on.[13]

Autoritääriset nimipalvelimet

[muokkaa|muokkaa wikitekstiä]

Autoritääriset nimipalvelimet vastaavat resolvereiden tekemiin kyselyihin. Verkkotunnuksen suhteen vähemmän merkitsevät nimipalvelimet kuten juurinimipalvelimet eivät tiedä lopullista vastausta, mutta tietävät millä nimipalvelimilla enemmän merkitsevä verkkotunnus sijaitsee. Tämä synnyttää rekursion.

Juuri- ja TLD-nimipalvelimia ylläpidetään ammattimaisesti ja ne on hajautettuJokulähetys (anycast)-tekniikalla. Nimipalvelusisällön TLD-nimipalvelimet saavat verkkotunnusrekisteristä. Kolmannen tason verkkotunnuksille, kuten example, auktoritatiiviset nimipalvelimet määrittelee verkkotunnuksen rekisteröijä. Kolmannen tason autoritääriset nimipalvelimet voivat olla enemmän tai vähemmän ammatillisesti ylläpidettyjä.

Jokaisella verkkotunnuksella tulisi olla vähintään kaksi autoritääristä nimipalvelinosoitetta. Osoitteita voi olla enemmän kuin kaksi, ja niitä voi hajauttaa fyysisesti useisiin paikkoihinJokulähetyksentaikuormantasaajanavulla. Yhden autoritäärisistä nimipalvelimista täytyy olla master, joka jakaa muille verkkotunnuksesta kopion. Kopioita vastaanottavien koneiden nimi on slave. Verkkotunnuksen kopion siirtymistä masterilta slavelle kutsutaan nimellä zone transfer, joka on tavanomaisesti rajoitettu ainoastaan koneille, jotka ovat nimipalvelimenpääsylistallatai pitävät hallussaan TSIG-avainta.

Autoritääriset nimipalvelimet voivat ottaa päivityksiä vastaan asiakaskoneilta. Tekniikka, jolla päivitykset toteutetaan, on nimeltään dynaaminen DNS(DynDNS).Päivitysten tarkoituksena on asettaa nimi- ja IP-pareja asiakaskoneen pyynnöstä vastaamaan toisiaan.

Autoritäärisille nimipalvelimille voidaan tehdä eri näkymiä(view)eri verkko-osoitteista, tai osoiteavaruuksista, tuleville kyselyille. Näkymien avulla nimipalvelun ylläpitäjä voi joustavasti ohjailla liikennettä. Ellei näkymien käytön kanssa ole varuillaan niillä voi aiheuttaa outoja ongelmia.

Autoritääristen nimipalvelimien on vastattava kaikkialta Internetistä tuleviin kyselyihin.

Nimipalvelun sisältötieto kulkeetietueidenvälityksellä. Nimipalvelun kannalta verkkotunnus on tietue siinä missä nimi-ip-pari. Yleisimmin tarvittuja tietueita ovat:

A Tietue, joka osoittaa IP-osoitteen
PTR IP-osoite, joka osoittaa nimen
MX Tietuetta palvelevat sähköpostipalvelimet
NS Verkkotunnuksen nimipalvelimet
SOA Verkkotunnuksen hallintatiedot
TXT Tietueen osoittama vapaateksti

Tietueissa sallittuja merkkejä ovat kirjaimet, numerot ja yhdysviiva. Pienet sekä isot kirjaimet tarkoittavat samaa ja muut merkit eivät ole sallittuja. Poikkeuksen muodostaa NAPTR-tietue, jossa on sallittu alaviiva ja tietuesisällössäsäännölliset lausekkeet.[14]Toinen poikkeus on SRV-tietue, jossa on sallittu alaviivan käyttö.[15]

Seuraavat tietueet ovat verrattaen uusia:

AAAA Tietue, joka osoittaaIPv6-osoitteen
DNAME Verkkotunnusten nimeäminen uudelleen
NAPTR "Puhelinnumerotietue"
SRV Palvelunosoitustietue

Resolveri voi tehdä myös ANY-kyselyn, joka ei ole varsinaisesti tietue. Tehtäessä ANY-kysely vastaus sisältää kaikki tietueet jotka liittyvät nimeen. Vastaavasti autoritäärisille nimipalvelimille voidaan määritellä tähtitietue(wildcard),joka muuntaa verkkotunnuksen määrittelemättömät nimet vastaukseksi joka tähtitietueeseen on määritelty. Kolmas yleisesti tiedossa oleva melkeinselvennätietue, onSPF(Sender Policy Framework)joka määritellään TXT-tietueen sisällöksi.

DNS-tietojen varmistamiseen ja suojaamiseen väärentämisen estämiseksi on kehitetty tekniikoita kutenDNSSECjaDNS over TLS,joista jälkimmäinen käyttääTLS-kerrosta.

Vaihtoehtona DNS:lle on kehitettyGNU Name System(GNS), joka on kuvattu IETF-standardissaRFC 9498- The GNU Name System. GNS:n tarkoituksena on korjata DNS:n turvallisuuteen ja yksityisyydensuojaan liittyviä ongelmakohtia.[16]GNS on kehitetty GNUnetiä varten Deutsche Forschungsgesellschaftin tutkimusrahoituksen tuella.[17] GNS toimii hajautetusti ja se voi toimia myös osittaisena korvikkeena julkisen avaimen infrastruktuureille.[18]

  1. J. Botha, C. Bothma ja Pieter Geldenhuys:Managing E-Commerce in Business, 2. painos,s. 20. Juta and Company Ltd, 2008.ISBN 9780702173042.(englanniksi)
  2. abNimipalvelu - Tietoliikenteen perusteet 2 2021tietoliikenteen-perusteet-2-21.mooc.fi.Viitattu 12.1.2024.
  3. Nimipalvelu - Tietoliikenteen perusteet 2 2021tietoliikenteen-perusteet-2-21.mooc.fi.Viitattu 12.1.2024.
  4. DNS server types | Cloudflarecloudflare.
  5. Internetin historiaa – 1983CSC – Tieteen tietotekniikan keskus. Viitattu 18.3.2010.
  6. Nimipalveluun liittyvät RFC dokumentit.zytrax.
  7. ICANN Top-Level Domainsicann.org.
  8. Traficomin verkkotunnuspalvelu.traficom.fi.
  9. Internet Domain Survey, January 2017ISC. Viitattu 27.11.2017.
  10. DNS Failover: Basic Concepts and Limitationsns1.Viitattu 17.7.2022.(englanniksi)
  11. DNS Performance and the Effectiveness of Caching.nms.lcs.mit.edu.
  12. Best Practices in DNS Service-Provision Architectureapricot.net.
  13. Anatomy of Recent DNS Reflector Attacks from the Victim and Reflector Points of Viewnanog.org.Arkistoitu19.10.2006. Viitattu 23.9.2007.
  14. The Naming Authority Pointer (NAPTR) DNS Resource Recordietf.org.
  15. A DNS RR for specifying the location of services (DNS SRV)ietf.org.
  16. Newsgnunet.org.Viitattu 23.11.2023.(englanniksi)
  17. About GNUnetdocs.gnunet.org.Viitattu 23.11.2023.(englanniksi)
  18. Matthias Wachs, Martin Schanzenbach, Christian Grothof:A Censorship-Resistant, Privacy-Enhancing and Fully Decentralized Name System(PDF)git.gnunet.org.Viitattu 23.11.2023.(englanniksi)

Aiheesta muualla

[muokkaa|muokkaa wikitekstiä]