dnscache dan local dnsroot

By asfik

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 sudah ada maka:

  • Asumsi tinydns sudah listen di IP 127.53.0.1 dan root data berada didirektori /etc/tinydns/root/
  • Download data dari r.root-servers.net (ini ada di Indonesia lho) dengan script 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
  • 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

Semoga bermanfaat. Amin

Tag:

Tinggalkan Balasan