DNS terlalu penting untuk diabaikan, untuk urusan Internet dan berselancar di World Wide Web. Biasanya koneksi internet dengan dhcp di sebuah LAN dengan proxy sudah memberikan dns server default yang dijadikan acuan. Alamatnya bisa berupa alamat ip dari DNS Server di dalam LAN sendiri atau alamat ip dari penyedia jasa layanan Internet. Yang menyebalkan, ketika menggunakan DNS server yang digunakan ISP (penyedia jasa layanan internet) dimana sering sekali DNS server ISP terlalu lama merespon query alamat domain tertentu di internet. Ini bukan tak mungkin terjadi, karena DNS server ISP juga malayani pelanggan lain (jaringan-jaringan lain) sekaligus barangkali juga layanan publikasi alamat-alamat pelanggan-pelanggan jasa colocation dan hostingnya. Oleh karena itu saya lebih sering mengkonfigurasi DNS server sendiri untuk LAN atau menggunakan layanan OpenDNS. Dan untuk urusan desktop, pilihan tertinggi saya adalah setup DNS server sendiri untuk digunakan hanya oleh desktop saya sendiri.
Saturday, October 24. 2009
Setup DNSCache Ubuntu 9.04
DJBDNS
DJBDNS adalah DNS Server yang dikembangkan oleh DJ Bernstein. DJBDNS dijalankan sebagai service dengan daemontools (yang juga dibuat oleh DJ Bernstein), berukuran kecil tapi mampu melayani query lebih baik daripada BIND (DNS Server lain yang populer lebih , sebagai DNS Cache dan DNS publisher (tinydns). Setup DJBDNS sebagai dnscache di Ubuntu, hanya butuh waktu kurang dari 10 menit. Sebelum di Ubuntu, setup terakhir DNS Server yang pernah saya kerjakan adalah pada platform Debian Sarge dan Etch. Di Debian tersebut sebenarnya tidak dalam bentuk langsung binary terkompilasi, tetapi berupa source untuk dikompilasi terlebih dahulu sebelum dapat dikonfigurasikan. Ada 3 paket yang dibutuhkan untuk diinstalasikan sebagai DNS Cache di Ubuntu: djbdns, daemontools dan ucspi-tcp.
Sejak dirilis bertahun lalu DJBDNS hanya sekali di-patch. DJ Bernstein sendiri saat rilisnya mengumumkan akan memberikan sejumlah uang jika ada yang bisa menguliti celah keamanan DJBDNS. Meski begitu DJBDNS pernah sekali di-patch, oleh DJ Bernstein sendiri. Pada Ubuntu pake DJBDNS tersedia dalam bentuk binary, jadi untuk implementasi itu adalah paket sebelum di-patch. Jika ingin mem-patch-nya bisa dengan kompilasi source DJBDNS sendiri, sedikit jalan memutar tapi tahu pasti dengan paket yang akan kita gunakan. Cara lain adalah instalasi paket dbndns, yaitu paket DJBDNS binary terkompilasi dengan patch-nya sekaligus. Maka yang saya lakukan adalah sebagai berikut:
Sebelum instalasi DJBDNS yang akan dijalankan dengan daemontools sebaiknya kita perlu membuat dulu /etc/inittab. File ini sebenarnya sudah tidak digunakan lagi oleh Ubuntu, karena Ubuntu telah mengajukan /etc/event.d/ untuk menggantikan /etc/inittab, tetapi instalasi DJBDNS standar masih mencari file /etc/inittab. Dan jika tidak menemukannya maka instalasi dianggap error atau failed. Jadi kita sendiri yang harus membuatnya:
Lalu kita persiapkan file /etc/event.d/svscan untuk memeriksa semua service yang perlu dijalankan oleh daemontools. Berikut ini adalah isi file /etc/event.d/svscan
Dengan adanya /etc/event.d/svscan, daemontools akan memeriksa semua program yang diletakkan di dalam /etc/service dan menjalankannya sampai ada perintah stop.
Konfigurasi DJBDNS
DJBDNS membedakan dns publisher (tinydns) dan dns resolver (dnscache). Pembedaan ini untuk alasan keamanan. Bandingkan dengan BIND yang menggunakan service yang sama untuk melayani query alamat dan publikasi nama domain sekaligus. Pembedaan pada DJBDNS ini Untuk mengkonfigurasi DJBDNS di desktop, kita hanya perlu gunakan ip localhost: 127.0.0.1, dan mengkonfigurasi DJBDNS untuk bekerja pada ip address tersebut. Siapkan user tanpa group yang akan menjalankan service tersebut dan mencatat lognya.
Untuk melihat apakah dnscache kita telah bekerja maka bisa dilihat dengan:
Jika sesekali kita ingin me-restart dnscache tersebut lakukan perintah ini:
Jika PC/Laptop kita telah terhubung dengan internet baik melalui LAN atau modem, maka dns server kita dapat difungsikan dengan mengubah isi file /etc/resolv.conf:
Jika kita menggunakan modem dan Network Manager maka biasanya Network Manager akan menulis sendiri isi file /etc/resolv.conf sesuai konfigurasi dari DHCP server. Jadi kia harus mengeditnya secara manual.
Untuk meyakinkan bahwa dnscache tersebut sudah bekerja dengan baik coba lakukan ping ke alamat domain tertentu:
Jika ada respon baik, maka dnscache telah bekerja dengan baik. Lebih meyakinkan lagi, pada saat melakukan ping ke alamat domain tertentu, lakukan pengamatan pada log dnscache dengan membuka terminal baru dan lakukan:
Hasilnya haruslah pergerakan log atau proses query, pada saat kita melakukan ping ke domain tertentu.
Kesimpulan
Dnscache adalah salah satu bagian saja dari paket DJBDNS. Paket lainya adalah tinydns, bagian DJBDNS yang berfungsi sebagai dns publisher (dns server yang mempublikasikan ip-ip kita sebagai alamat-alamat domain FQDN - Fully Qualified Domain Name). Masih ada pula yang lainnya. Tapi tinydns dan dnscache adalah 2 bagian yang terpenting dari DJBDNS, dan bekerja pada protokol udp port 53. Dengan memilki dnscache lokal sendiri, kita tak terlalu tergantung pada dns server yang diberikan oleh ISP (internet service provider) atau operator telpon modem (ADSL, GSM, CDMA) kita. Kita menyimpan alamat-alamat domain internet sendiri dalam database kecil dnscache. Ukuran default database tersebut 1 MB dan penggunaan CPU/Memory yang sangat minim. Jadi jika sebelumnya kita mengetik alamat domain tertentu, kita perlu menunggu dulu respon dns server untuk menuntun ke ip address alamat domain tersebut, maka setelah punya dnscache lokal, semua sudah dijawab oleh PC/Laptop kita sendiri. Cepat, sederhana dan efisien.
Catatan Update
Catatan ini saya tambahkan setelah saya upgrade Jaunty ke Karmic. Setup DNSCache lokal menjadi jauh lebih mudah dan cepat. yang perlu kita lakuakn setelah Karmic siap hanyalah 2 langkah:
Maka DNSCache kita telah siap digunakan, asal kita terhubung ke internet, lewat koneksi 3G atau LAN, maka DNSCache kita telah siap melayani permintaan alamat-alamat domain yang kita butuhkan. Agen kecil yang membuat kita tak tergantung dengan DNS ISP operator 3G atau ISP leased line di kantor/kampus yang sering lemot. Inilah termasuk yang membuat Ubuntu jadi distro andalan desktop.
DJBDNS adalah DNS Server yang dikembangkan oleh DJ Bernstein. DJBDNS dijalankan sebagai service dengan daemontools (yang juga dibuat oleh DJ Bernstein), berukuran kecil tapi mampu melayani query lebih baik daripada BIND (DNS Server lain yang populer lebih , sebagai DNS Cache dan DNS publisher (tinydns). Setup DJBDNS sebagai dnscache di Ubuntu, hanya butuh waktu kurang dari 10 menit. Sebelum di Ubuntu, setup terakhir DNS Server yang pernah saya kerjakan adalah pada platform Debian Sarge dan Etch. Di Debian tersebut sebenarnya tidak dalam bentuk langsung binary terkompilasi, tetapi berupa source untuk dikompilasi terlebih dahulu sebelum dapat dikonfigurasikan. Ada 3 paket yang dibutuhkan untuk diinstalasikan sebagai DNS Cache di Ubuntu: djbdns, daemontools dan ucspi-tcp.
Sejak dirilis bertahun lalu DJBDNS hanya sekali di-patch. DJ Bernstein sendiri saat rilisnya mengumumkan akan memberikan sejumlah uang jika ada yang bisa menguliti celah keamanan DJBDNS. Meski begitu DJBDNS pernah sekali di-patch, oleh DJ Bernstein sendiri. Pada Ubuntu pake DJBDNS tersedia dalam bentuk binary, jadi untuk implementasi itu adalah paket sebelum di-patch. Jika ingin mem-patch-nya bisa dengan kompilasi source DJBDNS sendiri, sedikit jalan memutar tapi tahu pasti dengan paket yang akan kita gunakan. Cara lain adalah instalasi paket dbndns, yaitu paket DJBDNS binary terkompilasi dengan patch-nya sekaligus. Maka yang saya lakukan adalah sebagai berikut:
#apt-get update
Sebelum instalasi DJBDNS yang akan dijalankan dengan daemontools sebaiknya kita perlu membuat dulu /etc/inittab. File ini sebenarnya sudah tidak digunakan lagi oleh Ubuntu, karena Ubuntu telah mengajukan /etc/event.d/
#touch /etc/inittab
#apt-get install dbndns daemontools daemontool-run ucspi-tcp
Lalu kita persiapkan file /etc/event.d/svscan untuk memeriksa semua service yang perlu dijalankan oleh daemontools. Berikut ini adalah isi file /etc/event.d/svscan
# svscan - daemontools
# This service starts daemontools from the point the system is
# started until it is shut down again.
start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5
stop on runlevel 0
stop on runlevel 1
stop on runlevel 6
respawn
exec /usr/bin/svscanboot
Dengan adanya /etc/event.d/svscan, daemontools akan memeriksa semua program yang diletakkan di dalam /etc/service dan menjalankannya sampai ada perintah stop.
Konfigurasi DJBDNS
DJBDNS membedakan dns publisher (tinydns) dan dns resolver (dnscache). Pembedaan ini untuk alasan keamanan. Bandingkan dengan BIND yang menggunakan service yang sama untuk melayani query alamat dan publikasi nama domain sekaligus. Pembedaan pada DJBDNS ini Untuk mengkonfigurasi DJBDNS di desktop, kita hanya perlu gunakan ip localhost: 127.0.0.1, dan mengkonfigurasi DJBDNS untuk bekerja pada ip address tersebut. Siapkan user tanpa group yang akan menjalankan service tersebut dan mencatat lognya.
Lalu konfigurasikan dns resolver/dnscache:
#useradd -g nogroup Gdnscache
#useradd -g nogroup Gdnslog
#dnscache Gdnscache Gdnslog /etc/dnscache
#ln -s /etc/dnscache /etc/service/dnscache
Untuk melihat apakah dnscache kita telah bekerja maka bisa dilihat dengan:
#svstat /etc/service/dnscache
Jika sesekali kita ingin me-restart dnscache tersebut lakukan perintah ini:
#svc -t /etc/service/dnscache
Jika PC/Laptop kita telah terhubung dengan internet baik melalui LAN atau modem, maka dns server kita dapat difungsikan dengan mengubah isi file /etc/resolv.conf:
nameserver 127.0.0.1
Jika kita menggunakan modem dan Network Manager maka biasanya Network Manager akan menulis sendiri isi file /etc/resolv.conf sesuai konfigurasi dari DHCP server. Jadi kia harus mengeditnya secara manual.
Untuk meyakinkan bahwa dnscache tersebut sudah bekerja dengan baik coba lakukan ping ke alamat domain tertentu:
#ping www.yahoo.com
#ping www.google.com
Jika ada respon baik, maka dnscache telah bekerja dengan baik. Lebih meyakinkan lagi, pada saat melakukan ping ke alamat domain tertentu, lakukan pengamatan pada log dnscache dengan membuka terminal baru dan lakukan:
#tail -f /etc/service/dnscache/log/main/current
Hasilnya haruslah pergerakan log atau proses query, pada saat kita melakukan ping ke domain tertentu.
Kesimpulan
Dnscache adalah salah satu bagian saja dari paket DJBDNS. Paket lainya adalah tinydns, bagian DJBDNS yang berfungsi sebagai dns publisher (dns server yang mempublikasikan ip-ip kita sebagai alamat-alamat domain FQDN - Fully Qualified Domain Name). Masih ada pula yang lainnya. Tapi tinydns dan dnscache adalah 2 bagian yang terpenting dari DJBDNS, dan bekerja pada protokol udp port 53. Dengan memilki dnscache lokal sendiri, kita tak terlalu tergantung pada dns server yang diberikan oleh ISP (internet service provider) atau operator telpon modem (ADSL, GSM, CDMA) kita. Kita menyimpan alamat-alamat domain internet sendiri dalam database kecil dnscache. Ukuran default database tersebut 1 MB dan penggunaan CPU/Memory yang sangat minim. Jadi jika sebelumnya kita mengetik alamat domain tertentu, kita perlu menunggu dulu respon dns server untuk menuntun ke ip address alamat domain tersebut, maka setelah punya dnscache lokal, semua sudah dijawab oleh PC/Laptop kita sendiri. Cepat, sederhana dan efisien.
Catatan Update
Catatan ini saya tambahkan setelah saya upgrade Jaunty ke Karmic. Setup DNSCache lokal menjadi jauh lebih mudah dan cepat. yang perlu kita lakuakn setelah Karmic siap hanyalah 2 langkah:
- apt-get update && apt-get install dbndns daemontools-run dnscache-run ucspi-tcp
- echo 'nameserver 127.0.0.1' > /etc/resolv.conf
Maka DNSCache kita telah siap digunakan, asal kita terhubung ke internet, lewat koneksi 3G atau LAN, maka DNSCache kita telah siap melayani permintaan alamat-alamat domain yang kita butuhkan. Agen kecil yang membuat kita tak tergantung dengan DNS ISP operator 3G atau ISP leased line di kantor/kampus yang sering lemot. Inilah termasuk yang membuat Ubuntu jadi distro andalan desktop.
Posted by Meta Nurwidyanto
in Linux
at
16:26
| Comments (0)
| Trackbacks (0)
View as PDF: This entry | This month | Full blog
View as PDF: This entry | This month | Full blog
Trackbacks
Trackback specific URI for this entry
No Trackbacks

