Domain Name System

**DNS** edo **Domain Name System** **host-en izenak** eta **domeinu izenen** informazioa gordetzeko sistema bat da, hierarkizatutako eta banatutako datu-base sare moduko batean, Internet adibidez. Garrantzitsuena, host izen bakoitzeko IP helbide bat ematen du, eta domeinu bakoitzaren posta trukaketa zerbitzariak zerrendatzen ditu.

Honela, edozein sare-aplikaziok (bai bezero-zerbitzari eta baita P2P motakoek) makinak bilatzeko IP helbideak behar dituzte. Baina gizakiontzat askoz errazagoa da izenak ikastea IP helbideen ordez. Horrexegatik DNS zerbitzua existitzen da, gizakiok ezagutzen ditugun izen horietatik (adibidez www.google.com, www.yahoo.es etab.) haien makinei dagozkien IP helbideak lortzeko. Alderantzizko prozesua ere egin behar du DNS-k; hau da, IP helbide batetik domeinuaren izena lortzea.

DNS zerbitzariak, banatutako eta hierarkizatutako datu base bat erabiltzen du, non Internet bezalako sareetako domeinuen izenen informazioa gordetzen den. Hala izanik, nahiz eta DNS-k era askotako informazioa lotu dezakeen izen bakoitzarekin, erabilera arruntenak IP helbideentzat domeinuen izenak esleitzea eta domeinu bakoitzaren posta elektronikorako zerbitzariak lokalizatzea dira.

Askotan erabiltzen den analogia bat DNS azaltzeko, telefono-aurkibidearena da, zeinek pertsonen eta haien telefono zenbakien arteko lotura ezartzen duen. DNS-k, era berean, pertsonentzat egokiak diren domeinuen izenen eta hauei dagozkien IP helbideen arteko lotura ezartzen du. Adibidez, www.example.com domeinuaren izena 93.184.216.119 (IPv4) eta 2606:2800:220:6d:26bf:1447:1097:aa7 (IPv6) helbideetan itzultzen du. Telefono-aurkibidea ez bezala, DNS oso azkar berritu daiteke, zerbitzu baten kokapena sarean aldatzea baimenduz, erabiltzaileei eragin gabe, domeinuaren izenak bera izaten jarraituko duelako.

## Historia 
Hasiera batean, DNS jaio zen Internetera konektatutako zerbitzari guztien izenak era erraz batean gogoratu ahal izateko. Lehen, SRI-k (Stanford Research Institute, orain SRI International bilakatu dena), HOSTS izeneko fitxategi bat zuen, non ezagunak ziren domeinu guztien izenak zeuden. Sarearen hazkuntza ikaragarriak, ordea, domeinuen sistema zentralizatu hark praktikotasuna galtzea eragin zuen. Hau konpontzeko, 1983an Paul V. Mockapetrisek RFC 882 eta RFC 883 argitaratu zituen, gaur egun DNS bilakatu den sistemaren oinarriak ezarriz. (orain RFC horiek zaharkituak geratu dira 1987an RFC 1034 eta RFC 1035 argitaratu baitziren). Honek gaur egungo domeinuen kontzeptuak eta zonaldearen arabera mantentzen den sistema deszentralizatu baten hasiera ezarri zituen, eta antzeko mantendu dira 30 urtetan zehar.

1984ean, UC Berkeley-ko lau ikaslek —Douglas Terry, Mark Painter, David Riggle, eta Songnian Zhou— Unix-erako DNS inplementazio bat idatzi zuten, Berkeley Internet Name Domain (BIND) Server izenekoa. 1985ean, DEC-ko (Digital Equipment Corporation) Kevin Dunlap-ek, dezente berrikusi eta aztertu zuen DNS inplementazio hori. Mike Karels-ek, Phil Almquist-ek eta Paul Vixie-k BIND mantendu eta zaindu dute ordutik. BIND Windows NT plataformara eraman zen 1990ko hamarkadaren hasieran. BIND asko zabaldu zen, batez ere Unix sistemetan, eta oraindik ere Interneten dagoen DNS software zabalduena da.

## DNS domeinuak 
Interneteko konputagailuak domeinuen arabera elkartzen dira. Domeinu batean administratiboki lotuta dauden konputagailuak elkartzen dira. Domeinuak hierarkikoki eratzen dira, zuhaitz moduan. Domeinu batek azpi-domeinu ugari eduki ditzake, eta azpi-domeinuak ere hainbat azpi-domeinu eduki ditzake. Hurrengo irudian ikus daiteke adibide bat.

DNS arbol|400px

Domeinu izen oso bat tarteko etiketa guztien loturek osatzen dute. Etiketa horiek kate alfanumerikoak dira (‘-‘ dutelarik ikur baimendu bakartzat). Hauek gutxienez karaktere bat izan behar dute, eta 63 karaktereko luzera maximoa ezin dute pasa. Gainera, letra batez hasi beharko dira (eta ez ‘-‘ sinboloaz) RFC 1035-ak esaten duen bezala. Etiketak puntu batez egon behar dute banaturik. Azkenik, domeinu izen batek puntu batekin amaitu behar du, nahiz eta gehienetan hau ez den agertzen, formalismo huts bat baita. Adibidez, FQDN (Fully Qualified Domain Name) edo domeinu izen egoki bat www.example.com. da, amaierako puntua barne. Honetaz gain, domeinu osoak 255 karaktereko luzera maximoa du.

## DNS Erregistroak 
DNS erregistroen eremu nagusiak hauek dira:
[Type, Name, Value, TTL] hau da [Motaren identifikatzailea, Izena, Balioa, TTL].

Kasu honetan TTL-ak, erregistroa DNS cache-etan zenbat segundotan gordeko den adierazten du.
Izen eta Balio eremuen esanahia Mota eremuaren araberakoa da. Hauek dira Mota garrantzitsuenak, nahiz eta gehiago dauden:

• Mota = **A (Address)** denean:
**Izena** = Makinaren izen kanonikoa
**Balioa** = @ = IP helbide bat
Erregistro mota honek makina baten izena eta bere IP helbidea erlazionatzen ditu.
A motako erregistro bat honelakoa da [A,www.google.com, 173.194.40.63].
Konputagailu batek IP helbide bat baino gehiago izan ditzake, beraz, A motako erregistro bat baino gehiago izan ditzake.

• Mota = **CNAME (Canonic NAME)** denean:
**Izena** = Goitizen bat
**Balioa** = Izen kanonikoa
Makina baten goitizena eta izen kanonikoa lotzen ditu. CNAME motako erregistro bat honelakoa da [CNAME, www.google.com, google.com] edo [CNAME, mail.google.com, google.com].

• Mota = **NS (Name Server)** denean:
**Izena** = domeinu bat (.com, google.com)
**Balioa** = Domeinu horri buru galdetzeko DNS zerbitzari egokiena
Erregistro mota honek domeinu bat eta DNS zerbitzari baten izena lotzen ditu.
NS motako erregistro bat honelakoa da [NS, google.com, dns.google.com].

• Mota = **MX (Mail Exchange)** denean:
**Izena** = domeinu baten izena
**Balioa** = domeinu horri dagokion posta zerbitzari baten izena

• Mota = **SRW (Server)** denean: orokorrean aplikazio bati dagokion zerbitzariak identifikatzeko erabiltzen da.

## DNS Zerbitzariak 
DNS-k zerbitzari asko erabiltzen ditu, era hierarkikoan antolaturik, eta mundu osoan zehar banaturik. Ez dago munduko host guztien datuak dituen DNS zerbitzaririk. Horren ordez, datu horiek DNS zerbitzarien artean daude banaturik. Hasiera batean, hiru DNS zerbitzari mota daudela esan genezake: DNS erro-zerbitzaria (root servers), goi-mailako zerbitzariak (TLD Top Level Domain), eta jatorrizko zerbitzariak (authoritative server). Zerbitzari hauek era hierarkikoan (zuhaitz egitura) kokatzen dira, irudian ikus daitekeen bezala.

DNS zerbitzarien egitura|500px

Zerbitzari mota hauek nola egiten duten lan ulertzeko, suposa dezagun bezero batek www.nireherria.eu host-aren IP helbidea ezagutu nahi duela. Horretarako, lehenik eta behin bezeroak erro zerbitzari bati galdetzen dio, eta honek .eu motako TLD goi-mailako zerbitzariei dagozkien IP helbideak bueltatzen dizkio. Ondoren, bezeroak .eu TLD zerbitzari hauetako
bati galdetzen dio, eta honek nireherria.eu host-aren jatorrizko zerbitzari baten helbidea bueltatzen dio. Azkenik, bezeroak nireherria.eu host-aren jatorrizko zerbitzari bati galdetzen dio, eta honek www.nireherria.eu host-aren IP helbidea bueltatzen dio.

DNS protokoloaren funtzionamenduaren adibidea|600px

Hona hemen prozesuan parte hartzen duten hiru zerbitzari moten azalpenak:

• **DNS erro-zerbitzariak (root servers):** aplikazio batek ezin ditu domeinu guztien helbideak aurre-kargatuta eduki, gehiegi dira. Arazo honi aurre egiteko erro zerbitzariak daude. Hasiera batean 13 ziren eta gehienak Amerikan zeuden kokatuta. Gaur egun ordea mundu osoan zehar daude. Erro-zerbitzari denak kopiak dira, hau da, denek informazio bera dute. Hierarkiako mailan gorenean daude, zuhaitzeko erroak dira.

• **Goi-mailako zerbitzariak (TLD Top Level Domain):** lehen ikusi ditugun zerbitzariak. Domeinu hauen zerbitzariak beren azpi-domeinuetako zerbitzarien NS erregistroak dituzte. Hierarkiako bigarren mailan daude.

• **Jatorrizko zerbitzaria (authoritative server ):** zerbitzari hauek publikoki eskuragarri dauden makinen erregistroak gordetzen dituzte. Zerbitzari honek bere azpiko domeinuen eta makinen erregistroak gordetzen ditu. Multzo horri DNS barrutia (DNS Zone) deitzen zaio. Azpi-domeinu batek arrakasta handia duenean, erregistroa erraldoia bihurtzen bada, barrutia bi zatitan banatzen da.

## Erreferentziak 
* Redes de Computadores 5ºedicion - James F. Kurose & Keith W. Ross
* Redes de Computadoras 4ta edicion - Andrew S. Tanenbaum

## Kanpo estekak 
* http://www.techterms.com/definition/nameserver
* http://queue.acm.org/detail.cfm?id=1242499
* https://web.archive.org/web/20070311002618/http://www.sc.ehu.es/acwreco2/TCP_IP_Sareak/TCPIPSareak.html - TCP/IP Sareak - J.Mª. Rivadeneyra