Awalnya, sistem penamaan alamat IP menggunakan sistem host table. Di dalam sistem ini, setiap komputer memiliki file host.txt yang berisi daftar daftar alamat IP dan nama host yang terhubung ke internet. Karena internet semakin berkembang, sistem host table tidak efektif mengatasi permasalahan tersebut .
Akhirnya pada tahun 1984 Paul Mockapetris mengusulkan sistem database terdistribusi dengan nama Domain Name System (DNS) yang dideskripsikan dalam RFC 882 dan 883. Sistem ini digunakan sampai sekarang pada jaringan khususnya Internet.
Pengertian DNS (Domain Name System)
Domain Name System (DNS) merupakan sistem berbentuk database terdistribusi yang akan memetakan/mengkonversikan nama host/mesin/domain ke alamat IP (Internet Protocol) dan sebaliknya.
Struktur database DNS berbentuk hierarki atau pohon yang memiliki beberapa cabang. Cabang-cabang ini mewakili domain, dan dapat berupa host, subdomain, ataupun top level domain.
Domain teratas adalah root. Domain ini diwakili oleh titik. Selanjutnya, domain yang terletak tepat di bawah root disebut top level domain. Beberapa contoh top level domain ini antara lain com, edu, gov, dan lain-lain. Turunan dari top level domain disebut subdomain. Domain yang terletak setelah top level domain adalah second level domain, dan domain yang berada di bawah second level domain disebut third level domain, begitu seterusnya
Mesin DNS bisa menggunakan Server OS Windows server yang dijadikan mesin DNS atau sebuah Server dengan OS Linux dengan menjalankan daemon seperti BIND (Berkeley Internet Name Domain) / DJBDNS yang sering digunakan, hampir 75 % implemetasi DNS menggunakan BIND.
Ada tiga belas (13) root server utama yang disebar ke seluruh dunia dan dibagi-bagi untuk melayani area negara tertentu, generic Top Level Domain (gTLD) tertentu atau blok IP Address tertentu. Antara satu root server ini dengan yang lain saling terhubung dan saling memperbaharui datanya masing-masing (www.rootservers.org).
Cara Kerja DNS (Domain Name System)
Secara sederhana cara kerja DNS bisa dilihat pada gambar berikut ini:
DNS menggunakan relasi client – server untuk resolusi nama. Pada saat client mencari satu host, maka ia akan mengirimkan query ke server DNS. Query adalah satu permintaan untuk resolusi nama yang dikirimkan ke server DNS.
Pada komputer Client, sebuah program aplikasi misalnya http, meminta pemetaan IP Address (forward lookup query). Sebuah program aplikasi pada host yang mengakses domain system disebut sebagai resolver, resolver menghubungi DNS server, yang biasa disebut name server.
Name server meng-cek ke local database, jika ditemukan, name server mengembalikan IP Address ke resolver jika tidak ditemukan akan meneruskan query tersebut ke name server root server.
Terakhir barulah si client bisa secara langsung menghubungi sebuah website / server yang diminta dengan menggunakan IP Address yang diberikan oleh DNS server.
Jika permintaan tidak ada pada database, name server akan menghubungi server root dan server lainnya dengan cara sebagai berikut :
Saat kita mengetikkan sebuah nama domain misalnya http://www. kpk.cs.anti_koruptor.edu pada web browser, maka aplikasi http (resolver) akan mengirimkan query ke Name Server DNS Server local atau DNS Server Internet Service Provider.
Awalnya name server akan menghubungi server root. Server root tidak mengetahui IP Address domain tersebut, ia hanya akan memberikan IP Address server edu.
Selanjutnya name server akan bertanya lagi pada server edu berpa IP Address domain kpk.cs.anti_koruptor.edu. Server edu tidak mengetahui IP Address domain tersebut, ia hanya akan memberikan IP Address server anti_koruptor.edu.
Selanjutnya name server akan bertanya ke server anti_koruptor.edu tentang IP Address kpk.cs.anti_koruptor.edu. Dan server anti_koruptor.edu hanya mengetahui dan memberikan jawaban berupa IP Address server cs.anti_koruptor.edu
Selanjutnya name server akan bertanya ke server cs.anti_koruptor.edu tentang IP Address kpk.cs.anti_koruptor.edu. Dan barulah cs.anti_koruptor.edu mengetahui dan menjawab berapa IP Address domain kpk.cs.anti_koruptor.edu.
Terakhir barulah computer client bisa secara langsung menghubungi domain kpk.cs.anti_koruptor.edu dengan menggunakan IP Address yang diberikan oleh server cs.anti_koruptor.edu.
IP Address milik kpkcs.anti_koruptor.edu kemudian akan disimpan sementara oleh DNS server Anda untuk keperluan nanti. Proses ini disebut caching, yang berguna untuk mempercepat pencarian nama domain yang telah dikenalnya.