Senin, 16 Agustus 2010

Setting DNS Server di Slackware

Setting DNS server di Slackware
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 :P .
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

Tidak ada komentar:

Posting Komentar