Jumat, 09 April 2010

Domain Name System (DNS)

Apa yang dimaksud dengan Domain Name System (DNS)??
Domain Name System (DNS) adalah suatu sistem yang memungkinkan nama suatu host pada jaringan komputer atau internet ditranslasikan menjadi IP address. Dalam pemberian nama, DNS menggunakan arsitektur hierarki.

1. Root-level domain
merupakan tingkat teratas yang ditampilkan sebagai tanda titik (.).
2. Top level domain
kode kategori organisasi atau negara misalnya:.com untuk dipakai oleh perusahaan. Selain itu untuk membedakan pemakaian nama oleh suatu negara dengan negara lain digunakan tanda misalnya.id untuk Indonesia atau .au untuk australia.
3. Second level domain.
Merupakan nama untuk organisasi atau perusahaan, misalnya: micrsoft.com;yahoo.com, dan lain-lain.
DNS adalah …
DNS merupakan singkatan dari Domain Name Service, fungsi utamanya adalah menerjemahkan alamat ip komputer dengan alamat yang lebih manusiawi atau bahasa daerahnya “humanable”. Seperti yang kita ketahui, setiap komputer yang terhubung ke internet harus punya ip address. Namun tidak semua orang bisa menghapalkan 66.94.234.13 (saya juga cuma copy paste itu hehehe), lebih mudah menghapalkan www.yahoo.com.
Siapa yang butuh DNS?
Seperti yang disinggung sebelumnya, setiap pengakses internet membutuhkan DNS kecuali sanggup menghapal sebanyak 256*256*256*256 ip address, Salah satu pengguna DNS adalah pengakses internet, tapi pengakses internet tidak perlu membuat DNS Server karena bisa menggunakan DNS server yang disediakan oleh ISP.
Pengguna DNS selanjutnya tentu saja adalah ISP, dan mereka yang mengelola domain dan webserver. Pengguna DNS yang lainnya lagi adalah orang iseng yang pengen DNS Server sendiri, soalnya ndak ada kerjaan hehehe.
BIND
Ada banyak program untuk membuat DNS server, berhubung yang default terinstall di slackware adalah bind9 maka kita akan menggunakan itu saja. Jika bind9 terinstall maka akan terdapat beberapa file – file instalasi default seperti :
var/named/caching-example/named.ca
var/named/caching-example/named.local
var/named/caching-example/localhost.zone
etc/rc.d/rc.bind
etc/named.conf
Tiga file awal adalah contoh dari konfigurasi bind9, file selanjutnya adalah init script (rc.bind) dan konfigurasi dari bind (named.conf).
Berikut adalah isi dari file named.conf yang masih perawan :
options {
directory "/var/named";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
//
// a caching only nameserver config
//
zone "." IN {
type hint;
file "caching-example/named.ca";
};
zone "localhost" IN {
type master;
file "caching-example/localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "caching-example/named.local";
allow-update { none; };
};
Kita akan bahas per blok, dan apa saja modifikasi yang akan kita buat.
Blok pertama
options {
directory "/var/named";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
Blok ini merupakan global setting dari bind, directory “/var/named” adalah direktory kerja dari bind, di direktory tersebut di tempatkan file – file konfgurasi domain yang biasa di sebut zone. Tidak disarankan untuk mengutak – atik blok ini kecuali Anda tahu apa yang Anda kerjakan. Atau dengan kata lain, biarkan mi saja begitu.
Blok Kedua
zone "." IN {
type hint;
file "caching-example/named.ca";
};
Blok ini merupakan blok root zone atau kasarnya alamat – alamat dari domain – domain internasional. Kita membutuhkan blok root zone ini. Biasanya saya melakukan perubahan dengan menghilangkan “caching-example/” pada baris file sehingga hanya berbentuk seperti ini :
file "named.ca";
Ini soal kebiasaan saja, saya lebih senang melihat semua file – file zone berada di bawah direktori /var/named, jadi tinggal ganti saja baris file tersebut dan pindahkan filenya :
# mv /var/named/caching-example/* /var/named
Blok Ketiga
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
Blok ini adalah forward localhost, Dalam artian jika dns server mendapatkan perintah untuk mengetahui alamat ip dari localhost maka bagian blok ini yang mengurusnya.
saya sarankan untuk tetap menyimpan blok ini tapi berhubung sudah memindahkan file /var/named/caching-example/ jadi bari filemenjadi :
file "localhost.zone";
Blok Keempat
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
Blok ini merupakan kebalikan dari blok localhost atau biasa disebut reverse, karena kebalikan reverse kerjanya juga terbalik yaitu mencari nama dari ip yang di”query”kan ke DNS server.
Semua konfigurasi diatas jika betul (termasuk nama filenya dan direktorinya) maka DNS server kita sudah bisa digunakan, kita tinggal mengaktifkannya mengeksekusi file rc.bind
# /etc/rc.d/rc.bind start
Jika tidak ada error maka kita bisa meng”query” domain – domain luar misalnya yahoo, google dll dengan syarat kita terhubung ke internet. Perintah untuk megquery domain bisa menggunakan dig atau nslookup :
arman@oridecon:~$ dig yahoo.com
; <> DiG 9.4.1 <> yahoo.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14210
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 7, ADDITIONAL: 2
;; QUESTION SECTION:
;yahoo.com. IN A
;; ANSWER SECTION:
yahoo.com. 300 IN A 66.94.234.13
yahoo.com. 300 IN A 216.109.112.135
;; AUTHORITY SECTION:
yahoo.com. 162027 IN NS ns6.yahoo.com.
yahoo.com. 162027 IN NS ns8.yahoo.com.
yahoo.com. 162027 IN NS ns1.yahoo.com.
yahoo.com. 162027 IN NS ns2.yahoo.com.
yahoo.com. 162027 IN NS ns3.yahoo.com.
yahoo.com. 162027 IN NS ns4.yahoo.com.
yahoo.com. 162027 IN NS ns5.yahoo.com.
;; ADDITIONAL SECTION:
ns6.yahoo.com. 162027 IN A 202.43.223.170
ns8.yahoo.com. 76086 IN A 202.165.104.22
;; Query time: 415 msec
;; SERVER: 192.168.10.254#53(192.168.10.254)
;; WHEN: Wed Aug 8 17:25:00 2007
;; MSG SIZE rcvd: 217
Jika keluar seperti diatas berarti dns kita sudah berfungsi, kita juga bisa menggunakan nslookup
arman@oridecon:~$ nslookup
> server localhost
Ketikkan perintah server localhost untuk memastikan bahwa dns server yang digunakan oleh nslookup adalah dns server yang kita buat, karena secara default nslookup menggunakan dns server sesuai dengan entry pada file /etc/resolv.conf
Default server: localhost
Address: 127.0.0.1#53
Dengan ini maka nslookup menggunakan server localhost. Selanjutnya tinggal masukkan saja domain yang akan kita query misalnya yahoo.com
> yahoo.com
Server: localhost
Address: 127.0.0.1#53
Non-authoritative answer:
Name: yahoo.com
Address: 216.109.112.135
Name: yahoo.com
Address: 66.94.234.13
Jika keluarnya seperti ini maka dns kita sudah siap untuk di kaccaki (oprek) lagi.
Untuk menambahkan domain lain (jika kita punya domain yang terdaftar atau sekedar iseng saja) kita bisa mengcopy konfigurasi dari localhost.zone.
Misalnya kita ingin membuat domain gorilla.com dengan ip 192.168.1.1 maka kita buat entry dari gorilla.zone seperti ini :
zone "gorilla.com" IN {
type master;
file "gorilla.zone";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "192.168.1.zone";
allow-update { none; };
};
Yang perlu diperhatikan adalah :
zone "gorilla.com" IN {
Ini kita sesuaikan dengan nama domain yang kita buat. Jika kita membuat domain kingkong.com maka baris zone itu juga berisi “kingkong.com”, selanjutnya adalah jenis dari domain tersebut apakah merupakan domain master atau slave, untuk lebih detil tentang master dan slave dari domain silahkan baca dokumentasi tentang dns.
Baris berikut adalah file dari domain. File bisa kita namakan terserah kita namun yang pasti sama dengan yang ada pada blok zone, dalam hal ini kita menggunakan nama file “gorilla.zone”, saya sarankan nama file yang digunakan representatif sehingga untuk administrasi ataupun trouble shooting tidak lagi pusing soal nama file dan domain.
Blok terakhir yang kita buat adalah reverse dari domain gorilla.com, berhubung karena kita dalam tahap belajar maka kita menggunakan ip address lokal saja, dalam hal ini kita defenisikan adalah 192.168.1.X, yang perlu diperhatikan pada pendefenisian reverse, penulisan alamat ip itu ditulis terbalik (namanya juga reverse) jadi jika kita menggunakan ip 192.168.1.X maka yang dituliskan di zone reverse adalah “1.168.192.in-addr.arpa”, demikian juga halnya jika menggunakan ip - ip yang lain atau ip publik.
Baris selanjutnya sama dengan forward dari gorilla.com yaitu type domain dan file zone, dalam hal ini kita menset “192.168.1.zone” untuk file dari reverse kita.
File – file zone
Setelah file named.conf kita acak – acak sekarang kita berurusan sama yang berwajib, eh file – file zone. Seperti kita definisikan sebelumnya di file named conf bahwa direktory dari bind berada di /var/named/ :
directory "/var/named";
Karena kita juga sudah memindahkan file di /var/named/caching-example/, sekarang di direktori /var/named terdapat file – file berikut :
arman@oridecon:~$ ls /var/named/ -l
total 12
-rw-r–r– 1 root root 195 2007-06-08 13:42 localhost.zone
-rw-r–r– 1 root root 2517 2007-06-08 13:42 named.ca
-rw-r–r– 1 root root 433 2007-06-08 13:42 named.local
Seperti yang kita sudah defenisikan sebelumnya pada file named.conf terdapat tiga file zone dari instalasi default. File named.ca adalah file dari root zone, kita bisa saja membuat file ini tapi sebaiknya gunakan saja file dari instalasi default. File localhost.zone adalah file dari domain “localhost” sedangkan “named.local” adalah reverse dari domain “localhost”.
Untuk lebih jelasnya kita lihat saja langsung kedua file tersebut.
arman@oridecon:/var/named$ cat localhost.zone
$TTL 86400
$ORIGIN localhost.
@ 1D IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
1D IN NS @
1D IN A 127.0.0.1
Yang perlu diperhatikan adalah dua baris terakhir. Baris kedua dari terakhir, entry tenang NS, ns inilah yang akan digunakan pada pencarian sebuah domain. Entry pada kolom terakhir yaitu “@”, yang menunjuk ke A record. Pada baris terakhir menentukan alamat ip yang digunakan pada domain dalam hal ini adalah “localhost” dengan ip 127.0.0.1.
Selanjutnya adalah file reversed dari localhost yaitu named.local :
arman@oridecon:/var/named$ cat named.local
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
Perhatikan pada baris terakhir yang entry pada kolom pertama adalah “1”, berarti reverse mempunyai ip 127.0.0.1 karena telah disebutkan di file named.conf.
Yang juga perlu diperhatikan adalah entry serial, jika mengunakan dns slave setiap kali mengganti entry dari file zone kita juga harus mengganti serial (formatnya biasanya sesuai dengan tanggal) sehingga server dns slave bisa menyesuaikan setiap perubahan seperti yang di dns master.
Domain Kita
Setelah file localhsot dan reversenya kita intip sekarang kita mo buat domain buat kita, seperti yang disinggung diatas kita bisa membuat domain untuk kita, seperti contoh kita diatas “gorrilla.com” dengan ip 192.168.1.1, tambahkan bari berikut di named.conf
zone "gorilla.com" IN {
type master;
file "gorilla.zone";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "192.168.1.zone";
allow-update { none; };
};
Saya sarankan untuk mengcopy saja entry dari localhost dan reversenya, untuk menghindari kesalahan pengetikan kecuali anda termasuk orang yang teliti dan suka buang waktu .
Setelah membuat perubahan pada file named.conf sekarang kita buat filenya, seperti yang telah di defenisikan bahwa file yang digunakan oleh domain “gorilla.com” adalah “gorilla.zone” dan reversenya adalah “192.168.1.zone”. Saya juga menyarankan untuk mengcopy saja dari file zone localhost.
# cp localhost.zone gorilla.zone
# cp named.local 192.168.1.zone
Selanjutnya adalah menyesuaikan dengan domain kita, ganti semua kata localhost dengan gorilla.com pada file tersebut seperti ini :
$TTL 86400
$ORIGIN gorilla.com.
@ 1D IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
1D IN NS dns.gorilla.com.
1D IN A 192.168.1.1
dns 1D IN CNAME @
www 1D IN CNAME @
arman 1D IN A 192.168.1.99
Pada konfigurasi ini kita juga menambahkan subdomain, yaitu dns.gorilla.com, www.gorilla.com dan arman.gorilla.com. Untuk dns.gorilla.com dan www.gorilla.com menunjuk pada ip yang sama yaitu 192.168.1.1 . Kita bahas baris yang menurut saya penting.
$ORIGIN gorilla.com.
Biasanya berisikan nama domain yang digunakan. Pada kasus kita gorilla.com.
1D IN NS dns.gorilla.com.
Bagian ini merupakan entry dari NS server dari domain kita. Jika kita menggunakan lebih dari satu NS untuk domain kita tinggal tambahkan saja NS entry berikutnya. Umumnya jika kita mendaftarkan domian di registrant domain dibutuhkan lebih dari satu NS.
1D IN A 192.168.1.1
Baris merupakan alamat ip dari domain yang digunakan, yaitu 192.168.1.1.
www 1D IN CNAME @
arman 1D IN A 192.168.1.99
Baris pertama merupakan subdomain www yang menunjuk pada A record, jadi jika mengakses www.gorilla.com maka yang ip address yang di tuju adalah 192.168.1.1. Untuk baris berikutnya adalah sebuah sub domain dengan nama “arman” yang menunjuk ke ip 192.168.1.99, baris ini tidak lagi menggunakan CNAME melainkan A karena ip yang digunakan adalah berbeda dengan ip dari default domain yaitu gorilla.com. Jika kita mengakses arman.gorilla.com sebetulnya mengakses ke 192.168.1.99. Hal yang sama juga kita buat untuk membuat domain dengan ip public. Silahkan menambahkan sub – sub domain yang lain lagi jika memang dibutuhkan.
Selanjutnya adalah reverse dari gorilla.com.
$TTL 86400
@ IN SOA gorilla.com. root.gorilla.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS gorilla.com.
1 IN PTR gorilla.com.
99 IN PTR arman.gorilla.com.
Seperti halnya reverse dari localhost kita juga hanya mengisikan ip dari daftar domain dan sub domain yang kita buat.
Jika sudah selesai, silahkan merestart bind :
# /etc/rc.d/rc.bind restart
Jika tidak ada kesalahan (sebaiknya periksa /var/log/message) maka kita sudah bisa mengquery domain yang kita buat.
Selanjutnya adalah menggunakan DNS Server kita, bagi pengguna linux silahkan edit file /etc/resolv.confuntuk memasukkan ip dari DNS yang digunakan contoh kasus kita yaitu 192.168.1.1
$ cat /etc/resolv.conf
search gorilla.com
nameserver 192.168.1.1
Dengan demikian setiap kali ada permintaan DNS dari linux box kita maka akan menggunkan DNS dari 192.168.1.1, Silahkan sesuaikan dengan sistem yang lainnya
2 Comments »
The URI to TrackBack this entry is: http://jeky466.blogsome.com/2008/09/06/apa-itu-dns/trackback/
1. mau liat contohnya, visit my website : http//:www.cyberjacque.tk
Comment by jack — May 22, 2009 @ 7:59 am
2. http://www.redhat.com/docs/manuals/linux/RHL-7.2-Manual/ref-guide/s1-bind-configuration.html
sample /etc/named.conf
root@hardslack:/var/named/caching-example#mcedit /etc/named.conf
options {
directory “/var/named/caching-example”;
forward first;
forwarders{
203.130.196.155;
202.134.1.10;
};
// query-source address * port 53;
s
};
zone “.” IN {
type hint;
file “named.ca”;
};
zone “localhost” IN {
type master;
file “localhost.zone”;
allow-update { none; };
};
zone “0.0.127.in-addr.arpa” IN {
type master;
file “named.local”;
allow-update { none; };
};
zone “slacker.net” IN {
type master;
file “slacker-net.zone”;
allow-update { none;};
};
zone “1.168.192.in-addr.arpa” IN {
type master;
file “192.168.1.zone”;
allow-update { none; };
};
key “rndc-key” {
algorithm hmac-md5;
secret “W58QMTQLP4jhWPaPOu8aRQ==”;
};
logging {
category queries { query_log; };
channel query_log {
file “/var/named/log/query.log” versions 9 size 5m;
severity debug;
print-severity yes;
print-time yes;
print-category yes;
};
};

Tidak ada komentar:

Posting Komentar

aku selalu ada....