BAB IV KONFIGURASI DAN IMPLEMENTASI LINUX VIRTUAL SERVER 4.1 Pendahuluan Setiap administrator tentunya menginginkan server yang sedang ditanganinya berjalan dengan stabil dan handal. Seiring dengan perkembangan teknologi internet dan kebutuhan akses informasi melalui internet yang sangat pesat, kebutuhan akan peningkatan performance dari suatu server di saat ini sudah tak dapat terelakkan lagi. Banyak teknologi yang digunakan untuk meningkatkan kualitas suatu koneksi, salah satunya adalah menggunakan linux virtual server. Pada sistem ini memanfaatkan cluster server yang dihubungkan dengan jaringan kecepatan tinggi yang memiliki arsitektur lepas, sehingga akan lebih handal daripada satu sistem yang mengggunakan multiprosesor, serta lebih hemat.
4.2 Langkah-langkah Pada tahapan ini PC yang akan dijadikan Linux Virtual Server belum mempunyai sistem operasi Linux. Untuk itu sebagai langkah awal, instalasi dimulai dengan memasukkan sistem operasi Linux kedalam PC, baru kemudian meng-install dan mengkonfigurasi perangkat lunak yang dibutuhkan untuk membuat Linux Virtual Server. Berikut adalah langkah-langkah yang harus diselesaikan.
71
72
4.2.1 Instalasi Sistem Operasi Linux RedHat 9.0 Pada bagian ini yang dibutuhkan adalah media instalasi dari Linux RedHat 9.0. Media yang digunakan adalah berupa CD (Compact Disc) instalasi. Ada 3 buah CD instalasi yang digunakan pada bagian ini. Berikut dibawah ini adalah langkah-langkah untuk proses instalasi sistem operasi Linux RedHat 9.0 1. Urutan booting di BIOS (Basic Input/Output System) harus diubah dengan menjadikan CD-ROM sebagai urutan pertama. 2. CD instalasi Linux RedHat 9.0 yang pertama dimasukkan ke CD-ROM. Setelah booting, dan melewati proses pengecekan perangkat keras yang terpasang di PC, akan terlihat tampilan seperti di bawah ini.
Gambar 4.1 Tampilan Awal Instalasi Linux
3. Selanjutnya adalah pemilihan bahasa yang digunakan selama proses instalasi. Dikarenakan tidak tersedianya fitur untuk Bahasa Indonesia, digunakan pilihan Bahasa Inggris (English). Selain itu kembali dilakukan pengecekan untuk tetikus (mouse) dan papan ketik (keyboard).
73
4. Kemudian ditampilkan halaman untuk memilih tipe instalasi. Disini pilihan diarahkan ke tipe custom agar proses instalasi bisa dikendalikan dan dimodifikasi oleh pengguna.
Gambar 4.2 Tampilan untuk memilih tipe instalasi
5. Setelah itu akan muncul halaman untuk proses partisi harddisk drive. Dipilih manually partition dengan Disk Druid lalu dibuat 2 tipe partisi yaitu ext3 dan swap file. Untuk ext3 disediakan 2,2 GB, sedangkan untuk swap file adalah 2 kali dari jumlah memori utama PC (karena memori utama PC adalah 256 MB, maka swap file-nya adalah 512 MB).
74
Gambar 4.3 Hasil Partisi 6. Tampilan berikutnya adalah tampilan boot loader, maka dilewatkan saja tanpa mengubah konfigurasi yang ada. 7. Kemudian tampilan untuk konfigurasi jaringan. Halaman ini kembali dilewatkan karena saat Linux telah ter-install, konfigurasi ini akan kembali dilakukan direktori di /etc/sysconfig/network-scripts. 8. Lalu akan terlihat tampilan untuk pengaturan firewall, bahasa yang digunakan pada sistem operasi, dan pengaturan waktu. Untuk pengaturan firewall, digunakan semua service yang diberikan dengan tingkat pengamanan medium. Untuk bahasa, digunakan bahasa Inggris. Untuk waktu, dipilih waktu Asia/ Jakarta (bagian Java & Sumatra). 9. Selanjutnya adalah mengeset password untuk root. Password yang digunakan diusahakan tidak terlalu pendek (kurang dari 6 karakter). 10. Kemudian tampilan untuk konfigurasi autentifikasi. Halaman ini bisa dilewatkan karena Linux Virtual Server tidak membutuhkan perangkat ini.
75
11. Tampilan berikutnya adalah pemilihan paket grup. Disini ada beberapa kelompok yang dipilih seperti desktop KDE, editor vi, server development, dan kernel development. LVS membutuhkan paket ini karena terdapat compiler gcc yang akan menterjemahkan perangkat lunak LVS.
Gambar 4.4 Pemilihan Package Group
12. Setelah itu akan muncul tampilan verifikasi yang diikuti oleh proses instalasi sistem operasi Linux RedHat 9.0. Disini akan terlihat paket apa saja yang di-install disertai ukuran dan keterangan singkatnya. Selain itu diperlihatkan pula statistika paket, berapa banyak yang sudah ter-install, berapa banyak yang belum ter-install, ukuran paket, dan estimasi waktu.
76
Gambar 4.5 Tampilan Instalasi Paket
13. Setelah selesai, akan ada tampilan untuk membuat disket boot. Dalam pembuatan LVS ini disket boot tidak dibuat. 14. Berikutnya adalah tampilan untuk konfigurasi perangkat keras yang terpasang di PC, yaitu vga card dan monitor. Jika dalam opsi yang disediakan tidak ada yang sesuai dengan jenis perangkat keras yang terpasang di PC, disediakan opsi generic yang bisa menangani konfigurasi standar. 15. Proses instalasi selesai. PC akan melakukan reboot, lalu halaman untuk penambahan user account. Dan setelah itu sistem operasi Linux RedHat 9.0 sudah bisa digunakan.
77
Gambar 4.6 Tampilan akhir instalasi
4.3 Konfigurasi dan Kompilasi kernel 4.3.1 Persiapan Tahap Kompilasi Kernel untuk LVS Langkah pertama yang harus dilakukan untuk kompilasi kernel adalah menginventarisasi hardware, peripheral, dan aplikasi yang berjalan di sistem komputer sekarang misalnya, dalam hal ini yang perlu diperhatikan adalah jenis prosesor, PCI Card (ethernet/soundcard), media penyimpanan (IDE/EIDE/SCSI), USB, PCMCI Card, file-system yang digunakan dan hal-hal lain yang dirasa perlu untuk diperhatikan. Setelah selesai menginventarisir semua peripheral, langkah selanjutnya adalah download source kernel. Source
kernel
dapat
di
download
pada
alamat
sistus
http://www.kernel.org/. Jika sistem komputer terhubung ke internet, maka perintah wget dapat digunakan untuk mendownload source kernel yang dibutuhkan.
78
[root@linuxer root]# cd /usr/src [root@linuxer src]# wget http://www.kernel.org/pub/linux/kernel/v2.4/linux2.4.20.tar.bz2
Langkah selanjutnya adalah mengekstrak source kernel tersebut (akan menghasilkan direktori linux-2.4.20) : [root@linuxer src]# tar -zxvf linux-2.4.20.tar.bz2
Agar Suatu mesin Linux bisa digunakan sebagai LinuxDirector maka perlu diadakan patching kernel menggunakan
linux-2.4.20-ipvs-1.0.9.patch.gz yang
bisa diperoleh di http://www.linuxvirtualserver.org/software/index.html. Patching kernel dapat dilakukan menggunakan perintah sebagai berikut : [root@linuxer src]# cd /usr/src/linux-2.4.20 [root@linuxer linux-2.4.20]# gunzip-c /usr/src/linux-2.4.20ipvs-1.0.9.patch.gz | patch -p1 patching file Documentation/Configure.help patching file include/net/ip_vs.h patching file kernel/ksyms.c …………………………………………… …………………………………………… …………………………………………… patching file net/ipv4/ipvs/ip_vs_wrr.c patching file net/ipv4/netfilter/ip_fw_compat.c patching file net/netsyms.c
4.3.2
Konfigurasi dan kompilasi kernel Setelah selesai melakukan pengekstrakan source kernel linux dan
melakukan patching dengan menggunakan ipvs, maka konfigurasi terhadap kernel
79
sudah dapat dilakukan. Setelah berada pada direktori /usr/src/linux-2.4.20 maka dapat diberikan perintah make menuconfig : [root@linuxer linux-2.4.20]# make menuconfig
Setelah perintah diatas dijalankan maka akan muncul tampilan dari menumenu yang bisa dipilih untuk digunakan atau dihapus dari suatu konfigurasi kernel.
Gambar 4.7 Konfigurasi Kernel Linux Pada gambar 3.2 terlihat ada beberapa simbol yang bisa digunakan untuk konfigurasi kernel, simbol-simbol tersebut antara lain: Untuk menambahkan suatu item untuk sistem kernel yang modular pada menu dapat dilakukan dengan menekan tombol M di keyboard. Untuk sistem kernel yang builtin tekan tombol Y, untuk membatalkan pilihan terhadap suatu item tekan N. Simbol ---> merupakan pilihan yang mempunyai beberapa subpilihan. Simbol [*] menjelaskan bahwa item tersebut merupakan builtin. Simbol [M] menjelaskan bahwa item tersebut merupakan modular.
80 Simbol [ ] merupakan item yang tidak dipilih atau modul dengan tipe builtin. Simbol < > merupakan simbol item yang bisa dan dapat digunakan sebagai modul maupun builtin. Untuk memilih dari item pilih <Select> atau tekan Enter, untuk kembali ke menu awal tekan <Exit> atau Esc. Agar suatu mesin linux dapat bekerja sebagai LinuxDirector maka setelah kernel di patching, dibutuhkan suatu konfigurasi tambahan terhadap kernel linux. Untuk keperluan tersebut maka konfigurasi kernel yang harus ditambahakan adalah sebagai berikut: Code maturity level options ---> [*]
Prompt
for
development
and/or
incomplete
code/drivers Networking options ---> [*] Network packet filtering (replaces ipchains) [ ]
Network packet filtering debugging
... IP: Netfilter Configuration
--->
IP: Virtual Server Configuration
--->
<M> virtual server support (EXPERIMENTAL) [*]
IP virtual server debugging
(12)
IPVS connection table size
--- IPVS scheduler <M> virtual server support (EXPERIMENTAL) (NEW) [*] (12)
IP virtual server debugging (NEW)
IPVS connection table size --- IPVS scheduler
81
<M>
round-robin scheduling (NEW)
<M>
weighted round-robin scheduling (NEW)
<M>
least-connection scheduling scheduling (NEW)
<M>
weighted least-connection scheduling (NEW)
<M>
locality-based least-connection scheduling (NEW)
<M>
locality-based least-connection withreplication(NEW)
<M>
destination hashing scheduling (NEW)
<M>
source hashing scheduling (NEW)
<M>
shortest expected delay scheduling (NEW)
<M>
never queue scheduling (NEW)
--- IPVS application helper <M>
FTP protocol helper (NEW)
Langkah selanjutnya adalah melakukan kompilasi kernel yang sudah dikonfigurasi, sebelum proses kompilasi set semua dependencies dari modulmodul tersebut : [root@ linuxer linux-2.4.20]# make dep [root@ linuxer linux-2.4.20]# make clean
Jika menggunakan sistem kernel yang modular, maka perintah dibawah ini harus dijalankan : [root@linuxer linux-2.4.20]# make modules [root@linuxer linux-2.4.20]# make modules_install
Untuk kompilasi kernel dapat dilakukan dengan perintah berikut ini, pada langkah ini bisa memerlukan waktu yang lamanya tergantung dari jenis prosesor dan memori yang dimiliki. [root@linuxer linux-2.4.20]# make bzImage
82
4.3.3 Mengkonfigurasi boot loader Sebelum kita mengkonfigurasi boot loader, langkah pertama adalah menyalin file kernel yang baru dikompilasi dan file System.map kedalam direktori /boot : [root@linuxer src]#cp /usr/src/linux2.4.20/arch/i386/boot/bzImage /boot/vmlinuz-2.4.20 [root@linuxer src]#cp /usr/src/linux-2.4.20/System.map /boot/System.map-2.4.20
Kemudian menentukan dimana letak partisi root (/) dari sistem, untuk mengetahui letak partisi root (/) dapat digunakan perintah mount, misalnya : [root@linuxer linux]# mount | grep -w / /dev/hda5 on / type ext3 (rw)
Atau dengan perintah df : [root@linuxer etc]# df / Filesystem
1k-blocks
/dev/hda5
381139
Used Available Use% Mounted on 61691
299770
18%
/
Dari perintah diatas maka didapatkan informasi partisi root berada pada device /dev/hda5 4.3.3.1 LILO Langkah
selanjutnya
adalah
mengkonfigurasi
file
/etc/lilo.conf.
konfigurasi yang harus ditambahkan adalah baris tercetak tebal berikut ini. [root@linuxer etc]# vi /etc/lilo.conf prompt timeout=50 default=linux_lvs boot=/dev/hda map=/boot/map
83
install=/boot/boot.b message=/boot/message lba32
image=/boot/vmlinuz-2.4.18-3 label=linux initrd=/boot/initrd-2.4.18-3.img read-only root=/dev/hda5 image=/boot/vmlinuz-2.4.20 label=linux_lvs read-only root=/dev/hda5
Untuk mengeset linux supaya setiap boot akan langsung menggunakan kernel yang baru, ubah pada file /etc/lilo.conf dari default=linux
menjadi
default=linux_lvs
Kemudian jalankan perintah lilo, sehingga konfigurasi yang baru akan dibaca (tanda * merupakan kernel default yang akan digunakan setelah sistem direboot) : [root@linuxer etc]# lilo Added linux Added linux_lvs*
Untuk menambah verbosity (tampilan yang dihasilkan) dapat ditambahkan argumen -v ketika menjalankan perintah lilo : [root@linuxer etc]# lilo -v
Jika tidak ada masalah yang berarti dalam pengupdatean lilo, maka system linux siap untuk direboot dan menjalankan kernel baru : [root@linuxer etc]# reboot
84
4.3.3.2 GRUB Jika menggunakan grub sebagai boot loader, edit file /etc/grub.conf, kemudian tambahkan baris berikut ini (sesuaikan pada entry root= dengan letak partisi root ) : title Red Hat Linux (2.4.20) root (hd0,0) kernel /boot/vmlinuz-2.4.20 ro root=/dev/hda5
Setelah selesai konfigurasi maka system siap untuk di reboot : [root@linuxer etc]# reboot
4.4
Instalasi Linux Virtual Server via NAT
4.4.1
Seting Ethernet Card Login sebagai root kemudian periksa perangkat jaringan dengan
mengetikkan perintah ifconfig. Jika hanya muncul lo dan atrributnya tanpa eth0, berarti jaringan belum aktif. [root@linuxer /etc]# ifconfig lo
Link encap:Local Loopback inet addr:127.0.0.1
Mask:255.0.0.0
UP LOOPBACK RUNNING
MTU:16436
Metric:1
RX packets:2 errors:0 dropped:0 overruns:0
frame:0
TX packets:2 errors:0 dropped:0 overruns:0
carrier:0
collisions:0 txqueuelen:0 RX bytes:144 (144.0 b)
TX bytes:144 (144.0 b)
Komentar diatas menandakan jaringan ethernet card belum diaktifkan. Atau dengan cara lain dapat menggunakan perintah dmesg. [root@linuxer /etc]# dmesg | grep eth
85
eth0:
Intel
Corp.
82557/8/9
[Ethernet
Pro
100],
00:90:27:5B:6E:A7, IRQ 10. eth1:
RealTek
RTL8139
Fast
Ethernet
at
0x6800,
00:a0:d2:1b:f4:af, IRQ 5 eth1:
Identified 8139 chip type 'RTL-8139B'
eth1: Setting half-duplex based on auto-negotiated partner ability 0000.
Dari perintah dmesg diatas dapat diketahui bahwa pada computer telah terpasang dua Ethernet card, yang antara lain Intel dan RealTek. Setelah type dari Ethernet card diketahui, maka probe Ethernet card tersebut supaya dikenali oleh system untuk menjalankan jaringan. Driver untuk rtl 8139 di linux adalah 9139too.gz. Adapun langkahnya adalah sebagai berikut: [root@linuxer anwar]# cd /lib/modules/2.4.20/kernel/drivers/net/ [root@linuxer net]# modprobe 8139too Kemudian
simpan
hasil
probing
tersebut
pada
/etc/modules.conf, dengan cara sebagai berikut:
•
Ketikkan perintah berikut ini [root@linuxer net]# vi /etc/modules.conf
•
Tambahkan kalimat sebagai berikut Alias 8139too
•
Simpan hasilnya dengan mengetikkan : Tekan Esc lalu ketik :wq! Kemudian tekan enter.
Untuk type Ethernet card yang lain caranya sama dengan diatas, tetapi perlu disesuaikan dengan driver Ethernet card yang dimilikinya, semisal untuk intel drivernya eepro100.
86
Untuk mengaktifkan Ethernet card tersebut dapat menggunakan perintah ifconfig
atau
melakukan
konfigurasi
file
yang contoh
/etc/sysconfig/network-scripts.Berikut
terletak
di
penggunaan
perintah ifconfig : [root@linuxer anwar]# /sbin/ifconfig eth0 192.168.0.1 netmask 255.255.255.0
atau
dengan
mengedit
file
yang
ada
pada
direktori
/etc/sysconfig/network-scripts [root@linuxer anwar]# vi /etc/sysconfig/networkscripts/ifcfg-eth0
Kemudian tambahkan baris seperti berikut ini DEVICE=eth0 BOOTPROTO=static BROADCAST=192.168.0.255 IPADDR=192.168.0.1 NETMASK=255.255.255.0 NETWORK=192.168.0.0 ONBOOT=yes
Untuk mengaktifkan konfigurasi IP address yang baru, jalankan perintah : [root@linuxer anwar]# /etc/rc.d/init.d/network restart Atau [root@linuxer anwar]# service network restart
Selanjutnya periksa dengan perintah ifconfig, jika device dan atributnya ada maka Ethernet card sudah aktif [root@linuxer anwar]# /sbin/ifconfig
87
eth0
Link encap:Ethernet inet
HWaddr 00:90:27:5B:6E:A7
addr:192.168.0.1
Bcast:192.168.0.255
Mask:255.255.255.0 UP
BROADCAST
RUNNING
MULTICAST
MTU:1500
Metric:1 RX
packets:177
errors:0
dropped:0
overruns:0
errors:0
dropped:0
overruns:0
frame:0 TX
packets:84
carrier:0 collisions:0 txqueuelen:100 RX bytes:11803 (11.5 Kb)
TX bytes:6355 (6.2 Kb)
Interrupt:10 lo
Link encap:Local Loopback inet addr:127.0.0.1
Mask:255.0.0.0
UP LOOPBACK RUNNING
MTU:16436
RX
packets:0
Metric:1
errors:0
dropped:0
overruns:0
errors:0
dropped:0
overruns:0
frame:0 TX
packets:0
carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b)
TX bytes:0 (0.0 b)
Untuk seting Ethernet pada komputer yang lain dapat dilakukan dengan perintah seperti diatas. Tes koneksi terhadap komputer lain dalam satu jaringan dengan perintah ping [root@linuxer anwar]# ping 192.168.0.3 PING
192.168.0.3
(192.168.0.3)
from
192.168.0.3:
56(84)
bytes of data. 64 bytes from 192.168.0.3: icmp_seq=1 ttl=64 time=0.584 ms
88
64 bytes from 192.168.0.3: icmp_seq=2 ttl=64 time=0.226 ms 64 bytes from 192.168.0.3: icmp_seq=3 ttl=64 time=0.211 ms 64 bytes from 192.168.0.3: icmp_seq=4 ttl=64 time=0.221 ms 64 bytes from 192.168.0.3: icmp_seq=5 ttl=64 time=0.213 ms 64 bytes from 192.168.0.3: icmp_seq=6 ttl=64 time=0.213 ms
--- 192.168.0.3 ping statistics --6 packets transmitted, 6 received, 0% loss, time 5008ms rtt min/avg/max/mdev = 0.211/0.278/0.584/0.136 ms
4.4.2
Instalasi IPVS Setelah kompilasi dan patching kernel berhasil, selanjutnya adalah
instalasi IPVS yang digunakan untuk mengkonfigurasi dan mengontrol kernel yang akan digunakan sebagai LinuxDirector. Sebelum installasi ipvsadm dilakukan, harus dipastikan bahwa komputer yang akan digunakan sebagai LinuxDirector sudah berjalan menggunakan kernel yang telah di patching dengan ip_vs. Adapun langkah-langkah yang digunakan untuk instalasi ipvsadm adalah sebagai berikut : Reboot komputer, kemudian pastikan booting menggunakan kernel yang telah dispatch dengan ip_vs Untuk mengecek apakah sistem telah benar-benar menjalankan kernel yang telah di patch dengan ip_vs, jalankan perintah uname –a atau jika ip_vs dikompile dalam bentuk module dapat diberikan perintah lsmod | grep ip_vs Selanjutnya extrac file ipvsadm dengan cara sebagai berikut [root@linuxer anwar]# tar -zxvf ipvsadm-1.21.tar.gz
89
Ket : -z = compress, -x = exclude from file, -v = label name,
-f = file hostname
ipvsadm-1.21/config_stream.c ipvsadm-1.21/config_stream.h ipvsadm-1.21/contrib/ ………………………………………………………… ………………………………………………………… ………………………………………………………… ipvsadm-1.21/Makefile ipvsadm-1.21/README ipvsadm-1.21/SCHEDULERS ipvsadm-1.21/VERSION [root@linuxer anwar]# cd ipvsadm-1.21 [root@linuxer ipvsadm-1.21]# make [root@linuxer ipvsadm-1.21]# make install
Apabila terjadi error seperti dibawah, sewaktu melakukan perintah make. Maka lakukan perubahan konfigurasi pada file yang terletak pada direktori libipvs.
[root@linuxer ipvsadm-1.21]# make gcc -Wall -Wunused -Wstrict-prototypes -g -O2 I/usr/src/linux/include -I.. -I. -DVERSION=\"1.21\" DSCHEDULERS=\""rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq"\" DHAVE_POPT -DHAVE_NET_IP_VS_H -o ipvsadm.o -c ipvsadm.c In file included from ipvsadm.c:120: libipvs/libipvs.h:14:23: net/ip_vs.h: No such file or directory
90
make: *** [ipvsadm.o] Error 1 [root@linuxer ipvsadm-1.21]# cd libipvs
Cari file ip_vs.h dengan cara sebagai berikut [root@scobydo libipvs]# locate ip_vs.h /usr/src/linux-2.4.20/include/net/ip_vs.h
Kemudian edit file libipvs.h : [root@linuxer libipvs]# vi libipvs.h #include
Menjadi #include
Setelah perintah diatas dijalankan, maka kompilasi ulang ipvsadm. [root@linuxer ipvsadm-1.21]#make [root@linuxer ipvsadm-1.21]#make install
Setelah proses kompilasi selesai, untuk menguji apakah ipvsadm sudah berhasil di install dapat dilakukan dengan cara sebagai berikut : [root@linuxer anwar]# /sbin/ipvsadm IP Virtual Server version 1.0.9 (size=4096) Prot LocalAddress:Port Scheduler Flags ->
RemoteAddress:Port
Forward
Weight
ActiveConn InActConn
jika tampak pesan seperti diatas, maka proses instalasi ipvsadm berhasil. Aktifkan IP_FOWARDING, dengan cara sebagai berikut : [root@linuxer anwar]# echo "1" >/proc/sys/net/ipv4/ip_forward
atau dapat dilakukan dengan mengedit file yang terletak di /etc/sysctl.conf, kemudian tambahkan baris sepeti dibawah.
91
net.ipv4.ip_forward = 1
Setelah semua komputer dikonfigurasi IP Addressnya sesuai dengan system diagram blok perancangan, maka kita dapat seting ipvsadm sesuai dengan sistem loadbalancer yang diinginkan.
4.4.3 LVS scheduler LVS scheduler merupakan suatu proses penjadwalan yang dilakukan oleh LinuxDirector untuk menugaskan realserver melayani request yang datang dari beberapa client. Jenis-jenis scheduler yang dapat dilayani oleh LinuxDirector tergantung pada versi patch LVS dan bagaimana cara konfigurasi kernel. Adapaun jenis dari scheduler tersebut adalah sebagai berikut: •
rr (roud robin): Load balancer akan mendistribusikan beban kerja secara merata ke beberapa real server.
•
wrr (weighted roud robin): Load balancer akan mendistribusikan beban kerja ke real server sesuai dengan perbandingan beban kerja yang telah diberikan.
•
lc (Least-Connection): Load balancer akan mendistribusikan beban kerja ke real server dengan koneksi yang paling sedikit.
•
wlc
(Weighted
Least-Connection):
Load
balancer
akan
mendistribusikan beban kerja ke real server dengan koneksi yang paling sedikit dan disesuaikan dengan perbandingan beban kerja yang telah diberikan
92 •
lblc (Locality-Based
Least-Connection):
Load balancer akan
mendistribusikan beban kerja ke real server dengan cara sebagai berikut : •
Jika permintaan data tersebut datang dari suatu IP yang sama dengan sebelumnya maka permintaan data tersebut akan dilayani oleh real server yang sama.
•
Jika satu real server tersebut terjadi overload atau tidak mampu melayani permintaan data lagi maka permintaan data tersebut akan diarahkan oleh load balancer kereal server yang memilki beban kerja paling sedikit.
•
dh (Destination Hashing): Load balancer akan mendistribusikan beban kerja ke real server dengan cara melihat table hash sesuai dengan tujuan alamat dari suatu IP Address.
•
sh (Source Hashing): Load balancer akan mendistribusikan beban kerja ke real server dengan cara melihat table hash sesuai dengan alamat asal dari suatu IP Address.
•
sed (Shortest Expected Delay): Load balancer akan mendistribusikan beban kerja ke real server berdasarkan delay.
•
nq (Never Queue): Load balancer akan mendistribusikan beban kerja ke real server yang sedang idle (tidak melakukan pekerjaan) namun jika semua server sedang sibuk maka secara otomatis akan mengadopsi sistem Shortest Expected Delay.
93
Dalam mengatur proses penjadwalan LinuxDirector melalui NAT ada beberapa langkah atau tahap yang harus dijalankan. Secara umum perintah yang digunakan untuk membuat load balancer dengan ipvsadm adalah sebagai berikut. /sbin/ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] /sbin/ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight]
Untuk mengetahui lebih jauh perintah-perintah yang ada pada ipvsadm dapat dilakukan dengan mengtikkan perintah /sbin/ipvsadm –help pada shell linux. Untuk membagi beban kerja dari Server secara sederhana dapat diberikan perintah sebagai berikut : [root@linuxer anwar]# /sbin/ipvsadm -A -t 192.168.0.1:80 -s wlc
Untuk service telnet [root@linuxer anwar]# /sbin/ipvsadm -A -t 192.168.0.1:23 -s rr
Untuk melihat hasilnya, ketikkan perintah berikut pada shell linux [root@linuxer anwar]# /sbin/ipvsadm IP Virtual Server version 1.0.9 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port
Forward Weight ActiveConn
InActConn TCP
192.168.0.1:http wlc
TCP
192.168.0.1:telnet rr
Dengan konfigurasi diatas maka setiap permintaan pada port 80 atau protocol http akan diarahkan ke real server dengan system penjadwalan wlc (
94
weight least connection ) sedangkan untuk telnet akan diarahkan ke real server dengan system penjadwalan rr ( roud robin ). Untuk menghapus konfigurasi yang telah diberikan pada contoh diatas dapat diberikan perintah sebagai berikut: [root@linuxer anwar]#
/sbin/ipvsadm –C
Setelah mengkonfigurasi LinuxDirector pada langkah sebelumnya, maka konfigurasi dapat dilanjutkan untuk menambah real server dengan cara sebagai berikut [root@linuxer anwar]# /sbin/ipvsadm -a –t 192.168.0.1:80
-r
192.168.0.3:80 -m -w 10 [root@linuxer anwar]# /sbin/ipvsadm -a –t 192.168.0.1:80
-r
192.168.0.4:80 -m -w 5
Agar suatu permintaan pada port 80 atau protocol http diarahkan ke real server dengan system penjadwalan rr ( roud robin ) atau dengan system penjadwalan yang lainnya maka dapat diberikan perintah sebagai berikut. [root@linuxer anwar]# /sbin/ipvsadm -E -t 192.168.0.1:80
-s
rr [root@linuxer anwar]# /sbin/ipvsadm -e –t 192.168.0.1:80 -r 192.168.0.3:80 –m [root@linuxer anwar]# /sbin/ipvsadm -e –t 192.168.0.1:80 -r 192.168.0.4:80 -m
Untuk memeriksa konfigurasi diatas dapat dilakukan dengan telnet atau ssh ke alamat 192.168.0.1 dan periksa status dari LinuxDirector dengan mengetikkan
perintah
/sbin/ipvsadm.
Perintah-perintah
diatas
dapat
dipermudah dengan menggabungkannya dalam suatu script dengan menggunakan
95
pemrograman bash. Dibawah ini merupakan contoh penggunaan script menggunakan bash. [root@linuxer anwar]# vi lvs.sh Kemudian tambahkan baris berikut #!/bin/sh #------mini-HOWTO-setup-LVS-NAT-director----------
#set ip_forward ON for vs-nat director (1 on, 0 off). cat /proc/sys/net/ipv4/ip_forward echo "1" >/proc/sys/net/ipv4/ip_forward #director is gw for realservers #turn OFF icmp redirects (1 on, 0 off) echo "0" >/proc/sys/net/ipv4/conf/all/send_redirects cat
/proc/sys/net/ipv4/conf/all/send_redirects
echo "0" >/proc/sys/net/ipv4/conf/default/send_redirects cat
/proc/sys/net/ipv4/conf/default/send_redirects
echo "0" >/proc/sys/net/ipv4/conf/eth0/send_redirects cat
/proc/sys/net/ipv4/conf/eth0/send_redirects
#setup VIP /sbin/ifconfig eth0:110 192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0 #set default gateway /sbin/route add default gw 202.159.121.57 netmask 0.0.0.0 metric 1
#clear ipvsadm tables /sbin/ipvsadm -C
96
#install LVS services with ipvsadm #add telnet to VIP with rr sheduling /sbin/ipvsadm -A -t 192.168.0.1:telnet -s rr
#first realserver #forward telnet to realserver 192.168.0.3 using LVS-NAT (m), with weight=1 /sbin/ipvsadm -a –t 192.168.0.1:telnet -r 192.168.0.3:telnet -m -w 1 #check that realserver is reachable from director ping -c 1 192.168.0.3
#second realserver #forward telnet to realserver 192.168.0.4 using LVS-NAT (m), with weight=1 /sbin/ipvsadm -a -t 192.168.0.1:telnet -r 192.168.0.4:telnet -m -w 1 #checking if realserver is reachable from director ping -c 1 192.168.0.4 #list ipvsadm table /sbin/ipvsadm #------mini-HOWTO-setup-LVS-NAT-director----------
Setelah mengetikkan perintah seperti diatas dan kemudian menyimpannya dengan mengetikkan perintah Esc :wq lalu tekan enter, langkah berikutnya adalah mengubah mode dari file lvs.sh tersebut agar dapat di execute dengan cara seagai berikut : [root@linuxer anwar]# chmod 755 lvs.sh
Untuk mengesekusi file lvs.sh [root@linuxer anwar]#./lvs.sh &
97
Agar perintah diatas dapat dijalankan pada waktu startup atau pada waktu booting maka perintah diatas dapat diketikkan pada file rc.local yang terdapat pada direktori /etc/rc.d/rc.local.
4.5 Instalasi Heartbeat dan Mon Dalam instalasi ini dibutuhkan paling sedikit dua komputer yang mempunyai port serial. Dalam hal ini port serial digunakan untuk menggantikan Ethernet card agar LinuxDirector master dan LinuxDirector slave keduanya bisa saling berhubungan. Adapun langkah-langkahnya adalah sebagai berikut : Pada komputer master berikan perintah sebagai berikut. [root@lvs1 anwar]# cat < /dev/ttyS0
Pada komputer slave [root@lvs2 anwar]# echo "hello heartbeat" > /dev/ttyS0
Setelah perintah diatas diberikan, pada Komputer master akan terlihat pesan yang telah dimasukkan dengan perintah echo tesebut. Konfigurasi komputer master dengan IP Adrres 192.168.0.1 dan komputer slave dengan IP Address 192.168.0.2. kemudian edit file /etc/hosts dan tambahkan baris sebagai berikut. [root@lvs1 anwar]# vi /etc/hosts 192.168.0.1 lvs1.umm.ac.id 192.168.0.2 lvs2.umm.ac.id
LinuxDirector master dan LinuxDirector slave bisa dihubungkan tanpa melalui serial port yaitu menggunakan dua buah Ethernet card yang dihubungkan secara langsung dengan kabel UTP yang disusun secara crossover atau menggunakan kabel UTP yang disusun secara straight dengan melalui HUB.
98
4.5.1 Instalasi HeartBeat Langkah-langkah yang harus dijalankan dalam instalasi HeartBeat adalah sebagai berikut: Install package heartbeat kedalam LinuxDirector master dan slave. • heartbeat-1.0.4-1.rh.7.3.um.1.i386.rpm • heartbeat-pils-1.0.4-1.rh.7.3.um.1.i386.rpm • heartbeat-stonith-1.0.4-1.rh.7.3.um.1.i386.rpm • ucd-snmp-4.2.4-3.i386.rpm • ucd-snmp-devel-4.2.4-3.i386.rpm • ucd-snmp-utils-4.2.4-3.i386.rpm
Agar dalam instalasi tidak terjadi ketergantungan package dan membuang waktu maka dapat diberikan perintah sebagai berikut. [root@linuxer anwar]#rpm –ivh *.rpm [root@linuxer2 anwar]#rpm –ivh *.rpm
perintah diatas mempunyai pengertian bahwa semua paket yang berakhiran dengan extension rpm akan diinstal ke dalam system. Buat sebuah file
/etc/ha/ha.cf
(/var/log/ha-log)
kedalam LinuxDirector master dan slave. Tambahkan baris seperti dibawah pada file /etc/ha/ha.cf logfile /var/log/ha-log keepalive 2 deadtime 10 serial
/dev/ttyS0
node lvs1.umm.ac.id node lvs2.umm.ac.id
99 Buat sebuah file /etc/ha/haresources kedalam LinuxDirector master dan slave. Konfigurasi pada file ini akan mendefinisikan IP Virtual dan akan membuat LinuxDirector slave mengambil alih fungsi LinuxDirector master jika LinuxDirector master down. [root@linuxer anwar]#vi /etc/ha/haresources [root@linuxer2 anwar]#vi /etc/ha/haresources
kemudian tambahakan baris seperti berikut : lvs1.umm.ac.id 192.168.0.2 mon
Buat sebuah file /etc/ha/authkeys kedalam LinuxDirector master dan slave. [root@linuxer anwar]#vi /etc/ha/authkeys [root@linuxer2 anwar]#vi /etc/ha/authkeys kemudian tambahkan baris seperti berikut: auth 1 1 crc
Langkah selanjutnya adalah membuat file /etc/rc.d/init.d/lvs [root@linuxer anwar]#vi /etc/rc.d/init.d/lvs
kemudian tambahkan baris seperti berikut. #!/bin/sh # # You probably want to set the path to include # nothing but local filesystems. # PATH=/bin:/usr/bin:/sbin:/usr/sbin export PATH
IPVSADM=/sbin/ipvsadm
100
case "$1" in start) if [ -x $IPVSADM ] then echo 1 > /proc/sys/net/ipv4/ip_forward $IPVSADM -A -t 192.168.0.1:80 –s wlc $IPVSADM -a -t 192.168.0.1:80 -r 172.17.10.3 w 5 -g $IPVSADM -a -t 192.168.0.1:80 -r 172.17.10.4 w 5 -g fi ;; stop) if [ -x $IPVSADM ] then $IPVSADM -C fi ;; *) echo "Usage: lvs {start|stop}" exit 1 esac
exit 0
Agar file lvs tersebut dapat di eksekusi maka perlu diubah mode nya dengan cara [root@linuxer anwar]# chmod 775 /etc/rc.d/init.d/lvs
101
4.5.2 Instalasi MON Instalasi dan konfigurasi MON dilakukan pada LinuxDirector master dan LinuxDirector Slave. Adapun langkah-langkah dalam instalasi MON adalah sebagai berikut. Letakkan
source
code
mon-0.99.2.tar.gz
pada
direktori
/etc/lib [root@linuxer anwar]# cd /etc/lib [root@linuxer anwar]# tar -zxvf mon-0.99.2.tar.gz [root@linuxer anwar]# mv mon-0.99.2.tar.gz mon
Program Mon membutuhkan modules Perl eksternal. Diantaranya Period-1.20.tar, 1.3101.tar.
Time-HiRes-1.66.tar,
dan
Convert-BER-
Semuanya bisa didownload di situs perl. Setelah
module tersebut didapatkan langkah selanjutnya adalah melakukan unpack terhadap module tersebut dan setelah di unpack masuk ke dalam direktori module yang telah di unpack tersebut kemudian berikan perintah pada masing-masing module yang telah di unpack dengan cara sebagai berikut # perl Makefile.pl # make # make test # make install
Masuk kedalam direktori /usr/lib/mon/alert.d
kemudian buat
file lvs.alert. Dalam hal ini lvs.alert berfungsi untuk mengambil virtual service
( IP : Port ) dan melayani port dari real server.
# vi /usr/lib/mon/alert.d/lvs.alert
102
Kemudian tambahkan baris sebagai berikut : #!/usr/bin/perl # # lvs.alert - Linux Virtual Server alert for mon # # It can be activated by mon to remove a real server when the # service is down, or add the server when the service is up. # # use Getopt::Std; getopts ("s:g:h:t:l:P:V:R:W:F:u");
$ipvsadm = "/sbin/ipvsadm"; $protocol = $opt_P; $virtual_service = $opt_V; $remote = $opt_R;
if ($opt_u) { $weight = $opt_W; if ($opt_F eq "nat") { $forwarding = "-m"; } elsif ($opt_F eq "tun") { $forwarding = "-i"; } else { $forwarding = "-g"; }
103
if ($protocol eq "tcp") { system("$ipvsadm -a -t $virtual_service -r $remote -w $weight $forwarding"); } else { system("$ipvsadm -a -u $virtual_service -r $remote -w $weight $forwarding"); } } else { if ($protocol eq "tcp") { system("$ipvsadm -d -t $virtual_service -r $remote"); } else { system("$ipvsadm -d -u $virtual_service -r $remote"); } };
Setelah menambahkan baris seperti diatas maka langkah selajutnya adalah menyimpan dan keluar dengan cara menekan Esc:wq! Buat sebuah file /etc/lib/mon/mon.cf dengan cara sebagai berikut: # vi /etc/lib/mon/mon.cf
Kemudian tambahkan baris sebagai berikut : # # The mon.cf file # # # global options # Cfbasedir = /etc/mon
104
Alertdir = /usr/lib/mon/alert.d Mondir = /usr/lib/mon/mon.d Maxprocs = 20 histlength = 100 randstart = 30s
# # group definitions (hostnames or IP addresses) # hostgroup www1 www1.domain.com
hostgroup www2 www2.domain.com
# # server 1 # watch www1 service http interval 10s monitor http.monitor period wd {Sun-Sat} alert mail.alert wensong upalert mail.alert wensong alert lvs.alert -P tcp -V 172.17.10.30:80 -R 192.168.0.3 -W 5 -F dr upalert lvs.alert -P tcp -V 172.17.10.20:80 -R 192.168.0.3 -W 5 -F dr
# # server 2
105
# watch www2 service http interval 10s monitor http.monitor period wd {Sun-Sat} alert mail.alert wensong upalert mail.alert wensong alert lvs.alert -P tcp -V 172.17.10.30:80 -R 192.168.0.4 -W 5 -F dr upalert lvs.alert -P tcp -V 172.17.10.30:80 -R 192.168.0.4 -W 5 -F dr
Konfigurasi mon dapat digunakan untuk memonitor http service dan server di dalam cluster
4.6
Konfigurasi DNS, Web server, Qmail server dan FTP server pada komputer Real Server
4.6.1 Konfigurasi DNS server DNS itu berfungsi seperti buku telepon di telepon seluler kita. Ketika kita ingin menelepon si Ahmad, maka kita cukup menuliskan nama Ahmad dan langsung menghubunginya. Padahal secara logika, provider kita tentu tidak mengenal nama Ahmad karena provider hanya mengenal nomor desimal sekian digit (nomor ponsel) untuk menghubungkan permintaan telepon kita. Namun berkat kemampuan buku telepon me-reverse nama Ahmad menjadi nomor desimal yang dimaksud, maka kita tidak perlu menghapal semua nomor ponsel yang ada di buku telepon kita. Seperti inilah fungsi DNS, kita tidak perlu menghapal semua
106
alamat IP dari situs yang ingin kita akses, kita hanya cukup memasukkan nama domain yang lebih mudah kita hapal. Cara kerja DNS mempunyai 2 sistem utama, yaitu sistem reverse dan sistem cache. Sistem reverse berfungsi untuk mengubah alamat domain menjadi alamat IP begitu pun sebaliknya. Sedangkan sistem cache buku telepon itu sendiri, tempat menyimpan alamat IP beserta domainnya. Ketika kita mengakses www.ambisjoke.com, maka sistem DNS lokal kita akan mencari apakah cache mempunyai alamat IP nya dengan cara di-reverse. Jika tidak ada, maka DNS lokal kita akan menghubungi DNS Server diatasnya (biasanya root DNS) untuk mencari IP dari www.ambisjoke.com. Ketika sudah didapat, maka DNS lokal kita akan menyimpan alamatnya di cache supaya ketika lain kali mengakses situs itu lagi, prosesnya tidak serumit proses tadi. Sofware yang digunakan untuk konfigurasi DNS tersebut dalam sistem operasi Linux adalah BIND. Adapun langkah-langkah yang diperlukan sebagai berikut : Check IP dengan menggunakan perintah dibawah ini. [root@linuxer
anwar]#
scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static BROADCAST=192.168.0.255 IPADDR=192.068.0.3 NETMASK=255.255.255.0 NETWORK=192.168.0.0 ONBOOT=yes
vi
/etc/sysconfig/network-
107 BIND merupakan software yang telah tersedia di Linux, tetapi untuk memastikan apakah paket tersebut telah terinstal atau tidak, maka dilakukan perintah [root@linuxer anwar]# rpm - qa | grep bind bind-utils-9.2.1-16 ypbind-1.14-11 bind-9.2.1-16 redhat-config-bind-1.9.0-13
Perintah rpm –qa | grep bind adalah perintah untuk mencari aplikasi yang telah terinstal pada komputer yang mengandung kata bind. Jika paket bind telah terinstal maka akan ditampilkan bind9.2.1-16 merupakan file utama dari bind. Sedangkan file lainnya
hanya file pendukung saja Edit file /etc/resolv.conf [root@linuxer anwar]# vi /etc/resolv.conf
Kemudian tambahkan nameserver
192.168.0.3
Edit File /etc/named.conf. File named.conf adalah file utama dalam DNS yang digunakan untuk mengkonfigurasi alamat ip ke almat lain. File yang digunakan adalah file.rev dan file.zone, dengan ketentuan : a. Copy
dari zone “localhost” sampai bawah (lazimnya 11
baris) b. Paste di atas include c. Yang perlu diubah: - “Localhost”
-> domain (contoh: netlab.com)
- “localhost.zone”
-> netlab.zone
108
- “0.168.192”
-> IP dengan ketentuan 3 digit pertama
- “named.local”
harus dibalik.
-> netlab.rev
[root@linuxer anwar]#vi /etc/named.conf
Masuk ke dalam direktori /var/named dan check file didalam direktori /var/named. Dalam direktori named terdapat file localhost.zone, named.ca, dan named.local [root@linuxer anwar]#cd /var/named [root@linuxer anwar]#ls /var/named localhost.zone
named.ca
named.local
Copikan file named.local menjadi file.zone dan file.rev. Sintaksnya sebagai berikut : cp named.local file.zone [root@linuxer anwar]#cp named.local netlab.zone [root@linuxer anwar]#cp named.local netlab.rev
Pada langkah berikutnya adalah mengedit kedua file tersebut dengan menggunakan editor vi. Pertama kali yang akan diedit adalah file netlab.zone dengan menggunakan perintah [root@linuxer anwar]#vi /var/named/netlab.zone $TTL 86400 @ IN SOA netcom.ut.igos.co.id. root.netcom.ut.igos.co.id. ( 1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN
NS
netlab.co.id.
IN
MX 10 netlab.co.id.
109
netlab
IN
A
192.168.0.3
www
IN
CNAME netlab
mail
IN
CNAME netlab
ftp
IN
CNAME netlab
Setelah file netlab.zone dikonfigurasi maka sekarang saatnya melakukan
konfigurasi
untuk
file
netlab.rev
dengan
cara
mengetikkan perintah vi netlab.rev. perubahan yang dilakukan adalah merubah localhost menjadi nama domain yang telah dibuat dan pada baris terakhir dituliskan IP digit terkhir yaitu 3 yang ditunjukan oleh pointer ke ns yang telah dibuat. Untuk keluar dan menyimpan perubahan menggunakan esc lalu :wq. [root@linuxer anwar]#vi /var/named/netlab.rev $TTL 86400 @
IN
.ut.igos.co.id.
SOA
netcom.ut.igos.co.id. root.netcom
( 1997022700 ; Serial 28800
; Refresh
14400
; Retry
3600000 86400 )
3
; Expire ; Minimum
IN
NS
netlab.co.id.
IN
PTR
netlab.co.id
Melakukan tes pada DNS server Sebelum dilakukanya pengetesan terhadap DNS server yang dibuat, akan dilakukan restart terlebih dahulu terhadap service network dan service named yang digunakan untuk menjalankan DNS server
110
menggunakan perintah service named restart dan service network restart Pada langkah selanjutnya akan dilakukan pengetesan untuk melihat apakah DNS server dapat berjalan dengan baik atau tidak, pengetesan ini dapat dilakukan dengan menggunakan perintah nslookup. Pada baris terakhir setelah tanda >, penulis mengetikan ns.netlab.co.id untuk pengetesan nama domain dari DNS, www.netlab.co.id untuk pengetesan domain pada web server, mail. netlab.co.id untuk memastikan bahwa mail server mempunyai IP Address yang sama dengan web server, ftp.netlab.co.id untuk memastikan bahwa ftp server mempunyai IP Address yang sama dengan web server dan mail server, dan yang terakhir adalah pengetesan menggunakan IP Address itu sendiri yaitu 192.168.0.3. Untuk keluar dari perintah nslookup diketikan exit. Selain menggunakan perintah nslookup, cara lain yang dilakukan untuk memeriksa DNS server adalah dengan menggunakan perintah ping 192.168.0.3 untuk melihat koneksi dari IP Address.
4.6.2
Konfigurasi Web Server Jika DNS server telah berjalan, maka yang akan dilakukan berikutnya
yaitu proses konfigurasi Web server, langkah-langkah yang akan dilakukan adalah sebagai berikut:
111 Konfigurasi file httpd.conf Untuk melakukan konfigurasi Web server yang pertama harus dilakukan adalah melakukan konfigurasi pada file httpd.conf yang terletak pada direktori
/etc.
untuk
lebih
jelasnya
diketikan
perintah
vi
/etc/httpd/conf/httpd.conf untuk melakukan konfigurasi file httpd.conf dengan menggunakan editor vi. Pada file httpd.conf tersebut akan dicari tulisan yang mengandung kata-kata
yang
DocumentRoot, VirtualHost. ServerName.
akan
dikonfigurasi
seperti
DirectoryIndex, Yang Untuk
pertama mencari
akan baris
ServerName,
AddType,
dan
dikonfigurasi
adalah
yang
mengandung
kata
ServerName akan menggunakan keunggulan dari editor vi yaitu dengan menggunakan mode command lalu mengetikan “/ “ yang diikuti kata yang akan dicari. Untuk menemukan kata ServerName maka diketikan /ServerName. Setelah ditemukan tulisan ServerName, kemudian akan dilakukan copy untuk baris ServerName yang dimaksud agar jika terjadi kesalahan, maka baris asli yang belum diubah masih dapat digunakan kembali. Kemudian salah satu dari perintah tersebut dihilangkan tanda komentarnya(#)dan memasukan alamat IP dari web server yang akan dibuat dengan mengganti tulisan new.host.name:80 menjadi 192.168.0.3:80. Sedangkan yang dimaksud dengan :80 adalah menerangkan bahwa web server tersebut menggunakan port 80. [root@linuxer anwar]#vi /etc/httpd/conf/httpd.conf
112
# If your host doesn’t have a registered DNS name, enter its IP address here. # You will have to access it by its address anyway, and this will make # redirections work in a sensible way. # #ServerName new.host.name:80 ServerName 192.168.0.3 /ServerName
Baris yang akan dikonfigurasi selanjutnya adalah DocumentRoot. DocumentRoot ini akan digunakan untuk web server untuk meletakkan semua file yang berhubungan dengan web server. Perintah yang digunakan adalah /DocumentRoot. Pastikan DocumentRoot terletak pada /var/www/html # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but #symbolic links and aliases may be used to point to other locations. # DocumentRoot “/var/www/html” # #
Each
directory
to
which
Apache
has
access
can
be
configured with respect /DocumentRoot
Kemudian selanjutnya akan dikonfigurasi baris DirectoryIndex dan AddType
untuk menambahkan tipe file yang dapat dibaca atau
113
ditampilkan pada web server. Pada baris DirectoryIndex hanya ditambahkan index.php. # The index.html.var file (a type-map) is used to deliver content# negotiated documents. The MultiViews option can be used for the # same purpose, but it is much slower. # DirectoryIndex index.html index.html.var index.php # # AccessFileName: The name of the file to look for in each directory /Directoryindex
Pada baris AddType dilakukan copy satu baris untuk menambahkan satu type file lagi dan merubah baris hasil pengkopian menjadi AddType application/x-httpd-php .php # Addtype allows you to add to or override the MIME configuration # file mime.types for specific file types. # AddType application/x-tar. tgz AddType application/x-httpd-php .php /AddType
Sampai pada tahap ini konfigurasi dapat dikatakan selesai. Untuk mencoba web server ini dibuat sebuah file dengan tipe php untuk menampilkan sebuah halaman php info di Linux. Untuk membuat file tersebut menggunakan perintah vi /var/www/html/index.php lalu pada
114
editor vi dapat mengetikan perintah php untuk menampilkan halaman php info kemudian simpan dan keluar. Kemudian untuk mencoba web server yang telah dibuat, sebelumnya harus merestart terlebih dahulu service
httpd dengan menggunakan
perintah service httpd restart. Membuka konqueror lalu ketikan alamat web server yang telah dikonfigurasi pada address bar dengan menulis
www.netlab.co.id
Munculnya
halaman
menandakan web server telah berjalan. [root@linuxer anwar]#vi /var/www/html/index.php
Gambar 4.8 Tampilan PHP info
php
info
115 Membuat Virtual Host Untuk membuat sebuah virtual host, maka pada file httpd.conf yang telah dikonfigurasi pada langkah sebelumnya akan dicari tulisan yang mengandung
kata
VirtualHost
dengan
menggunakan
mode
command. Untuk menemukan baris yang dimaksud maka diketikan perintah /VirtualHost. Setelah ditemukan VirtualHost, kemudian copy baris tersebut dan hilangkan tanda # agar beris tersebut tidak dianggap sebagai komentar. Lalu tanda bintang diubah menjadi alamat IP dari komputer yang akan dijadikan virtual host. Pada langlah selanjutnya adalah copy 7 baris dimulai dari dengan perintah 7yy dan melakukan paste pada akhir baris dengan menekan P. Setelah itu hapus tanda komentar dari hasil pengkopian tersebut tetapi baris ke-4 dan ke-5 dibiarkan menggunakan tanda komentar. Tanda bintang pada baris pertama diubah menjadi alamat IP dari virtual host yaitu 192.168.0.3. Pada ServerAdmin diubah menjadi [email protected], pada
DocumentRoot
diubah
menjadi
/var/www/mail
dan
ServerName diubah menjadi mail.netlab.co.id. Simpan dan keluar dari editor vi dengan mengetikan :wq kemudian membuat direktori mail sebagai DocumentRoot dari VirtualHost mail.netlab.co.id dengan mengetikan perintah mkdir /var/www/mail. Setelah semua selesai dilaksanakan, maka langkah terakhir dalam konfigurasi web server adalah merestart service httpd dengan mengetikan perintah service httpd restart.
116
Gambar 4.9 Virtual Host
4.6.3
Instalasi dan Konfigurasi Qmail Beserta Paket Pendukungnya. Setelah web server dapat berjalan, kemudian akan dilakukan instalasi
Qmail bersamaan dengan paket-paket pendukungnya. Sebelumnya untuk mendapatkan paket Qmail beserta paket-paket tambahannya dapat di-download dari internet, kemudian semua file-file yang telah didownload disimpan ke dalam satu direktori yang diberi nama qmail. Dalam direktori qmail tersebut, dibuat sebuah direktori dengan nama scripts yang kemudian akan diisikan file-file script yang telah dibuat untuk instalasi Qmail ini. Di dalam direktori scripts ini terdapat sebuah file yang berisi script untuk instalasi Qmail. Sebelumnya scripts ini bersifat static. Jadi direktori qmail ini harus disimpan di dalam directori /usr/local/src/. Agar dapat dieksekusi, file install harus diberi hak akses untuk dapat dieksekusi dengan
117
menggunakan perintah chmod 755 install. Setelah file tersebut dapat dieksekusi, kita dapat melakukan instalasi Qmail yang akan dibuat dengan cara mengeksekusi file install dengan perintah ./install maka perintah tersebut akan melakukan instalasi Qmail beserta paket pendukungnya. Berikut ini adalah penggalan dari perintah-perintah pada saat instalasi dan konfigurasi berlangsung yang terdapat di dalam file install tersebut. 4.6.3.1 Instalasi Qmail Karena pada saat penginstalan Linux Redhat sudah terdapat Mail Server Sendmail, maka harus dimatikan mail server Sendmail tersebut agar mail server lain yang akan digunakan dapat berjalan lebih baik. Untuk mematikan mail server Sendmail maka digunakan perintah: [root@anwar / ]# service sendmail stop [root@anwar / ]# For a in `rpm –qa | grep sendmail`;do rpm –e – nodeps $a; done cd /usr/local/src/qmail
Diasumsikan bahwa script dari instalasi qmail beserta paket-paket pendukungnya telah didapatkan dari hasil download di internet, yang kemudian script tersebut disimpan pada file yang bernama qmail dan diletakkan pada direktori /usr/local/src. Maka langkah berikutnya adalah melakukan ekstraksi dan konfigurasi semua paket pendukung dari mail server, berikut tahapannya: Melakukan ekstraksi paket-paket pendukung Langkah selanjutnya mengekstrak beberapa paket yang berada pada direktori src dengan menggunakan perintah berikut ini: [root@anwar src]# tar -xzvf qmail-1.03.tar.gz
118 Kemudian kita akan melihat paket – paket apa saja yg ada di qmail : Caranya : [root@anwar src]#cd usr /local/qmail/scripts [root@anwar scripts]#vi install :
Paket-paketnya : -
Daemontools = paket yg sudah terinstall, tdk dpt di uninstall
-
Vpopmail = mail dapat dipakai untuk dua domain
-
qmailctl = untuk konfigurasi qmailnya
-
qmail admin = untuk konfigurasi adminnya
Kita akan memberikan hak akses untuk menginstall qmailnya: Caranya : [root@anwar scripts]#chmod 755 unistall install
Kemudian kita install qmailnya : [root@anwar scripts]# ./install Minta password : netlab
Kemudian kita akan menginstall file conf.pl : Caranya : [root@anwar scripts]#cd /var/www/mail/config [root@anwar config]# ./conf.pl
Kemudian akan tampil menu pilihan : -
Pilih c enter
-
Pilih 2 untuk server setting
-
Pilih 1 untuk domain
-
Pilih s untuk save
-
Pilih q untuk quit
119 Kemudian jalankan Konqueror Web browser Ketikkan : mail.domain yg kita pakai Contoh : mail.anwar.co.id Itu untuk mail clientnya Sedangkan mail untuk adminnya : Ketikkan : mail.domain yg kita pakai/cgi-bin/qmailadmin Contoh : mail.netlab.co.id/cgi-bin/qmailadmin
4.6.4
Konfigurasi FTP server
Periksa apakah DNS yang sebelumnya kita konfigurasikan dapat dijalankan atau tidak dengan menggunakan perintah nslookup. Periksa apakah paket vsftpd sudah terinstall atau belum. [root@anwar /]#rpm –qa |grep vsftpd
Jika
belum terinstall, copikan paketnya dari cd redhat dengan
menggunakan perintah. [root@anwar /]# rmp –ivh [nama paket vsftpd]
Lalu setelah itu jalankan service ftp server tersebut dengan menggunakan perintah. [root@anwar /]#service vsftpd restart
Untuk
konfigurasi
dari
ftp
server
ini
terdapat
pada
file
/etc/vsftpd/vsftpd.conf. Lalu ketikkan perintah. [root@anwar /]#vi /etc/vsftpd/vsftpd.conf
Jika tidak mengijinkan user anonymous untuk login pada ftp server, carilah anonymous_enable=NO
120 Simpan hasil perubahan yang dilakukan. Kemudian restart kembali service vsftpd nya. [root@anwar /]#service vsftpd restart
Lalu buatlah user untuk ftp masing-masing. Caranya dengan menggunakan perintah. [root@anwar /]#useradd anwar
Ganti password user tersebut dengan menggunakan perintah. [root@anwar /]#passwd anwar
Setelah itu kita masukkan password untuk user yang kita buat. Diusahakan panjang password yang kita berikan tidak kurang dari 6 karakter. Buatlah sebuah file atau directory pada home user masing-masing dengan menggunakan perintah. [root@anwar /]#mkdir /home/anwar/coba [root@anwar /]#touch /home/anwar/file1.txt
Jalankan konqueror, setelah itu masukkan alamat ftp yang telah kita buat dalam konfigurasi DNS. Contoh : ftp://192.168.0.4
Lalu login sebagai user ambi, masukkan username dan password user masing-masing. Maka akan muncul directory root dari ftp server, yaitu home user dari masing-masing user. Dan akan terlihat directory beserta file yang telah dibuat sebelumnya. Contoh cara untuk login menggunakan FTP server pada konqueror. ftp://username:password@alamat_ip_ftp_server. Contoh ftp://anwar:[email protected]
Catatan
: Jika anonymous_enable=YES, maka directory root
ftp servernya berada di /var/ftp/pub.
121
4.7
Uji Coba Pada model ini server sesungguhnya dapat dihubungkan dengan LAN
berkecepatan tinggi ataupun tersebar secara geografis dan dihubungkan dengan WAN kecepatan tinggi. Pada sisi muka dari server sesungguhnya terdapat suatu load balancer yang akan menjadwalkan permintaan pada berbagai server dan membuat pelayanan secara parallel pada cluster yang akan tampil sebagai layanan dari suatu sistem tunggal yang berasal dari 1 IP tunggal. Skalabilitas dicapai dengan penambahan, dan pengurangan node pada cluster yang dapat dilakukan secara transparans. High availbility diimplementasikan dengan cara mendeteksi node atau daemon yang tak bekerja, dan lalu mengkonfigurasi ulang secara otomatis sistem sesuai dengan kondisi yang ada. Linux virtual server dikembangkan dari code IP Masquerading dan beberapa port forwarding dari Steven Clarke. Mendukung layanan TCP dan UDP seperti HTTP, Proxy, DNS, FTP dan sebagainya. Untuk protokol yang mengirimkan alamat IP dan nomor port sebagai data aplikasi, kode tambahan diperlukan untuk menanganinya. Karena keterbatasan alamat IP pada IPv4 dan beberapa alasan sekuriti, makin banyak jaringan menggunakan alamat IP privat yang tak dapat diakses dari luar jaringan (Internet). Kebutuhan untuk NAT ini timbul ketika beberapa pengguna jaringan internal akan mengakses atau diakses dari Internet. NAT ini memanfaatkan header protokol Internet yang dapat diatur sedemikan rupa sehingga client merasa mengontak satu alamat IP, tetapi server pada beberapa alamat IP yang berbeda meyakini bahwa mereka dikontak langsung oleh client. Kemampuan ini dapat digunakan untuk membentuk suatu server virtual, layanan
122
parallel yang ada pada beberapa alamat IP yang berbeda, tampak sebagai suatu service virtual, pada satu alamat IP melalui NAT. Ketika user mengakses service yang disediakan oleh cluster server ini, paket request akan ditujukan pada alamat IP virtual server (alamat IP eksternal dari load balancer). Load balancer akan memeriksa alamat dan nomor port tujuan. Jika cocok dengan service dari virtual server, maka suatu server 'real' akan dipilih dari cluster dengan menggunakan suatu algoritma penjadualan, dan koneksi akan ditambahkan pada tabel hash yang akan menyimpan semua koneksi yang terjadi. Kemudian, alamat tujuan dan port dari paket tersebut dituliskan ulang ke paket sesuai dengan alamat server 'real' yang dipilih dan dikirimkan ke server tersebut. Saat paket yang termasuk dalam koneksi ini datang lagi, maka koneksi yang telah terjadi dapat diketahui dari tabel hash, paket ditulis ulang dan dikirimkan lagi ke server yang tadi telah dipilih untuk koneksi ini. Ketika paket jawaban datang, load balancer akan menulis ulang (rewrite) bagian alamat asal (source addres) dan port asal dari paket dengan menggunakan alamat dari virtual service. Ketika suatu koneksi diakhiri, atau timeout, catatan koneksi pada tabel Hash dihapus.