Tanya 149 : Pembuatan DNS Server di Ubuntu (2) – Membuat DNS Server Publik

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 :

tampilan google.com yang auto redirect ke google.co.id

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)

3 Comments

Leave a Reply to Rahmansyah Cancel reply

Your email address will not be published.


*