Membangun DNS Server dengan djbdns

Abstract

DNS adalah sistem penamaan komputer yang terdistribusi. Sebagai alternatif pengganti BIND di mesin-mesin yang menjalankan sistem operasi turunan UNIX adalah djbdns. Meski konsep yang dijalankan berbeda tetapi mempunyai fungsi yang sama.


Daftar Isi
Pengantar
Instalasi djbdns
Setup tinydns
Setup dnscache
Setup axfrdns
Kata Akhir
Daftar Rujukan

Pengantar

DNS adalah penulisan singkat dari Domain Name System. Kadang-kadang diartikan sebagai Domain Name Server, jika sedang membahas server. DNS berfungsi untuk mengatur proses penerjemahan nama domain ke nomor IP atau sebaliknya. DNS adalah juga sistem database yang terdistribusi. Sehingga memungkinkan setiap bagian dari database dikelola secara terpisah.

DNS bekerja dengan konsep klien-server. Yang menjalankan fungsi sebagai server adalah server DNS. Di dunia *nix biasanya dipakai program yang bernama named dari paket BIND. Sedangkan di sisi klien disebut dengan resolver.

Database DNS mempunyai struktur yang mirip dengan pohon yang terbalik atau direktori dalam sistem operasi *nix. Struktur seperti ini bisa dilihat pada gambar 1.

dns.jpg

Kalau root direktori diberi lambang dengan karakter garis miring (/), dalam DNS root dilambangkan dengan karakter titik (.). Antara nama domain dan subdomain dipisahkan dengan karakter titik juga.

DNS memegang peranan penting dalam komunikasi melalui internet. Karena kita mengetahui komputer saling mengenal dan berkomunikasi memakai nomor IP. Sedangkan manusia lebih mudah berkomunikasi dengan nama. Sebagai contoh lebih mudah bagi kita mengirim email dengan alamat salman@openware.or.id, daripada salman@[202.159.11.155]. Demikian juga akan lebih mudah mengingat nama host www.salman.or.id dari pada nomor IPnya.

Jika Anda ingin lebih tahu lebih dalam mengenai Domain Name System ini, saya anjurkan untuk membaca DNS HOWTO tulisan Nicolai Langfeldt, Jamie Norris dkk. Buku karangan Paul Albitz dan Cricket Liu yang berjudul DNS and BIND sangat lengkap membahas teori dan cara kerja DNS. Dalam tulisan ini pembahasan lebih ditekankan pada pemakaian praktis, dengan asumsi pembaca sudah bisa bekerja dengan Linux dalam mode text. Ya! bukan grafik.

Paket djbdns adalah sekumpulan program aplikasi dengan ukuran kecil yang bisa disusun sesuai dengan kebutuhan. Perangkat lunak ini dibuat dengan kerangka berpikir yang mengutamakan keamanan dan unjuk kerja yang tinggi. Untuk membatasi pembahasan supaya tidak terlalu melebar, hanya akan dibahas tiga program aplikasi dalam paket djbdns, yaitu tinydns, dnscache, dan axfrdns. Pertimbangan yang diambil karena aplikasi ini yang paling sering dipakai.

Dalam lapisan-lapisan TCP/IP, tinydns bekerja di lapisan UDP bukan di lapisan TCP. Karena itu tinydns mempunyai response yang lebih cepat, akan tetapi mempunyai kelemahan panjang data yang bisa disampaikan sangat terbatas. Hal ini disebabkan protokol UDP tidak berorientasi pada koneksi, jadi agar bagian-bagian data tidak hilang harus dikirim dalam paket yang kecil.

Kesederhanaan dan optimasi database tinydns juga menyumbang pada unjuk kerja. Semua aplikasi dalam djbdns memakai database statik dalam format cdb. Akibatnya Anda harus selalu mengkonversi file text data DNS menjadi format cdb ini jika ada perubahan yang Anda lakukan terhadap data DNS. Akan tetapi Anda tidak perlu khawatir, yang perlu dilakukan untuk melakukan konversi ini hanyalah menjalankan perintah make.

Karena layanan DNS sangat penting, maka perlu adanya server cadangan yang melayani sebuah domain. Paket BIND menyediakan mekanisme penggandaan layanan dengan nama zone transfer. Layanan ini sudah dimasukkan dalam program utama yang bernama named.

Layanan yang sama, diimplementasikan di djbdns dengan menjalankan aplikasi terpisah. Program tersebut bernama axfrdns. Kalau tinydns berjalan di lapisan UDP dan mendengarkan pada port 53, maka axfrdns berjalan pada lapisan TCP dengan port yang sama. Sehingga kedua layanan ini bisa berjalan pada saat bersamaan. Dan biasanya kedua program ini mengambil data dari sumber yang sama, yaitu file /etc/tinydns/root/data.cdb.

Sebenarnya ada cara lain yang lebih bagus dan aman untuk membuat server DNS cadangan. Yaitu dengan cara menyalin setiap perubahan file data di server utama ke server-server cadangan tersebut. Anda bisa menggunakan program rsync atau scp. Dengan cara ini konsep zone transfer sudah tidak berlaku lagi.

Program ketiga yang akan kita bahas adalah dnscache. Program ini akan kita perlukan jika kita tidak ingin membangun dns server sendiri. Ia akan menyimpan setiap permintaan penerjemahan DNS yang didapatkan dari server-server DNS di internet. Jika dnscache menerima permintaan dari resolver, dia akan meneruskan ke server-server DNS di internet. Setelah jawaban yang benar didapatkan, kemudian akan disimpan ke dalam cache. Jika nanti ada resolver meminta penerjemahan nama dengan nama domain yang sudah ada dalam cache, maka akan diambilkan dari cache.