DNS

Article on other languages:

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire
TCP/IP-protokollia
(keskimmäiset kolme kerrosta)
sovellukset esim. selain (sisältö HTML, XML, MIME)
sovelluskerros HTTP, SMTP, POP, IMAP, FTP, IRC,
Telnet, SIP, RTSP, RTP, SNMP ...
kuljetuskerros TCP, UDP, SCTP, DCCP
(tukena: DNS, OSPF, BGP)
verkkokerros IP, ARP, DHCP, ICMP, IGMP
IPv6, IPsec, Mobile IPv6, SSM...
peruskerros esim. IEEE 802 -lähiverkot, PPP,
Frame Relay, MPLS, GPRS

Domain Name System (DNS) on Internetin nimipalvelujärjestelmä, joka muuntaa nimiä IP-osoitteiksi. Internetin laitteet kommunikoivat keskenään numeeristen osoitteiden avulla, joiden muistaminen olisi ihmisille toivotonta. Nimipalvelun perimmäinen tarkoitus on sama mikä puhelinluettelolla on. Nimipalvelun toinen tärkeä tehtävä on sähköpostien reititys.

Nimipalvelun toteuttavia palvelintyyppejä on kaksi.

  • Nimipalvelukyselyihin vastauksia hakevat koneet eli resolverit.
  • Nimipalvelukyselyihin vastauksia antavat koneet eli autoritääriset nimipalvelimet.

Sisällysluettelo

Nimipalvelun historia

Tietokoneita on nimetty siitä lähtien kuin niitä on ollut olemassa. Verkko-osoitteiden nimeäminen ajoittuu ajalle jolloin verkko on keksitty. Nimipalvelu on rakennettu tukemaan IP-verkkoa, joten nimipalvelun osalta on epäolennaista kuinka nimet toimivat muissa verkoissa.

IP-verkon alkuaikana osoitteille annettiin nimiä ainoastaan hosts-tiedostossa, jonka kopiota jaettiin koneiden välillä. Laitekannan kasvaessa menetelmä ei ollut käytännöllinen, ja vuonna 1983 Jon Postel pyysi Paul Mockapetrisiä ratkaisemaan nimiin liittyvän ongelman. Alkuperäinen nimipalvelun määritelmä löytyy dokumenteistä RFC 882 ja RFC 883. Vuonna 1987 nimipalvelun määritelmiä, RFC 1034 ja RFC 1035, päivitettiin tavalla joka on modernin nimipalvelun perusta.

Nimipalvelun kehitys ei ole pysähtynyt. [1] Vuosien aikana nimipalveluun on lisätty tietotyyppejä tukemaan tietoturvaa, dynaamisuutta on paranneltu ja määrityksiä täsmennetty.

Ensimmäinen nimipalvelin implementaatio oli nimeltään JEEVES, jonka teki Paul Mockapetris. Myöhemmin Berkeleyn opiskelijat Douglas Terry, Mark Painter, David Riggle ja Songnian Zhou uudelleen koodasivat implementaation ja antoivat sille nimen BIND (Berkeley Internet Name Domain). Ohjelmistoa ovat myöhemmin ylläpitäneet muun muassa Mike Karels, Phil Almquist ja Paul Vixie. Windows-versio BINDistä tehtiin vuonna 1990.

Mikä on domain eli verkkotunnus

Domainit erotetaan toisistaan pisteellä. Juuridomain on pelkkä piste. Suomen pääverkkotunnus on fi, jonka alla on alidomaineja. Normaalissa kielenkäytössä päädomainien alidomaineja kutsutaan lyhyesti domaineiksi, eli sellaisia nimiä joissa on kaksi osaa. Esimerkki arkikielessä tarkoitetusta domainista on example.com. Domainien enemmän spesifinen osa on vasemmalla, eli juuresta katsottuna domain luetaan oikealta vasemmalle.

Kaikki päätason domainit ovat säädeltyjä. Näihin päädomaineihin luo alidomain rekisterit kuten Ficora. [2] Lähes kaikilla päädomaineilla on oma erillinen rekisteri.

Käyttäjädomaineihin voidaan tehdä alidomaineja, joilla yleensä pyritään erottamaan jokin nimien kokonaisuus päädomainin sisällöstä. Esimerkki edellisen kaltaisesta alidomainista on dhcp.inet.fi. josta löytyy laajakaistan käyttämiä osoitteita. Domainin ylläpitäjä voi vapaasti luoda alidomaineja.

Domainnimien, kuten kone.example.com. on IP 123.45.67.89, lisäksi on olemassa käänteisnimipalvelu, jonka avulla IP-osoite voidaan selvittää nimeksi. Käänteisosoitteet ovat teknisesti hyvin lähellä tavanomaisia domaineja. Merkittävin ero käänteisnimiin on se, että niihin viitataan eri tietotyypillä kuin tavallisiin nimiin. Käänteisosoitteiden juuri on in-addr.arpa. ja käänteisdomainin saa käyttöön palveluntarjoajalta tai Internet-rekisteristä. Euroopan alueella Internet-rekisteri on RIPE.

Ensimmäisen tason domain on juuri. Toisen tason domaineihin viitataan lyhenteellä TLD (Top-Level Domain). TLD:t jakautuvat kahteen ryhmään maatunnukset ccTLD (Country Coded TLD) ja yleiset gTLD (Generic TLD) domainit, joista jälkimäiseen kuuluu esimerkiksi com., org.ja net. [3]

Resolverit

Mallinne resolverin toiminnasta.
Mallinne resolverin toiminnasta.

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

Resolvereiden tärkein tehtävä on etsiä vastauksia nimipalvelukyselyihin. Ollakseen tehokas [4] resolverit tallettavat vastauksia välimuistiin, millä vältetään rekursion tekeminen silloin kun jotain nimeä kysytään usein.

Resolverin rekursio tarkistaa onko kysytty nimi, enemmän merkitsevästä vähemmän merkisevään, tai sen osa välimuistissa. Mikäli koko nimi on välimuistissa, eikä vanhentunut, se palautetaan ilman rekursiota. Mikäli nimen vähemmän merkitsevä osa on välimuistissa tehdään jotain ulossuuntautuvia kyselyjä, jotta resolveri pystyisi kertomaan pyydetyn tiedon ja tallentamaan tiedon välimuistiin. Välimuistin ollessa kokonaan tyhjä resolveri käyttää vihjetiedostoa, jonne juurinimipalvelimet on merkitty, ja näin ryhtyy täyttämään välimuistiaan.

Resolveri ei saa pitää välimuistissaan tietoja kauempaa kuin nimipalveluun on määritelty. Välimuistissa pitämisaikaa, TTL (Time to Live), säätelee autoritääristen nimipalvelimien ylläpitäjät.

Käytössä olevan resolverin olisi syytä olla verkossa mahdollisimman lähellä ja tehokkaalla koneella, [5] jolloin nimipalvelun käyttötuntuma on nopea.

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

Autoritääriset nimipalvelimet

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

Juuri- ja TLD-nimipalvelimia ylläpidetään ammattimaisesti ja ne on hajautettu Jokulähetys (anycast) tekniikalla. Nimipalvelusisällön TLD-nimipalvelimet saavat domain rekisteristä. Kolmannen tason domaineille, kuten example.com, autoriset nimipalvelimet määrittelee domainin rekisteröijä. Kolmannen tason autoritääriset nimipalvelimet voivat olla enemmän tai vähemmän ammatillisesti ylläpidettyjä.

Jokaisella domainilla tulisi olla vähintään kaksi autoritääristä nimipalvelinosoitetta. Osoitteita voi olla ennemmän kuin kaksi, ja niitä voi hajauttaa fyysisesti useisiin paikkoihin Jokulähetyksen tai kuormantasaajan avulla. Yhden autoritäärisistä nimipalvelimista täytyy olla master, joka jakaa muille domainista kopion. Kopioita vastaanottavien koneiden nimi on slave. Domain kopion siirtymistä masterilta slavelle kutsutaan nimellä zone transfer, joka on tavanomaisesti rajoitettu ainoastaan koneille, jotka ovat nimipalvelimen pääsylistalla tai pitävät hallussaa TSIG avainta.

Autoritääriset nimipalvelimet voivat ottaa päiviksiä 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.

Tietueet

Nimipalvelun sisältötieto kulkee tietueiden välityksellä. Nimipalvelun kannalta domain on tietue siinä missä nimi-ip -pari. Yleisimmin tarvittuja tietuita ovat.

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

Tietueissa sallittuja merkkejä ovat kirjaimet, numerot ja viivamerkki. Pienet ja isot kirjaimet tarkoittavat samaa. Muut merkit eivät ole sallittuja. Poikkeuksen muodostaa NAPTR tietue, jossa on sallittu alaviiva ja tietuesisältössä säännölliset lausekkeet. [7] Toinen poikkeus on SRV tietue, jolle on sallittu alaviivan käyttö. [8]

Seuraavat tietueet ovat verrattaen uusia, ja osalle hieman outoja.

AAAA Tietue, joka osoittaa IPv6-osoitteen.
DNAME Domainien uudelleen nimeäminen.
NAPTR "Puhelinnumerotietue".
SRV Palvelunosoitus tietue.

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 domainin määrittelemättömät nimet vastaukseksi joka tähtitietueeseen on määritelty. Kolmas yleisesti tiedossa oleva melkein tietue, on SPF (Sender Policy Framework) joka määritellää TXT tietueen sisällöksi.

Lähteet

  1. Nimipalveluun liittyvät RFC dokumentit.
  2. Ficoran verkkotunnuspalvelu.
  3. ICANN Top-Level Domains
  4. DNS Performance and the Effectiveness of Caching.
  5. Best Practices in DNS Service-Provision Architecture
  6. Anatomy of Recent DNS Reflector Attacks from the Victim and Reflector Points of View
  7. The Naming Authority Pointer (NAPTR) DNS Resource Record
  8. A DNS RR for specifying the location of services (DNS SRV)

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net