Tanya :
Bagaimana membuat DNS Server yang bisa digunakan untuk publik, dalam arti ketika mereka mengunjungi sebuah domain, server DNS kita yang menjadi resolver IP-nya ?
Jawab :
Setelah di tutorial sebelumnya kita membahas secara sederhana prinsip kerja DNS lewat sebuah praktek sederhana. Di tutorial kedua ini kita akan “menyalin” alamat-alamat IP dari website terkenal ke DNS Server lokal yang kita miliki.
Contoh dalam kasus ini adalah kita akan mendaftarkan website google.com ke DNS Server yang kita miliki.
Seperti biasa tambahkan di file named.conf.local, forward zone untuk google.com :
zone "google.com" { type master; file "/etc/bind/db.google.com"; };
Lalu kita buat file db.google.com.
Tapi sebelumnya kita akan mencari informasi terlebih dahulu tentang name server dan IP google.com dengan bermodalkan perintah dig, dan host.
Mari kita coba beberapa opsi di perintah dig :
dig google.com akan menampilkan hasil seperti :
; <<>> DiG 9.7.3 <<>> google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62769 ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;google.com. IN A ;; ANSWER SECTION: google.com. 300 IN A 209.85.175.103 google.com. 300 IN A 209.85.175.105 google.com. 300 IN A 209.85.175.106 google.com. 300 IN A 209.85.175.104 google.com. 300 IN A 209.85.175.147 google.com. 300 IN A 209.85.175.99 ;; Query time: 70 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Fri May 6 16:14:50 2011 ;; MSG SIZE rcvd: 124
dig -x google.com akan menampilkan hasil seperti :
; <<>> DiG 9.7.3 <<>> -x google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 1548 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;com.google.in-addr.arpa. IN PTR ;; AUTHORITY SECTION: in-addr.arpa. 616 IN SOA b.in-addr-servers.arpa. nstld.iana.org. 2011022526 1800 900 604800 3600 ;; Query time: 70 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Fri May 6 16:15:15 2011 ;; MSG SIZE rcvd: 109
dig any google.com akan menampilkan hasil seperti berikut :
; <<>> DiG 9.7.3 <<>> any google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11011 ;; flags: qr rd ra; QUERY: 1, ANSWER: 17, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;google.com. IN ANY ;; ANSWER SECTION: google.com. 141 IN A 209.85.175.106 google.com. 141 IN A 209.85.175.99 google.com. 141 IN A 209.85.175.147 google.com. 141 IN A 209.85.175.104 google.com. 141 IN A 209.85.175.105 google.com. 141 IN A 209.85.175.103 google.com. 441 IN MX 50 alt4.aspmx.l.google.com. google.com. 86241 IN SOA ns1.google.com. dns-admin.google.com. 1449636 7200 1800 1209600 300 google.com. 441 IN MX 20 alt1.aspmx.l.google.com. google.com. 86241 IN NS ns1.google.com. google.com. 86241 IN NS ns4.google.com. google.com. 441 IN MX 40 alt3.aspmx.l.google.com. google.com. 441 IN MX 10 aspmx.l.google.com. google.com. 441 IN MX 30 alt2.aspmx.l.google.com. google.com. 86241 IN NS ns2.google.com. google.com. 86241 IN NS ns3.google.com. google.com. 3441 IN TXT "v=spf1 include:_netblocks.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all" ;; Query time: 72 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Fri May 6 16:13:39 2011 ;; MSG SIZE rcvd: 444
Kita akan gunakan informasi ini untuk membuat file db.google.com, menjadi seperti berikut :
Bagian awal :$TTL 604800 @ IN SOA localhost. admin.localhost. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS localhost.
Di bagian awal ini @ menunjukkan keberadaan server DNS kita.
Di bagian berikutnya kita daftarkan informasi-informasi yang berhubungan dengan google.com
google.com. IN NS ns1.google.com.
Bagian ini menunjukkan bahwa situs google.com akan merujuk ke name server ns1.google.com
Baris selanjutnya :
google.com. IN A 209.85.175.106
Menunjukkan bahwa google.com merujuk ke alamat IP 209.85.175.106, alamat ini kita ambil dari informasi dig tadi. Anda dapat “memanipulasi” rujukan IP sebuah nama domain disini. Misalnya jika anda ingin MEMBLOKIR sebuah situs terlarang.
Jangan lupa untuk memberikan resolv IP untuk ns1 yang kita pakai diatas. Bisa kita cek terlebih dahulu ns1.google.com ini memiliki IP berapa dengan perintah host.
rezaervani@rezaervani-laptop:/etc/bind$ host ns1.google.com ns1.google.com has address 216.239.32.10
Berarti kita tulis :
ns1 IN A 216.239.32.10
Last but not least, agar kita bisa browsing ke google.com, berikan canonical name (CNAME) untuk www seperti berikut
www IN CNAME google.com.
Catatan : Jangan lupa titik di depan nama domain (google.com.)
Simpan file db.google.com tersebut.
Lalu restart bind dengan
sudo /etc/init.d/bind9 restart
Kini mari kita ujicoba di komputer klien yang sudah merujuk ke DNS Server kita.
Pertama kita cek dengan perintah nslookup :
rezaervani@rezaervani-laptop:/etc/bind$ nslookup google.com Server: 127.0.0.1 Address: 127.0.0.1#53 Name: google.com Address: 209.85.175.106
Terlihat bahwa rujukan DNS-nya benar mengarah ke komputer kita : 127.0.0.1 port 53 (DNS Port)
Kemudian kita uji lagi dengan perintah dig google.com
rezaervani@rezaervani-laptop:/etc/bind$ dig google.com ; <<>> DiG 9.7.3 <<>> google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30825 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; QUESTION SECTION: ;google.com. IN A ;; ANSWER SECTION: google.com. 604800 IN A 209.85.175.106 ;; AUTHORITY SECTION: google.com. 604800 IN NS localhost. google.com. 604800 IN NS ns1.google.com. ;; ADDITIONAL SECTION: ns1.google.com. 604800 IN A 216.239.32.10 localhost. 604800 IN A 127.0.0.1 localhost. 604800 IN AAAA ::1 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Fri May 6 16:35:41 2011 ;; MSG SIZE rcvd: 145
Perhatikan di bagian authority section, name server yang dirujuk adalah benar DNS Server yang kita miliki.
mari kita ping google.com
rezaervani@rezaervani-laptop:/etc/bind$ ping google.com PING google.com (209.85.175.106) 56(84) bytes of data. 64 bytes from nx-in-f106.1e100.net (209.85.175.106): icmp_req=1 ttl=53 time=135 ms 64 bytes from nx-in-f106.1e100.net (209.85.175.106): icmp_req=2 ttl=53 time=60.4 ms 64 bytes from nx-in-f106.1e100.net (209.85.175.106): icmp_req=3 ttl=53 time=59.6 ms 64 bytes from nx-in-f106.1e100.net (209.85.175.106): icmp_req=4 ttl=53 time=57.9 ms 64 bytes from nx-in-f106.1e100.net (209.85.175.106): icmp_req=5 ttl=53 time=61.8 ms
Lancar, mari terakhir kita coba browsing google.com di browser kita :
Selesai, berarti kita sudah berhasil mendaftkan situs google.com ke DNS Server kita. Lakukan langkah yang sama untuk mendaftarkan situs-situs lain ke DNS Server kita, termasuk jika anda hendak melakukan filtering situs yang kurang pantas via DNS Server.
Mudah bukan ?. Selamat mencoba. (rezaervani@gmail.com)
kalau ingin membuat dns server yang pakai ip public dan domain yang beli dari pandi.or.id gimana mas?
wah subhanallah kang, dapat ilmu baru nih heheheh….. segera akan di coba .., 😀
Gimana membuat dns server yang pakai jaringan LAN………