Translate








Jumat, 27 Juni 2014

Membangun DNS Server untuk Domain Jaringan Lokal dengan Linux CentOS 5

Dalam jaringan lokal (LAN) kita biasanya memiliki beberapa aplikasi berbasis web yang digunakan untuk kepentingan internal. Untuk mengakses aplikasi tersebut, biasanya dilakukan via browser dengan mengetikkan alamat ip pada browser client. Semakin banyak aplikasi yang dipakai, maka akan semakin banyak pula tuntutan kita untuk mengingat ip dari setiap aplikasi tersebut. Untuk memudahkan user/client, kita sebaiknya bangun sebuah server dns untuk menerjemahkan alamat ip menjadi nama host/aplikasi. Kita bisa dengan mudah menyesuaikan nama aplikasi sesuai dengan fungsi penggunaan aplikasi tersebut, dan tidak lagi dengan mengetikkan alamat ip.

Sebagai contoh kasus, disini saya akan membuat domain lokal dengan nama "majapahit.com", yang akan digunakan untuk jairngan lokal (internal). Tentunya penamaan domain bisa disesuaikan dengan keperluan kita.

LAB terdiri dari 2 (dua) server:
*) Server DNS CentOS 5.6 (MAJAPAHIT/192.168.0.101)
*) Server Client untuk test akses (PAJAJARAN/192.168.0.11)

Disini saya akan membagi kedalam 3 tahap:
  • Instalasi Server DNS (named)
  • Konfigurasi Server DNS (named)
  • Testing Konfigurasi

 

INSTALASI SERVER DNS

Paket yang dibutuhkan untuk instalasi di sisi server yakni named (dibaca : "nem-di"). Untuk instalasi sangat mudah, kita gunakan perintah yum seperti dibawah ini:

[root@MAJAPAHIT ~]# yum install bind bind-chroot bind-libs bind-utils


Kita coba jalankan service named, namun akan muncul pesan bahwa service tidak bisa dijalankan, seperti dibawah ini:

[root@MAJAPAHIT ~]# service named start
Locating /var/named/chroot//etc/named.conf failed:
                                                           [FAILED]
You have new mail in /var/spool/mail/root

Hal ini dikarenakan pada CentOS 5, file konfigurasi default tidak tersedia. Dari pesan diatas, bahwa file konfigurasi seharusnya ada di lokasi /var/named/chroot. Untuk itu, kita harus menginstall caching-nameserver, dan file konfigurasi default akan ter-create secara otomatis.

[root@MAJAPAHIT ~]# yum install caching-nameserver


Kita coba jalankan kembali service named seperti sebelumnya:
[root@MAJAPAHIT ~]# service named start
Starting named:                                            [  OK  ]


Dari output diatas, maka service named untuk DNS server telah berhasil dijalankan. Dari sisi Client, arahkan DNS ke IP server MAJAPAHIT (server DNS) melalui konfigurasi IP Address atau ditambahkan pada : /etc/resolv.conf. Selanjutnya kita coba test dengan perintah dibawah ini:

[root@PAJAJARAN ~]# host www.majapahit.com
;; connection timed out; no servers could be reached


Dari pesan error diatas, client tidak dapat menemukan server dns (majapahit.com). Hal ini dikarenakan pada server dns secara default hanya listen di port 53. Untuk itu di server dns, kita harus merubahnya terlebih dahulu :

[root@MAJAPAHIT ~]# nano /etc/named.caching-nameserver.conf


Berikan komentar pada baris berikut :

#listen-on port 53 { 127.0.0.1; };


Restart service named
[root@MAJAPAHIT ~]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]


Lakukan test kembali dari client PAJAJARAN:

[root@PAJAJARAN ~]# host www.majapahit.com
Host majapahit not found: 5(REFUSED)


Dari pesan diatas, BIND sudah bisa Listen request dari Client, namun masih belum bisa menjawab request domain majapahit.com, dikarenakan kita belum membuat zona untuk penamaan host.


KONFIGURASI SERVER DNS

Konfigurasi ini digunakan untuk membuat Hosting Domain di jaringan Lokal. Yang perlu kita lakukan terlebih dahulu yakni dengan membuat zona baru untuk Domain majapahit.com. Perlu diketahui bahwa server dns ini akan kita buat sebagai master-server, yang artinya apabila kita hendak menerapkannya secara luas, misalnya dengan menambahkan slave zone maka server majapahit ini akan menjadi master nya, karena informasi seluruh domain nantinya akan disimpan disini. Sebelum melakukan konfigurasi, perlu diingat kembali bahwa kita menggunakan "bind-chroot" pada saat instalasi, ini artinya file konfigurasi utama berada di "/var/named/chroot/var/named" dan bukan di "/var/named".

Untuk membuat domain "majapahit.com", BIND memerlukan 3 buah parameter. Pertama, informasi nama domain, yakni "majapahit.com". Kedua, kita akan set server ini sebagai master domain majapahit.com. Ketiga, informasi lokasi file zona yang akan digunakan untuk domain majapahit.com.

Lakukan konfigurasi pada named.conf (/var/named/chroot/etc/named.conf)

[root@MAJAPAHIT ~]# nano /var/named/chroot/etc/named.conf


Tambahkan konfigurasi seperti dibawah :

options {
        directory "/etc";
        pid-file "/var/run/named/named.pid";
        recursion no;
        };

zone "majapahit.com" {
        type master;
        file "/var/named/majapahit.com.hosts";
        };


Perhatikan pada baris "file "/var/named/majapahit.com.hosts". Kita buat file tersebut pada direktori /var/named/chroot/var/named.

[root@MAJAPAHIT ~]# nano /var/named/chroot/var/named/majapahit.com.hosts


Tambahkan konfigurasi seperti dibawah :
$ttl 38400
majapahit.com.  IN      SOA     dns0.majapahit.com. ichigo.majapahit.(
                                1187790697      ; serial number
                                10800           ; refresh
                                3600            ; retry
                                604800          ; expiry
                                38400 )         ; minimum

www.majapahit.com.      IN      A       192.168.0.101
ftp.majapahit.com.      IN      CNAME   www
mail.majapahit.com.     IN      A       192.168.0.101
majapahit.com.          IN      NS      dns0.majapahit.com.
majapahit.com.          IN      NS      ns1.majapahit.com.
majapahit.com.          IN      MX      10 mail
majapahit.com.          IN      MX      20 mail


Simpan perubahan, dan restart service named

[root@MAJAPAHIT ~]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]


Tahap konfigurasi telah selesai, dan harap diperhatikan penulisan tanda titik (" . ") dibelakang nama domain, karena biasanya kesalahan konfigurasi timbul dari hal tersebut.


TEST SERVER DNS


Untuk menguji hasil konfigurasi, kita akan lakukan dari server dns itu sendiri terlebih dahulu.

[root@MAJAPAHIT ~]# host www.majapahit.com localhost
Using domain server:
Name: localhost
Address: 127.0.0.1#53
Aliases:

www.majapahit.com has address 192.168.0.101


Test mx records, untuk keperluan penggunaan mail server yang akan kita gunakan pada tutorial selanjutnya.

[root@MAJAPAHIT ~]# host -t mx majapahit.com localhost
Using domain server:
Name: localhost
Address: 127.0.0.1#53
Aliases:

majapahit.com mail is handled by 10 mail.majapahit.com.
majapahit.com mail is handled by 20 mail.majapahit.com.


Selanjutnya, kita lakukan test dari client. Perintah yang digunakan sama seeprti diatas, hanya saja kita tidak menyertakan parameter "localhost", karena kita akan mencobanya dari server lain. Pertama, kita coba test ping dengan menggunakan nama domain:

[root@PAJAJARAN ~]# ping www.majapahit.com
PING www.majapahit.com (192.168.0.101) 56(84) bytes of data.
64 bytes from 192.168.0.101: icmp_seq=1 ttl=64 time=0.787 ms
64 bytes from 192.168.0.101: icmp_seq=2 ttl=64 time=0.745 ms
64 bytes from 192.168.0.101: icmp_seq=3 ttl=64 time=0.753 ms


Selanjutnya kita test dengan :

[root@PAJAJARAN ~]# host www.majapahit.com
www.majapahit.com has address 192.168.0.101


Test mx record :

[root@PAJAJARAN ~]# host -t mx majapahit.com
majapahit.com mail is handled by 20 mail.majapahit.com.
majapahit.com mail is handled by 10 mail.majapahit.com.


Sampai tahap ini, DNS Server untuk Hosting Domain Lokal telah siap digunakan. Ini hanyalah konfigurasi dasar, kita bisa menyesuaikan sesuai kebutuhan kita, misalnya untuk memberikan penamaan aplikasi, development web, atau kita bisa mengembangkannya untuk membangun email server.


{ Read More }


Jumat, 13 Juni 2014

NSCD (Name Service Caching Daemon)


Sesuai dengan namanya, NSCD berfungsi untuk menyimpan cache dari request yang pernah diterima. Pada linux Centos, NSCD sudah terinstall secara default, namun apabil sistem belum terinstall, kita bisa lakukan dengan perintah:

#yum install nscd


NSCD memiliki dua jenis cache dalam setiap server, yakni cache positif dan cache negatif. Maksud dari pembagian jenis cache ini yakni berkaitan dengan pengaruh yang diberikan dari NSCD dalam menjalankan fungsinya. 

Cache positif adalah dimana cache akan menyimpan lookup request ketika hostname berhasil ditemukan (di-resolve). Misalnya ketika kita mengakses www.centos.org, dan berhasil ditemukan, maka cache akan disimpan. Apabila ada request yang sama, maka berikutnya akan di load dengan lebih cepat oleh resolver, karena lookup akan diambil dari cache sebelumnya. 

Apabila lookup request tidak dapat ditemukan, maka NSCD tetap akan menyimpan cache dari request tersebut, dan seakan-akan telah menandai bahwa request tersebut memang tidak bisa di resolve. Misalnya ketika kita mengakses jurnalinux.centos.org ketika pertama kali (dengan asumsi jurnalinux.centos.org belum ada) maka akan terjadi failure, dan host tersebut tidak dapat ditemukan. Selanjutnya, ketika jurnalinux.centos.org memang sudah ada (asumsi sudah dibangun), dan ada request ke host tersebut, maka akan terjadi failure kembali atau host tidak bisa ditemukan, karena resolver telah mengambil cache dari NSCD, dimana sebelumnya untuk request host tersebut memang belum ada. Ini adalah cache negatif

Untuk mengatasi cache negatif seperti diatas, kita harus membersihkan cache (refresh) dengan perintah:

#nscd -i hosts


Dengan perintah tersebut cache akan dibersihkan, dan berbagai request bisa disimpan dengan lebih update. Apabila ada perubahan host maka sebaiknya dilakukan refresh nscd ini setelah melakukan perubahan. NSCD bisa digunakan meningkatkan performa jaringan, tapi bisa menjadi permasalahan untuk lingkungan development. Setelah penjelasan ringkas diatas, kita seharusnya sudah bisa menentukan apakah perlu atau tidak untuk menggunakan NSCD dalam system kita.
{ Read More }


IconIconIconFollow Me on Pinterest

Blogger news

Blogroll

What's Hot