DNS adalah suatu bentuk database yang terdistribusi, dimana pengelola secara lokal terhadap suatu data akan segera diteruskan ke seluruh jaringan (jaringan) dengan menggunakan skema client-server. Suatu program yang dinamakan name server, mengandung semua segmen informasi dari database dan juga merupakan resolver bagi client-client yang berhubungan atau menggunakannya.
Struktur dari database DNS bisa diibaratkan dengan struktur file dari sebuah sistem operasi Unix. Seluruh database digambarkan sebagai sebuah struktur terbalik dari sebuah pohon (tree) dimana pada puncaknya disebut dengan root node. Pada setiap node dalam tree tersebut mempunyai keterangan (label) misalnya, .org, .edu, .com, .net, .id dan lain sebagainya, yang relatif terhadap puncaknya. Ini bisa diibaratkan dengan relative pathname pada sistem file Unix, seperti direktori bin, usr, var, etc dan lain sebagainya. Pada puncak root node dalam sebuah sistem DNS dinotasikan dengan “.” atau “/” pada sistem file UNIX.
Pada setiap node juga merupakan root dari subtree, atau pada sistem file UNIX merupakan root direktori dari sebuah direktori. Hal ini pada sistem DNS disebut dengan nama domain. Pada tiap domain juga memungkinkan nama subtree dan bisa berbeda pula, hal ini disebut subdomain atau subdirektori pada sistem file UNIX. Pada bagian subdomain juga memungkinkan adanya subtree lagi yang bisa dikelola oleh organisasi yang berbeda dengan domain utamanya.
Cara kerja DNS
DNS bekerja dengan konsep client server, sebuah komputer yang menjalankan fungsi server disebut DNS atau name server dan komputer lain meminta penerjemahan hostname ke ip address disebut client DNS. DNS juga merupakan sistem database yang terdistribusi, sehingga memungkinkan setiap bagian dari database dikelola secara terpisah. DNS umumnya diterapkan dengan menggunakan server terpusat yang disebut server DNS atau name server yang memiliki wewenang atau otoritas dalam mengelola beberapa nama domain dan mengacu ke beberapa domain lainnya yang dikelola server DNS lain. Ketika komputer client meminta informasi ip address suatu hostname ke name server, biasanya melalui port 53, kemudian name server mencoba menerjemahkan berdasarkan library resolv nya, apakah hostname merupakan nama domain yang dikelola oleh name server dan name server memberikan jawaban berdasarkan cache dari data informasi yang sama yang pernah ditanyakan sebelumnya dan berhasil dijawab.
BIND sebagai server DNS (name server)
BIND (Berkeley Internet Name Domain) adalah salah satu aplikasi server DNS yang menjadi default aplikasi DNS dalam semua distribusi linux. Paket BIND itu berisi program server DNS yaitu /usr /bin/named yang bertanggung jawab dalam merespon pertanyaan client DNS, paket ini perlu kita install dan mengkonfigurasinya.
Nah, sekarang melakukan Percobaan DNS Server
1. Menginstall BIND9
$ apt-get install bind bind9-doc dnsutils
2. edit file pada /etc/resolv.conf
$ vim /etc/resolv.conf
3. edit nama hostname pada direktori /etc/hostname
$ vim /etc/hostname
4. konfigurasi file host.conf pada direktori /etc/hosts
$ vim /etc/hosts
5. mengkonfigurasi file-file yang dibawa oleh BIND
a. pada direktori /etc/bind/named.conf
$ vim /etc/bind/named.conf
b. pada direktori /etc/bind/named.conf.local
$ vim /etc/bind/named.conf.local
c. pada direktori /etc/bind/named.conf.options
$ vim /etc/bind/named.conf.options
d. buat file /etc/bind/db.0 dengan konfigurasi dibawah ini
$ vim /etc/bind/db.0
e. buat file /etc/bind/db.127 dengan konfigurasi dibawah ini
$ vim /etc/bind/db.127
f. buat file /etc/bind/db.255 dengan konfigurasi dibawah ini
$ vim /etc/bind/db.255
g. buat file /etc/bind/db.root dengan konfigurasi dibawah ini
$ vim /etc/bind/db.root
i. buat file /var/cache/bind/db.192.168.254 dengan konfigurasi dibawah ini
$ vim /var/cache/bind/db.192.168.254
j. buat file /var/cache/bind/db.testing dengan konfigurasi dibawah ini
$ vim /var/cache/bind/db.testing
Jadi kesimpulannya DNS adalah hasil pengembangan dari metode pencarian hostname terhadap IP address di internet. Pada DNS client (resolver) mengirimkan queries ke name server (DNS). Name server akan menerima permintaan dan memetakan nama komputer ke IP address. Domain Name Space adalah pengelompokkan secara hirarki yang tebagi atas root-level domains, top-level domains, second-level domains, dan hostname.