Wednesday, November 25, 2009

Install DNS Server di Lokal PC - Windows XP

DNS adalah servis yang melayani permintaan untuk konversi nama domain jadi ip address, dengan adanya DNS ini kita gak repot ngapalin ip address yg berupa angka-angka untuk mengakses suatu situs. sehingga kita cukup memasukan alamat berupa kata-kata yg mudah diingat di browser. DNS diperlukan jika kita terkoneksi ke internet. Untuk membuat DNS Server biasanya kita harus mengunakan OS server seperti windows 2003 Server untuk yang berbasis windows, dan kebanyakan dari distro linux.

Intinya DNS server bertanggung jawab atas kecepatan pengaksesan suatu domain untuk mengetahui IP dari domain tsb. Jika DNS server berada diluar jaringan maka untuk mengaksesnya akan lebih lambat daripada berada pada jaringan lokal atau sistem kita sendiri.

Misal yg pake speedy atau ISP yang lain, mungkin pernah koneksinya gagal karena gak bisa menemukan IP dari suatu Domain, atau browsing sangat lambat itu karena kegagalan DNS Server untuk menjawab permohonan konversi IP dari client. Penyebabnya adalah Server sibuk, jaringan padat atau mungkin server tidak stabil.

Disini akan dibahas cara untuk membuat DNS sendiri di Windows XP, sebagai DNS alternatif (bahkan preffered DNS) bila sewaktu-waktu DNS server ISP kita sedang sibuk, sehingga tidak mempengaruhi kecepatan browsing. Dan kita juga tidak perlu mengandalkan Open DNS yg biasanya lebih lambat.

Kombinasi antara BIND (DNS Server) dan Squid (proxy server) pada local system adalah ide yg sangat bagus.. ditambahkan traffic shapping bila perlu

1. Download BIND v9.5.0
2. Extract
3. Buka BINDInstall.exe, lihat screen dibawah :



4. Kamu bisa merubah-ubah target directory sesuai yg diinginkan, tapi sebaiknya jika belum terlalu paham konfigurasinyabisa diinstal di default foldernya.

5. Masuk ke C:\WINDOWS\system32\dns\etc\ (Asumsi windows ada di C:)

6. Buat file named.conf, edit dengan notepad :

acl "trusted" {
localhost;
192.168.0.0/16;
};
acl "bogusips" {
0.0.0.0/8;
1.0.0.0/8;
2.0.0.0/8;
192.0.2.0/24;
224.0.0.0/3;
169.254.0.0/16;
};
options {
allow-transfer { none; };
allow-query { trusted; };
allow-recursion { trusted; };
blackhole { bogusips; };
directory "c:\windows\system32\dns\etc";
listen-on { 127.0.0.1; }; #listen only on localhost
forwarders { 202.x.x.x; 202.x.x.x; }; #masukin dns provider masing2
forward first;
recursion yes;
};
logging {
channel queries_log {
file "c:\windows\system32\dns\etc\queries.log";
print-severity yes;
print-time yes;
};
category queries { queries_log ; };
};
zone "." {
type hint;
file "named.root";
};
zone "localhost." IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa." IN {
type master;
file "localhost.rev";
allow-update { none; };
};
include "c:\windows\system32\dns\etc\rndc.key";

7. Buka console, pindah ke direktori c:\windows\system32\dns\bin
setelah itu ketik perintah dig.exe @a.root-servers.net . ns > named.root

perintah di atas akan menghasilkan file named.root yg berisi record2 root zone

ketik ..\bin\rndc-confgen.exe -a

perintah di atas akan menghasilkan file rndc.key


8. buat file dengan nama localhost.zone di \system32\dns\etc\ isikan :

$TTL 86400
@ IN SOA @ root (
42 ; serial
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS @
IN A 127.0.0.1

9. buat juga file dengan nama localhost.rev di \system32\dns\etc\ isikan :

$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.

10. Untuk ngecek konfignya udah bener ato belum, buka console, pindah ke direktori c:\windows\system32\dns\bin, lalu ketik :

named-checkconf.exe

kalo gak keluar apa-apa berarti kitanggap konfigurasi BIND udah bener.

11. Jalanin service bind-nya :

start-> run->ketik services.msc->enter, cari service yg bernama ISC BIND, select, klik kanan, start.

12. Setting DNS di TCP/IP jadi 127.0.0.1 atau 192.168.1.2

13. Kalo udah bisa kita cek dengan console, (masih di directory c:\windows\system32\dns\bin), ketik :

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

F:\WINDOWS\system32\dns\bin>dig.exe @127.0.0.1 www.indowebster.web.id ns

; <<>> DiG 9.5.0 <<>> @127.0.0.1 www.indowebster.web.id ns
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1949
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;www.indowebster.web.id. IN NS

;; AUTHORITY SECTION:
indowebster.web.id. 360 IN SOA ns1.afraid.org. dnsadmin.afraid.
org. 902210001 86400 7200 3600000 3600

;; Query time: 1093 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Mar 09 02:14:25 2009
;; MSG SIZE rcvd: 99

kita ulangi lagi command tadi :


F:\WINDOWS\system32\dns\bin>dig.exe @127.0.0.1 www.indowebster.web.id ns

; <<>> DiG 9.5.0 <<>> @127.0.0.1 www.indowebster.web.id ns
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 309
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;www.indowebster.web.id. IN NS

;; AUTHORITY SECTION:
indowebster.web.id. 330 IN SOA ns1.afraid.org. dnsadmin.afraid.
org. 902210001 86400 7200 3600000 3600

;; Query time: 5 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Mar 09 02:14:55 2009
;; MSG SIZE rcvd: 99


F:\WINDOWS\system32\dns\bin>

kali ini hasil querynya 5 msec, jauh lebih cepat dari yg pertama artinya resolver kita sudah berhasil meng-cache hasil query dns.

Untuk yg pake squid, tinggal ganti dns-nya di tag berikut :

TAG dns_nameservers

dns_nameservers 127.0.0.1 # edit jadi kek gini.