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

hierarki dns
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:

cara kerja-dns
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.
  1. 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.
  2. 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.
  3. 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 :
 recursive query dns
  1. Saat kita mengetikkan sebuah nama domain misalnya http://www. neon.cs.virginia.edu pada web browser,  maka aplikasi http (resolver) akan mengirimkan query ke Name Server DNS Server local atau DNS Server Internet Service Provider.
  2. Awalnya name server akan menghubungi server root. Server root tidak mengetahui IP Address domain tersebut, ia hanya akan memberikan IP Address server edu.
  3. Selanjutnya name server akan bertanya lagi pada server edu berpa IP Address domain neon.cs.virginia.edu.  Server edu tidak mengetahui IP Address domain tersebut, ia hanya akan memberikan IP Address server virginia.edu.
  4. Selanjutnya name server akan bertanya ke server virginia.edu tentang  IP Address neon.cs.virginia.edu. Dan server virginia.edu hanya mengetahui dan memberikan jawaban berupa  IP Address server cs.virginia.edu
  5. Selanjutnya name server akan bertanya ke server cs.virginia.edu tentang  IP Address neon.cs.virginia.edu. Dan barulah cs.virginia.edu mengetahui dan menjawab berapa IP Address domain neon.cs.virginia.edu.
  6. Terakhir barulah computer client bisa secara langsung menghubungi domain neon.cs.virginia.edu dengan menggunakan IP Address yang diberikan oleh server cs.virginia.edu.
  7. IP Address milik neon.cs.virginia.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.