dnscache dan local dnsroot

Seperti yang telah kita ketahui, bahwa setiap permintaan DNS akan selalu melakukan query ke root server (di Bind adalah file named.root) untuk mencari nameserver yang sesuai dengan delegasi dari query tsb. Misalkan ada permintaan ke alamat www.postfix.or.id maka nameserver akan lookup ke root server, kemudian didapatkan data bahwa yang mengurusi TLD .id adalah nameserver dengan IP misalnya: 202.155.30.227 (ns1.id), 202.12.28.140 (sec3.apnic.net), 202.154.1.2 (ns1.rad.net.id) dan 202.159.32.2 (ns1.indo.net.id.). Baru kemudian nameserver melakukan query lagi ke salah satu server tersebut untuk mendapatkan data (RR) www.postfix.or.id (203.84.155.189).

Nah, kalau nameserver Anda adalah nameserver yang sibuk bagaimana pasti querynya juga banyak akhirnya menggunakan bandwidth. Bagaimana kalau kita bikin root nameserver di lokal saja untuk mengurangi query ke root server? Wah, boleh juga. Saratnya apa saja? Pastinya sudah ada dnscache dan tinydns yang terinstall. Lho kok masih butuh tinydns? Iya, buat mengelola data dns root lokal yang akan digunakan. Kalau begitu butuh IP satu lagi dong buat tinydns? Lha iya, tapi bisa pakai IP private kok, misalnya disini menggunakan IP: 127.53.0.1 . Jika semua siap kemudian buat sebuah file yang berisi script berikut ini :

#!/bin/sh
#
# Query semua delegasi root server setiap hari
# Email : asfik@its.ac.id

cd /tmp
/usr/local/bin/tcpclient f.root-servers.net 53
/usr/local/bin/axfr-get . /tmp/root.orsc
/tmp/root.orsc.tmp
cat /tmp/root.orsc | /usr/sbin/cleanup > /tmp/data
mv -f /tmp/data /etc/tinydns/root/
cd /etc/tinydns/root/
make > /dev/null 2>&1

Kemudian :

  • Asumsi tinydns sudah listen di IP 127.53.0.1 dan root data berada didirektori /etc/tinydns/root/
  • Jalankan script diatas, kalau OK, Anda akan mendapatkan data di file /etc/tinydns/root/data
  • Ubah alamat root nameserver yang digunakan oleh dnscache (biasanya di file /service/dnscache/root/servers/@) untuk menggunakan local dns root (127.53.0.1)
  • Selesai

Link :  http://www.layangan.com