Untuk mengamankan router mikrotik dari traffic virus dan excess ping dapat digunakan skrip firewall berikut
Pertama buat address-list "ournetwork" yang berisi alamat IP radio, IP LAN dan IP WAN atau IP lainnya yang dapat dipercaya
Dalam contoh berikut alamat IP radio adalah = 10.0.0.0/16, IP LAN = 192.168.2.0/24 dan IP WAN = 203.89.24.0/21 dan IP lainnya yang dapat dipercaya = 202.67.33.7
Untuk membuat address-list dapat menggunakan contoh skrip seperti berikut ini tinggal disesuaikan dengan konfigurasi jaringan Anda.
Buat skrtip berikut menggunakan notepad kemudian copy-paste ke console mikrotik
/ ip firewall address-list
add list=ournetwork address=203.89.24.0/21 comment="Datautama Network"
disabled=no
add list=ournetwork address=10.0.0.0/16 comment="IP Radio" disabled=no
add list=ournetwork address=192.168.2.0/24 comment="LAN Network" disabled=no
Selanjutnya copy-paste skrip berikut pada console mikrotik
/ ip firewall filter
add chain=forward connection-state=established action=accept comment="allow
established connections" disabled=no
add chain=forward connection-state=related action=accept comment="allow
related connections" disabled=no
add chain=virus protocol=udp dst-port=135-139 action=drop comment="Drop
Messenger Worm" disabled=no
add chain=forward connection-state=invalid action=drop comment="drop invalid
connections" disabled=no
add chain=virus protocol=tcp dst-port=135-139 action=drop comment="Drop
Blaster Worm" disabled=no
add chain=virus protocol=tcp dst-port=1433-1434 action=drop comment="Worm"
disabled=no
add chain=virus protocol=tcp dst-port=445 action=drop comment="Drop Blaster
Worm" disabled=no
add chain=virus protocol=udp dst-port=445 action=drop comment="Drop Blaster
Worm" disabled=no
add chain=virus protocol=tcp dst-port=593 action=drop comment="________"
disabled=no
add chain=virus protocol=tcp dst-port=1024-1030 action=drop comment="________"
disabled=no
add chain=virus protocol=tcp dst-port=1080 action=drop comment="Drop MyDoom"
disabled=no
add chain=virus protocol=tcp dst-port=1214 action=drop comment="________"
disabled=no
add chain=virus protocol=tcp dst-port=1363 action=drop comment="ndm requester"
disabled=no
add chain=virus protocol=tcp dst-port=1364 action=drop comment="ndm server"
disabled=no
add chain=virus protocol=tcp dst-port=1368 action=drop comment="screen cast"
disabled=no
add chain=virus protocol=tcp dst-port=1373 action=drop comment="hromgrafx"
disabled=no
add chain=virus protocol=tcp dst-port=1377 action=drop comment="cichlid"
disabled=no
add chain=virus protocol=tcp dst-port=2745 action=drop comment="Bagle Virus"
disabled=no
add chain=virus protocol=tcp dst-port=2283 action=drop comment="Drop Dumaru.Y"
disabled=no
add chain=virus protocol=tcp dst-port=2535 action=drop comment="Drop Beagle"
disabled=no
add chain=virus protocol=tcp dst-port=2745 action=drop comment="Drop
Beagle.C-K" disabled=no
add chain=virus protocol=tcp dst-port=3127 action=drop comment="Drop MyDoom"
disabled=no
add chain=virus protocol=tcp dst-port=3410 action=drop comment="Drop Backdoor
OptixPro" disabled=no
add chain=virus protocol=tcp dst-port=4444 action=drop comment="Worm"
disabled=no
add chain=virus protocol=udp dst-port=4444 action=drop comment="Worm"
disabled=no
add chain=virus protocol=tcp dst-port=5554 action=drop comment="Drop Sasser"
disabled=no
add chain=virus protocol=tcp dst-port=8866 action=drop comment="Drop Beagle.B"
disabled=no
add chain=virus protocol=tcp dst-port=9898 action=drop comment="Drop
Dabber.A-B" disabled=no
add chain=virus protocol=tcp dst-port=10000 action=drop comment="Drop
Dumaru.Y, sebaiknya di didisable karena juga sering digunakan utk vpn atau
webmin" disabled=yes
add chain=virus protocol=tcp dst-port=10080 action=drop comment="Drop
MyDoom.B" disabled=no
add chain=virus protocol=tcp dst-port=12345 action=drop comment="Drop NetBus"
disabled=no
add chain=virus protocol=tcp dst-port=17300 action=drop comment="Drop Kuang2"
disabled=no
add chain=virus protocol=tcp dst-port=27374 action=drop comment="Drop
SubSeven" disabled=no
add chain=virus protocol=tcp dst-port=65506 action=drop comment="Drop PhatBot,
Agobot, Gaobot" disabled=no
add chain=forward action=jump jump-target=virus comment="jump to the virus
chain" disabled=no
add chain=input connection-state=established action=accept comment="Accept
established connections" disabled=no
add chain=input connection-state=related action=accept comment="Accept related
connections" disabled=no
add chain=input connection-state=invalid action=drop comment="Drop invalid
connections" disabled=no
add chain=input protocol=udp action=accept comment="UDP" disabled=no
add chain=input protocol=icmp limit=50/5s,2 action=accept comment="Allow
limited pings" disabled=no
add chain=input protocol=icmp action=drop comment="Drop excess pings"
disabled=no
add chain=input protocol=tcp dst-port=21 src-address-list=ournetwork
action=accept comment="FTP" disabled=no
add chain=input protocol=tcp dst-port=22 src-address-list=ournetwork
action=accept comment="SSH for secure shell" disabled=no
add chain=input protocol=tcp dst-port=23 src-address-list=ournetwork
action=accept comment="Telnet" disabled=no
add chain=input protocol=tcp dst-port=80 src-address-list=ournetwork
action=accept comment="Web" disabled=no
add chain=input protocol=tcp dst-port=8291 src-address-list=ournetwork
action=accept comment="winbox" disabled=no
add chain=input protocol=tcp dst-port=1723 action=accept comment="pptp-server"
disabled=no
add chain=input src-address-list=ournetwork action=accept comment="From
Datautama network" disabled=no
add chain=input action=log log-prefix="DROP INPUT" comment="Log everything
else" disabled=no
add chain=input action=drop comment="Drop everything else" disabled=no
Efek dari skrip diatas adalah:
1. Router mikrotik hanya dapat diakses FTP, SSH, Web dan Winbox dari IP yang didefinisikan dalam address-list "ournetwork" sehingga tidak bisa diakses dari sembarang tempat.
2. Port-port yang sering dimanfaatkan virus di blok sehingga traffic virus tidak dapat dilewatkan, tetapi perlu diperhatikan jika ada user yang kesulitan mengakses service tertentu harus dicek pada chain="virus" apakah port yang dibutuhkan user tersebut terblok oleh firewall.
3. Packet ping dibatasi untuk menghindari excess ping.
Selain itu yang perlu diperhatikan adalah: sebaiknya buat user baru dan password dengan group full kemudian disable user admin, hal ini untuk meminimasi resiko mikrotik Anda di hack orang.
Selamat mencoba.
20 October 2008
Block situs porno dengan squid...!!
This summary is not available. Please
click here to view the post.
trans....firewall
Transparent Firewall adalah firewall yang "tidak tampak" baik oleh user di dalam zona yang kita amankan atau dari luar zona kita. Transparent Firewall pada dasarnya adalah firewall biasa hanya saja implementasinya dilakukan pada bridge, sehingga tidak ada konfigurasi yang harus dilakukan pada jaringan yang sudah ada.
Tutorial ini akan (mencoba) untuk menjelaskan secara singkat bagaimana dan apa saja yang diperlukan dalam pembuatan bridge firewall pada Debian GNU/Linux, dan pengaturan umum kerja firewall yang kita buat.
Topologi yang dipakai diasumsikan seperti gambar di bawah ini.
+----------+ +--------+ +---------------+
| INTERNET |-----| BRIDGE |-----| JARINGAN KITA |
+----------+ +--------+ +---------------+
1. Kebutuhan Dasar
Implementasi ini membutuhkan beberapa hal yaitu:
1. Komputer dengan 2 NIC
2. iptables
3. bridge-utils
4. Kernel Linux 2.6 atau 2.4(dengan patch) dengan opsi bridge firewall diaktifkan
Bila anda ingin menggunakan kernel versi 2.4 silakan cari patchnya di http://ebtables.sourceforge.net/. Kernel 2.6 sudah menyertakan fasilitas ini, sehingga tidak perlu dipatch lagi.
Di sini diasumsikan bahwa kernel sudah beres, dan tinggal menginstall program lain yang dibutuhkan untuk menjalankan bridge. Komputer yang dipakai mempunyai 2 NIC yaitu eth0 dan eth1.
2. Instalasi & Konfigurasi
Seperti biasa, untuk menginstall paket pada debian kita menggunakan apt-get.
root:~# apt-get install bridge-utils iptables
Bila anda tidak menggunakan distro lain anda dapat mendownload source code untuk kedua program itu pada http://bridge.sourceforge.net/ dan http://www.iptables.org/files/ . Panduan proses instalasi dapat mengikuti file README/INSTALL yang disertakan pada tarball yang anda download.
Program yang kita dapatkan dari bridge-utils adalah brctl. Program inilah yang mengatur segala macam bagian bridge mulai pembuatan, penghapusan, penambahan anggota bridge, dan sebagainya. Buat interface bridge (br0), dan tambahkan kedua interface ke dalam interface bridge yang baru dibuat.
root:~# brctl addbr br0
root:~# brctl addif br0 eth0
root:~# brctl addif br0 eth1
root:~# ifconfig eth0 0
root:~# ifconfig eth1 0
Hapus alamat IP pada eth0 dan eth1, dan bila bridge ini akan diberi alamat IP maka yang perlu diberi alamat adalah br0. Interface lain harus tetap menyala tanpa mempunyai alamat IP sendiri. Nantinya, kedua ethernet yang ada akan merespon setiap request yang masuk ke alamat IP bridge.
Cobalah untuk memping jaringan di luar jaringan anda. Bila lancar, berarti bridge ini sudah berjalan dengan baik. Agar setiap booting kita tidak mengulangi langkah-langkah di atas maka edit file /etc/network/interfaces dan tambahkan konfigurasi seperlunya. Contoh file saya ada di bawah ini.
auto br0
iface br0 inet static
address 10.11.12.3
netmask 255.255.255.0
network 10.11.12.0
broadcast 10.11.12.255
gateway 10.11.12.1
bridge_ports eth0 eth1
Catatan: perhatikan item konfigurasi yang dicetak tebal.
Pastikan juga anda mengaktifkan IP Forwarding dengan mengeksekusi perintah di bawah ini tiap kali komputer booting.
root:~# echo 1 > /proc/sys/net/ipv4/ip_forward
Selain cara manual itu anda dapat pula mengedit file /etc/network/options.
ip_forward=yes
spoofprotect=yes
syncookies=no
Sekarang anda dapat mengkonfigurasi iptables untuk melakukan penyaringan terhadap paket-paket data yang melewati firewall ini. Iptables tidak akan dibahas mendalam di sini. Sekedar info, penyaringan ini dilakukan pada tabel Filter chain FORWARD. Contoh:
root:~# iptables -t Filter -A FORWARD -s 0.0.0.0 -d 10.11.12.0/24 -p tcp --dport 23 -j DROP
root:~# iptables -t Filter -A FORWARD -s 0.0.0.0 -d 10.11.12.0/24 -p tcp --dport 25 -j DROP
root:~# iptables -t Filter -A FORWARD -s 0.0.0.0 -d 10.11.12.0/24 -p udp --dport 161 -j DROP
Potongan instruksi iptables di atas memfilter paket-paket dari luar network kita yang akan mengakses port telnet, smtp, dan snmp. Tambahkan filter lain sesuai dengan yang anda butuhkan.
Simpanlah perintah-perintah yang anda jalankan pada sebuah script .sh dan ubahlah permission file tersebut agar bisa dieksekusi(executable). Aturlah agar file itu diekseuksi setiap kali boot. Ada beberapa cara melakukannya, yang termudah adalah menambahkan entri pada /etc/network/interfaces. Bila script iptables itu disimpan di /etc/init.d/aturanfirewall.sh anda dapat menambahkan baris berikut di bawah entri br0.
up command /etc/init.d/aturanfirewall.sh
Dengan demikian isi file /etc/network/interfaces menjadi seperti di bawah ini.
auto br0
iface br0 inet static
address 10.11.12.3
netmask 255.255.255.0
network 10.11.12.0
broadcast 10.11.12.255
gateway 10.11.12.1
bridge_ports eth0 eth1
up command /etc/init.d/aturanfirewall.sh
Dengan menggunakan bash script kecil untuk memparsing output command "iptables -nvL FORWARD" anda dapat memantau aktifitas filtering seperti ini :)
+---------------------------------------------------------+
| I/O Total | 95M Packets 62G Bytes |
+-------------+---------------------+---------------------+
| | Traffic In | Traffic Out |
| Filter +----------+----------+----------+----------+
| | Byte | Packet | Byte | Packet |
+-------------+----------+----------+----------+----------+
| Ping Blaster| 0 | 0 | 23184 | 252 |
| udp 69 | 0 | 0 | 0 | 0 |
| udp 135 | 0 | 0 | 0 | 0 |
| udp 137 | 38298 | 491 | 9828 | 126 |
| udp 138 | 534 | 2 | 1343 | 5 |
| udp 445 | 0 | 0 | 0 | 0 |
| udp 161 | 3672 | 54 | 0 | 0 |
| tcp 23 | 912 | 19 | 0 | 0 |
| tcp 135 | 47520 | 990 | 1584 | 33 |
| tcp 445 | 1027K | 21402 | 15180 | 316 |
| tcp 593 | 0 | 0 | 0 | 0 |
| tcp 4444 | 528 | 12 | 864 | 18 |
+-------------+----------+----------+----------+----------+
selamat mencoba......!!
Tutorial ini akan (mencoba) untuk menjelaskan secara singkat bagaimana dan apa saja yang diperlukan dalam pembuatan bridge firewall pada Debian GNU/Linux, dan pengaturan umum kerja firewall yang kita buat.
Topologi yang dipakai diasumsikan seperti gambar di bawah ini.
+----------+ +--------+ +---------------+
| INTERNET |-----| BRIDGE |-----| JARINGAN KITA |
+----------+ +--------+ +---------------+
1. Kebutuhan Dasar
Implementasi ini membutuhkan beberapa hal yaitu:
1. Komputer dengan 2 NIC
2. iptables
3. bridge-utils
4. Kernel Linux 2.6 atau 2.4(dengan patch) dengan opsi bridge firewall diaktifkan
Bila anda ingin menggunakan kernel versi 2.4 silakan cari patchnya di http://ebtables.sourceforge.net/. Kernel 2.6 sudah menyertakan fasilitas ini, sehingga tidak perlu dipatch lagi.
Di sini diasumsikan bahwa kernel sudah beres, dan tinggal menginstall program lain yang dibutuhkan untuk menjalankan bridge. Komputer yang dipakai mempunyai 2 NIC yaitu eth0 dan eth1.
2. Instalasi & Konfigurasi
Seperti biasa, untuk menginstall paket pada debian kita menggunakan apt-get.
root:~# apt-get install bridge-utils iptables
Bila anda tidak menggunakan distro lain anda dapat mendownload source code untuk kedua program itu pada http://bridge.sourceforge.net/ dan http://www.iptables.org/files/ . Panduan proses instalasi dapat mengikuti file README/INSTALL yang disertakan pada tarball yang anda download.
Program yang kita dapatkan dari bridge-utils adalah brctl. Program inilah yang mengatur segala macam bagian bridge mulai pembuatan, penghapusan, penambahan anggota bridge, dan sebagainya. Buat interface bridge (br0), dan tambahkan kedua interface ke dalam interface bridge yang baru dibuat.
root:~# brctl addbr br0
root:~# brctl addif br0 eth0
root:~# brctl addif br0 eth1
root:~# ifconfig eth0 0
root:~# ifconfig eth1 0
Hapus alamat IP pada eth0 dan eth1, dan bila bridge ini akan diberi alamat IP maka yang perlu diberi alamat adalah br0. Interface lain harus tetap menyala tanpa mempunyai alamat IP sendiri. Nantinya, kedua ethernet yang ada akan merespon setiap request yang masuk ke alamat IP bridge.
Cobalah untuk memping jaringan di luar jaringan anda. Bila lancar, berarti bridge ini sudah berjalan dengan baik. Agar setiap booting kita tidak mengulangi langkah-langkah di atas maka edit file /etc/network/interfaces dan tambahkan konfigurasi seperlunya. Contoh file saya ada di bawah ini.
auto br0
iface br0 inet static
address 10.11.12.3
netmask 255.255.255.0
network 10.11.12.0
broadcast 10.11.12.255
gateway 10.11.12.1
bridge_ports eth0 eth1
Catatan: perhatikan item konfigurasi yang dicetak tebal.
Pastikan juga anda mengaktifkan IP Forwarding dengan mengeksekusi perintah di bawah ini tiap kali komputer booting.
root:~# echo 1 > /proc/sys/net/ipv4/ip_forward
Selain cara manual itu anda dapat pula mengedit file /etc/network/options.
ip_forward=yes
spoofprotect=yes
syncookies=no
Sekarang anda dapat mengkonfigurasi iptables untuk melakukan penyaringan terhadap paket-paket data yang melewati firewall ini. Iptables tidak akan dibahas mendalam di sini. Sekedar info, penyaringan ini dilakukan pada tabel Filter chain FORWARD. Contoh:
root:~# iptables -t Filter -A FORWARD -s 0.0.0.0 -d 10.11.12.0/24 -p tcp --dport 23 -j DROP
root:~# iptables -t Filter -A FORWARD -s 0.0.0.0 -d 10.11.12.0/24 -p tcp --dport 25 -j DROP
root:~# iptables -t Filter -A FORWARD -s 0.0.0.0 -d 10.11.12.0/24 -p udp --dport 161 -j DROP
Potongan instruksi iptables di atas memfilter paket-paket dari luar network kita yang akan mengakses port telnet, smtp, dan snmp. Tambahkan filter lain sesuai dengan yang anda butuhkan.
Simpanlah perintah-perintah yang anda jalankan pada sebuah script .sh dan ubahlah permission file tersebut agar bisa dieksekusi(executable). Aturlah agar file itu diekseuksi setiap kali boot. Ada beberapa cara melakukannya, yang termudah adalah menambahkan entri pada /etc/network/interfaces. Bila script iptables itu disimpan di /etc/init.d/aturanfirewall.sh anda dapat menambahkan baris berikut di bawah entri br0.
up command /etc/init.d/aturanfirewall.sh
Dengan demikian isi file /etc/network/interfaces menjadi seperti di bawah ini.
auto br0
iface br0 inet static
address 10.11.12.3
netmask 255.255.255.0
network 10.11.12.0
broadcast 10.11.12.255
gateway 10.11.12.1
bridge_ports eth0 eth1
up command /etc/init.d/aturanfirewall.sh
Dengan menggunakan bash script kecil untuk memparsing output command "iptables -nvL FORWARD" anda dapat memantau aktifitas filtering seperti ini :)
+---------------------------------------------------------+
| I/O Total | 95M Packets 62G Bytes |
+-------------+---------------------+---------------------+
| | Traffic In | Traffic Out |
| Filter +----------+----------+----------+----------+
| | Byte | Packet | Byte | Packet |
+-------------+----------+----------+----------+----------+
| Ping Blaster| 0 | 0 | 23184 | 252 |
| udp 69 | 0 | 0 | 0 | 0 |
| udp 135 | 0 | 0 | 0 | 0 |
| udp 137 | 38298 | 491 | 9828 | 126 |
| udp 138 | 534 | 2 | 1343 | 5 |
| udp 445 | 0 | 0 | 0 | 0 |
| udp 161 | 3672 | 54 | 0 | 0 |
| tcp 23 | 912 | 19 | 0 | 0 |
| tcp 135 | 47520 | 990 | 1584 | 33 |
| tcp 445 | 1027K | 21402 | 15180 | 316 |
| tcp 593 | 0 | 0 | 0 | 0 |
| tcp 4444 | 528 | 12 | 864 | 18 |
+-------------+----------+----------+----------+----------+
selamat mencoba......!!
Monitoring Trafik Network Menggunakan iptables dan MRTG .....!!
Dengan berbagai metode kita dapat mengukur besar keluar-masuknya data tiap komputer dalam jaringan kita. Salah satu cara yang sederhana dan mudah dikerjakan adalah dengan menggunakan iptables dan MRTG. Iptables hanya digunakan untuk menghitung besar data yang masuk untuk tiap-tiap komputer dalam jaringan, dan hasilnya ditampilkan dengan menggunakan MRTG. Dengan begitu kita tidak perlu menginstall server snmp di tiap komputer, namun masih bisa mendapatkan gambaran umum aktifitas koneksi tiap komputer dengan jaringan lain.
Di sini diasumsikan bahwa jaringan kita beralamat 10.11.12.0/24, pengukuran dilakukan di gateway dengan alamat 10.11.12.1.
1. Instalasi
Program yang kita butuhkan di sini tidak begitu banyak, dan biasanya pada beberapa distro linux program-program ini sudah disertakan di CD. Bila tidak ada, beberapa program inilah yang harus anda download dan anda install.
1. MRTG, dapat didownload dari http://www.ee.ethz.ch/~oetiker/webtools/mrtg/
2. iptables(versi > 1.2.6), dapat didownload dari http://www.netfilter.org
3. Apache web server, dapat didownload dari http://httpd.apache.org (web server lain juga bisa)
Ikuti petunjuk instalasi yang disertakan pada tiap-tiap program, biasanya ada pada file README dan INSTALL.
2. Iptables
Untuk bisa mengetahui jumlah keluar/masuknya paket data untuk suatu komputer kita harus menghitungnya secara terpisah yaitu untuk yang masuk dan untuk yang keluar. Bila kita akan mengamati sepuluh komputer, maka setidaknya harus ada 20 rule iptables. Chain yang digunakan untuk mengamati adalah chain FORWARD.
Untuk memudahkan pengamatan & parsing nilai hitungan iptables kita dapat menambahkan masing-masing 2 chain kosong yang menjadi target rule sehingga memudahkan kita dalam menjalankan grep, misal dengan menggunakan nama komputer yang kita beri tambahan -in dan -out.
root:~# iptables -N yudhistira-in
root:~# iptables -N yudhistira-out
root:~# iptables -A FORWARD -d 10.11.12.2 -j yudhistira-in
root:~# iptables -A FORWARD -s 10.11.12.2 -j yudhistira-out
root:~# iptables -N anoman-in
root:~# iptables -N anoman-out
root:~# iptables -A FORWARD -d 10.11.12.3 -j anoman-in
root:~# iptables -A FORWARD -s 10.11.12.3 -j anoman-out
root:~# iptables -N bagong-in
root:~# iptables -N bagong-out
root:~# iptables -A FORWARD -d 10.11.12.4 -j bagong-in
root:~# iptables -A FORWARD -s 10.11.12.4 -j bagong-out
root:~# iptables -nvxL FORWARD
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 yudhistira-in all -- * * 0.0.0.0/0 10.11.12.2
0 0 yudhistira-out all -- * * 10.11.12.2 0.0.0.0/0
0 0 anoman-in all -- * * 0.0.0.0/0 10.11.12.3
0 0 anoman-out all -- * * 10.11.12.3 0.0.0.0/0
0 0 bagong-in all -- * * 0.0.0.0/0 10.11.12.3
0 0 bagong-out all -- * * 10.11.12.3 0.0.0.0/0
Di atas dapat kita lihat bahwa kalau kita ingin mengambil besar data(dalam bytes) output iptables -nvxL FORWARD dapat kita pipe kan ke grep dan mengambil nilai kolom kedua dari output yang dihasilkan oleh grep.
root:~# iptables -nvxL FORWARD | grep bagong-in
0 0 bagong-in all -- * * 0.0.0.0/0 10.11.12.3
root:~# iptables -nvxL FORWARD | grep bagong-in | awk '{print $2}'
0
Untuk memudahkan kita dalam memasukkan nilainya ke MRTG kita bisa membuat script kecil seperti ini:
#!/bin/sh
paketIN=`/sbin/iptables -nvxL FORWARD | grep "$1-in" | awk '{print $2}'`
paketOUT=`/sbin/iptables -nvxL FORWARD | grep "$1-out" | awk '{print $2}'`
echo $paketIN
echo $paketOUT
Pemakaiannya hanyalah dengan cara menuliskan nama scriptnya dengan 1 parameter yaitu [nama komputer], misalnya scriptbacatrafik.sh bagong. Script ini akan mencetak nilai bytes yang keluar dari jaringan kita yang berasal dari komputer "bagong". Angka ini diambil dari iptables, sehingga kata bagong atau apa pun itu harus anda sesuaikan dengan nama chain yang anda gunakan di iptables.
3. MRTG
Nilai yang dimasukkan ke mrtg haruslah berpasangan, pertama untuk in dan kedua untuk out. Nilai ini dapat diambil dari SNMP, dapat pula diambil dari nilai eksekusi program tertentu. Contoh mrtg.cfg yang mengambil nilai dari script yang tadi kita buat dapat dilihat di bawah ini.
WorkDir: /var/www/mrtg
Target[anoman]: `/usr/local/sbin/scriptbacatrafik.sh anoman`
Title[anoman]: Anoman
PageTop[anoman]:
MaxBytes[anoman]: 1250000
YLegend[anoman]: Bytes/s
ShortLegend[anoman]: B/s
LegendI[anoman]: Traffic in
LegendO[anoman]: Traffic out
Legend1[anoman]: Traffic in Bytes per Second
Target[bagong]: `/usr/local/sbin/scriptbacatrafik.sh bagong`
Title[bagong]: bagong
PageTop[bagong]:
MaxBytes[bagong]: 1250000
YLegend[bagong]: Bytes/s
ShortLegend[bagong]: B/s
LegendI[bagong]: Traffic in
LegendO[bagong]: Traffic out
Legend1[bagong]: Traffic in Bytes per Second
Target[yudhistira]: `/usr/local/sbin/scriptbacatrafik.sh yudhistira`
Title[yudhistira]: yudhistira
PageTop[yudhistira]:
MaxBytes[yudhistira]: 1250000
YLegend[yudhistira]: Bytes/s
ShortLegend[yudhistira]: B/s
LegendI[yudhistira]: Traffic in
LegendO[yudhistira]: Traffic out
Legend1[yudhistira]: Traffic in Bytes per Second
Setelah file konfigurasi selesai, jalankan indexmaker untuk membuat file index.html MRTG.
root:~# indexmaker /path/file/mrtg.cfg > /var/www/mrtg/index.html
Bila apache telah berjalan, cobalah untuk membuka http://10.11.12.1/mrtg/ untuk melihat hasilnya.
4. Pengembangan
Dengan cara pengukuran yang persis sama anda dapat pula mengukur besarnya keluar masuk paket per layanan misal web, ftp, smb, domain, dan sebagainya. Pengukuran dilakukan dengan menggunakan iptables, hanya saja kita tidak mendefinisikan alamat IP per komputer. Yang kita definisikan adalah protokol(TCP/UDP/ICMP) beserta nomor portnya, serta network address jaringan kita seperti contoh di bawah ini.
root:~# iptables -N www-in
root:~# iptables -N www-out
root:~# iptables -A FORWARD -d 10.11.12.0/24 -p tcp --dport 80 -j www-in
root:~# iptables -A FORWARD -s 10.11.12.0/24 -p tcp --sport 80 -j ww-out
root:~# iptables -N ftp-in
root:~# iptables -N ftp-out
root:~# iptables -A FORWARD -d 10.11.12.0/24 -p tcp --dport 20:21 -j ftp-in
root:~# iptables -A FORWARD -s 10.11.12.0/24 -p tcp --sport 20:21 -j ftp-out
Contoh rule iptables di atas berguna untuk menghitung:
1. Besar paket data yang kita dapatkan dari webserver yang berasal dari luar jaringan kita.
2. Besar paket data request ke webserver di luar jaringan kita.
3. Besar paket data yang kita download melalui ftp yang berasal dari luar jaringan kita.
4. Besar paket data upload melalui ftp ke luar jaringan kita.
Edit mrtg.cfg untuk memasukkan hasil perhitungan iptables untuk kedua port yang baru.
Target[www]: `/usr/local/sbin/scriptbacatrafik.sh www`
Title[www]: www
PageTop[www]:
MaxBytes[www]: 1250000
YLegend[www]: Bytes/s
ShortLegend[www]: B/s
LegendI[www]: Traffic in
LegendO[www]: Traffic out
Legend1[www]: Traffic in Bytes per Second
Target[ftp]: `/usr/local/sbin/scriptbacatrafik.sh ftp`
Title[ftp]: ftp
PageTop[ftp]:
MaxBytes[ftp]: 1250000
YLegend[ftp]: Bytes/s
ShortLegend[ftp]: B/s
LegendI[ftp]: Traffic in
LegendO[ftp]: Traffic out
Legend1[ftp]: Traffic in Bytes per Second
Selamat mencoba, semoga sukses.
Di sini diasumsikan bahwa jaringan kita beralamat 10.11.12.0/24, pengukuran dilakukan di gateway dengan alamat 10.11.12.1.
1. Instalasi
Program yang kita butuhkan di sini tidak begitu banyak, dan biasanya pada beberapa distro linux program-program ini sudah disertakan di CD. Bila tidak ada, beberapa program inilah yang harus anda download dan anda install.
1. MRTG, dapat didownload dari http://www.ee.ethz.ch/~oetiker/webtools/mrtg/
2. iptables(versi > 1.2.6), dapat didownload dari http://www.netfilter.org
3. Apache web server, dapat didownload dari http://httpd.apache.org (web server lain juga bisa)
Ikuti petunjuk instalasi yang disertakan pada tiap-tiap program, biasanya ada pada file README dan INSTALL.
2. Iptables
Untuk bisa mengetahui jumlah keluar/masuknya paket data untuk suatu komputer kita harus menghitungnya secara terpisah yaitu untuk yang masuk dan untuk yang keluar. Bila kita akan mengamati sepuluh komputer, maka setidaknya harus ada 20 rule iptables. Chain yang digunakan untuk mengamati adalah chain FORWARD.
Untuk memudahkan pengamatan & parsing nilai hitungan iptables kita dapat menambahkan masing-masing 2 chain kosong yang menjadi target rule sehingga memudahkan kita dalam menjalankan grep, misal dengan menggunakan nama komputer yang kita beri tambahan -in dan -out.
root:~# iptables -N yudhistira-in
root:~# iptables -N yudhistira-out
root:~# iptables -A FORWARD -d 10.11.12.2 -j yudhistira-in
root:~# iptables -A FORWARD -s 10.11.12.2 -j yudhistira-out
root:~# iptables -N anoman-in
root:~# iptables -N anoman-out
root:~# iptables -A FORWARD -d 10.11.12.3 -j anoman-in
root:~# iptables -A FORWARD -s 10.11.12.3 -j anoman-out
root:~# iptables -N bagong-in
root:~# iptables -N bagong-out
root:~# iptables -A FORWARD -d 10.11.12.4 -j bagong-in
root:~# iptables -A FORWARD -s 10.11.12.4 -j bagong-out
root:~# iptables -nvxL FORWARD
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 yudhistira-in all -- * * 0.0.0.0/0 10.11.12.2
0 0 yudhistira-out all -- * * 10.11.12.2 0.0.0.0/0
0 0 anoman-in all -- * * 0.0.0.0/0 10.11.12.3
0 0 anoman-out all -- * * 10.11.12.3 0.0.0.0/0
0 0 bagong-in all -- * * 0.0.0.0/0 10.11.12.3
0 0 bagong-out all -- * * 10.11.12.3 0.0.0.0/0
Di atas dapat kita lihat bahwa kalau kita ingin mengambil besar data(dalam bytes) output iptables -nvxL FORWARD dapat kita pipe kan ke grep dan mengambil nilai kolom kedua dari output yang dihasilkan oleh grep.
root:~# iptables -nvxL FORWARD | grep bagong-in
0 0 bagong-in all -- * * 0.0.0.0/0 10.11.12.3
root:~# iptables -nvxL FORWARD | grep bagong-in | awk '{print $2}'
0
Untuk memudahkan kita dalam memasukkan nilainya ke MRTG kita bisa membuat script kecil seperti ini:
#!/bin/sh
paketIN=`/sbin/iptables -nvxL FORWARD | grep "$1-in" | awk '{print $2}'`
paketOUT=`/sbin/iptables -nvxL FORWARD | grep "$1-out" | awk '{print $2}'`
echo $paketIN
echo $paketOUT
Pemakaiannya hanyalah dengan cara menuliskan nama scriptnya dengan 1 parameter yaitu [nama komputer], misalnya scriptbacatrafik.sh bagong. Script ini akan mencetak nilai bytes yang keluar dari jaringan kita yang berasal dari komputer "bagong". Angka ini diambil dari iptables, sehingga kata bagong atau apa pun itu harus anda sesuaikan dengan nama chain yang anda gunakan di iptables.
3. MRTG
Nilai yang dimasukkan ke mrtg haruslah berpasangan, pertama untuk in dan kedua untuk out. Nilai ini dapat diambil dari SNMP, dapat pula diambil dari nilai eksekusi program tertentu. Contoh mrtg.cfg yang mengambil nilai dari script yang tadi kita buat dapat dilihat di bawah ini.
WorkDir: /var/www/mrtg
Target[anoman]: `/usr/local/sbin/scriptbacatrafik.sh anoman`
Title[anoman]: Anoman
PageTop[anoman]:
Anoman
MaxBytes[anoman]: 1250000
YLegend[anoman]: Bytes/s
ShortLegend[anoman]: B/s
LegendI[anoman]: Traffic in
LegendO[anoman]: Traffic out
Legend1[anoman]: Traffic in Bytes per Second
Target[bagong]: `/usr/local/sbin/scriptbacatrafik.sh bagong`
Title[bagong]: bagong
PageTop[bagong]:
bagong
MaxBytes[bagong]: 1250000
YLegend[bagong]: Bytes/s
ShortLegend[bagong]: B/s
LegendI[bagong]: Traffic in
LegendO[bagong]: Traffic out
Legend1[bagong]: Traffic in Bytes per Second
Target[yudhistira]: `/usr/local/sbin/scriptbacatrafik.sh yudhistira`
Title[yudhistira]: yudhistira
PageTop[yudhistira]:
yudhistira
MaxBytes[yudhistira]: 1250000
YLegend[yudhistira]: Bytes/s
ShortLegend[yudhistira]: B/s
LegendI[yudhistira]: Traffic in
LegendO[yudhistira]: Traffic out
Legend1[yudhistira]: Traffic in Bytes per Second
Setelah file konfigurasi selesai, jalankan indexmaker untuk membuat file index.html MRTG.
root:~# indexmaker /path/file/mrtg.cfg > /var/www/mrtg/index.html
Bila apache telah berjalan, cobalah untuk membuka http://10.11.12.1/mrtg/ untuk melihat hasilnya.
4. Pengembangan
Dengan cara pengukuran yang persis sama anda dapat pula mengukur besarnya keluar masuk paket per layanan misal web, ftp, smb, domain, dan sebagainya. Pengukuran dilakukan dengan menggunakan iptables, hanya saja kita tidak mendefinisikan alamat IP per komputer. Yang kita definisikan adalah protokol(TCP/UDP/ICMP) beserta nomor portnya, serta network address jaringan kita seperti contoh di bawah ini.
root:~# iptables -N www-in
root:~# iptables -N www-out
root:~# iptables -A FORWARD -d 10.11.12.0/24 -p tcp --dport 80 -j www-in
root:~# iptables -A FORWARD -s 10.11.12.0/24 -p tcp --sport 80 -j ww-out
root:~# iptables -N ftp-in
root:~# iptables -N ftp-out
root:~# iptables -A FORWARD -d 10.11.12.0/24 -p tcp --dport 20:21 -j ftp-in
root:~# iptables -A FORWARD -s 10.11.12.0/24 -p tcp --sport 20:21 -j ftp-out
Contoh rule iptables di atas berguna untuk menghitung:
1. Besar paket data yang kita dapatkan dari webserver yang berasal dari luar jaringan kita.
2. Besar paket data request ke webserver di luar jaringan kita.
3. Besar paket data yang kita download melalui ftp yang berasal dari luar jaringan kita.
4. Besar paket data upload melalui ftp ke luar jaringan kita.
Edit mrtg.cfg untuk memasukkan hasil perhitungan iptables untuk kedua port yang baru.
Target[www]: `/usr/local/sbin/scriptbacatrafik.sh www`
Title[www]: www
PageTop[www]:
www
MaxBytes[www]: 1250000
YLegend[www]: Bytes/s
ShortLegend[www]: B/s
LegendI[www]: Traffic in
LegendO[www]: Traffic out
Legend1[www]: Traffic in Bytes per Second
Target[ftp]: `/usr/local/sbin/scriptbacatrafik.sh ftp`
Title[ftp]: ftp
PageTop[ftp]:
ftp
MaxBytes[ftp]: 1250000
YLegend[ftp]: Bytes/s
ShortLegend[ftp]: B/s
LegendI[ftp]: Traffic in
LegendO[ftp]: Traffic out
Legend1[ftp]: Traffic in Bytes per Second
Selamat mencoba, semoga sukses.
Membuat Cluster Load Balancing Dengan Cepat dan Mudah ...gman yah..???
Selama ini orang selalu menganggap bahwa membuat cluster load balancing adalah hal yang rumit dan memusingkan. Dan.. memang benar pendapat ini. Tapi sebenarnya ada satu cara mudah untuk mencapainya dengan menggunakan yang namanya balance.
Sebelumnya kita bahas dahulu sedikit mengenai konsep Clustering. Secara prinsip clustering mempunyai 2 buah pendekatan:
1. High Availability (Failover), adalah bila satu server gagal melayani service tertentu, maka tugas server tersebut otomatis akan dilempar ke server lainnya.
2. High throughput (Performance), disini yang diinginkan adalah performance yang tinggi yang dicapai dengan "membagi2" tugas yang ada ke sekumpulan server. Contohnya adalah:
2a. High-performance Computing (HPC), adalah sekumpulan server yang bekerja bersama-sama pada saat yang bersamaan untuk mengerjakan sesuatu tugas tertentu, biasanya dalam bentuk tugas perhitungan yang berat2, seperti simulasi bumi, me-render film animasi, dll.
2b. Load Balancing, adalah membagi2 beban kerja ke sekumpulan server diluar konteks computing, misalnya membagi beban kerja web server, mail server, dll.
Bagaimana mencapai hal ini?
Ada beberapa software opensource yang dapat kita gunakan:
1. Linux High-Availability (http://www.linux-ha.org)
2. RedHat Cluster Suite dan Piranha (http://www.redhat.com)
3. Linux Virtual Server (http://www.linuxvirtualserver.org)
4. BeoWulf Cluster (http://www.beowulf.org)
5. Openmosix (http://openmosix.sourceforge.net)
Namun solusi2 di atas kadang kala terlalu "canggih" atau "overkill" untuk mencapai tujuan clustering kita. Disinilah 'balance' masuk. Apa yang dapat ia sediakan?
1. Merupakan user-space program. Tidak perlu compile kernel dll. Langsung jalan secara command line.
2. Load balancing secara tcp. Cukup menyebutkan protocol atau port tcp berapa yang ingin kita load balancing.
Cara setup:
1. Download paketnya dari http://www.inlab.de/balance.html
wget http://www.inlab.de/balance-3.40.tar.gz
2. Extract, compile dan install:
2a. tar zxvf balance-3.40.tar.gz
2b. cd balance-3.40
2c. vi Makefile
Ubah baris ini: MANDIR=${BINDIR}/../man/man1
Menjadi: Untuk Ubuntu: MANDIR=/usr/share/man/man1
Untuk RedHat: MANDIR=/usr/local/share/man/man1
2d. make
2e. make install
Done! :)
Cara pakai:
Sebelumnya kita misalkan skenario seperti ini:
Kita mempunyai sebuah website yang ingin kita bagi beban kerjanya ke 3 buah server web. Maka kita perlu mensetupnya seperti terlihat di gambar (Oya, gambarnya adalah foto PC zaman dulu, tapi itu hanya ilustrasi yah, nanti servernya jangan pakai PC zaman dulu juga. Hehe...). Tiga buah server web yaitu www1 (192.168.0.1), www2 (192.168.0.2), dan www3 (192.168.0.3). Di depan mereka kita install sebuah server (192.168.0.254) yang bertugas membagi2 bebas kerja para server www tersebut. Jadi IP yang akan diakses oleh user adalah IP 192.168.0.254, jangan ke masing2 server www.

Commandnya: (Jalankan command ini di 192.168.0.254) balance
Bila diketik tanpa option dia akan muncul seperti ini:
_ _
| |__ __ _| | __ _ _ __ ___ ___
| '_ \ / _` | |/ _` | '_ \ / __/ _ \
| |_) | (_| | | (_| | | | | (_| __/
|_.__/ \__,_|_|\__,_|_| |_|\___\___|
this is balance 3.40
Copyright (c) 2000-2006,2007
by Inlab Software GmbH, Gruenwald, Germany.
All rights reserved.
usage:
balance [-b addr] [-B addr] [-t sec] [-T sec] [-adfpHM] \
port [h1[:p1[:maxc1]] [!%] [ ... hN[:pN[:maxcN]]]]
balance [-b addr] -i [-d] port
balance [-b addr] -c cmd [-d] port
-a enable channel autodisable option
-b host bind to specific address on listen
-B host bind to specific address for outgoing connections
-c cmd execute specified interactive command
-d debugging on
-f stay in foregound
-i interactive control
-H failover even if Hash Type is used
-M use MMAP instead of SHM for IPC
-p packetdump
-t sec specify connect timeout in seconds (default=5)
-T sec timeout (seconds) for select (0 => never) (default=0)
! separates channelgroups (declaring previous to be Round Robin)
% as !, but declaring previous group to be a Hash Type
examples:
balance smtp mailhost1:smtp mailhost2:25 mailhost3
balance -i smtp
balance -b 2001:DB8::1 80 10.1.1.1 10.1.1.2
balance -b 2001:DB8::1 80
Jadi cara pakainya adalah misalnya:
balance -f http 192.168.0.1 192.168.0.2 192.168.0.3
Option -f itu artinya balance jalan di foreground, berguna untuk kita debug dan cancel. Kalau misalnya sudah ok, bisa kita jalankan tanpa option -f, maka balance akan jalan di background.
Untuk melihat cara bekerja balance adalah dengan membuka sebuah terminal dan meload website 192.168.0.254 secara berulang2. Untuk mudahnya dapat kita gunakan text browser seperti elinks:
watch elinks --dump http://192.168.0.254
Untuk kebutuhan testing, dapat kita atur agar isi website di 192.168.0.1, 192.168.0.2, dan 192.168.0.3 berbeda, jadi command di atas akan menampilkan isi website yang berbeda, tanda bahwa balance sudah meload balancing traffik web ke tiga buah server tersebut.
Contoh lain adalah:
balance -f http 192.168.0.1::100 ! 192.168.0.2::100 ! 192.168.0.3
Arti option di atas adalah: koneksi http akan diprioritaskan ke server 192.168.0.1 sampai sebanyak 100 koneksi, bila sudah penuh maka akan dilempar ke 192.168.0.2 sampai sebanyak 100 koneksi juga, sisanya akan ke 192.168.0.3
Bagaimana jika kita ingin menghandle koneksi yang memerlukan session seperti website dynamic pakai php? Hal ini bisa dicapai dengan option '%' yaitu mengaktifkan session seperti ini:
balance -f http 192.168.0.1 192.168.0.2 192.168.0.3 %
Untuk option2 selengkapnya dapat kita lihat di 'man balance'.
Apakah hanya dapat digunakan untuk akses http? Tentu tidak, dengan sedikit eksplorasi kita dapat pula menggunakannya untuk keperluan lain seperti load balancing akses internet, email, proxy, dll.
Penutup
Program balance ini menyediakan sebuah solusi praktis dan mudah untuk membuat sebuah cluster load balancer. Performance yang dihasilkan cukup bagus. Namun bila kita ingin menggunakan solusi yang lebih handal, kita dapat menggunakan LVS (linux virtual server) dengan kombinasi linux-ha. Namun tentu saja settingannya akan jauh lebih rumit. Kita akan membahasnya di lain kesempatan. Selamat mencoba :)
Sebelumnya kita bahas dahulu sedikit mengenai konsep Clustering. Secara prinsip clustering mempunyai 2 buah pendekatan:
1. High Availability (Failover), adalah bila satu server gagal melayani service tertentu, maka tugas server tersebut otomatis akan dilempar ke server lainnya.
2. High throughput (Performance), disini yang diinginkan adalah performance yang tinggi yang dicapai dengan "membagi2" tugas yang ada ke sekumpulan server. Contohnya adalah:
2a. High-performance Computing (HPC), adalah sekumpulan server yang bekerja bersama-sama pada saat yang bersamaan untuk mengerjakan sesuatu tugas tertentu, biasanya dalam bentuk tugas perhitungan yang berat2, seperti simulasi bumi, me-render film animasi, dll.
2b. Load Balancing, adalah membagi2 beban kerja ke sekumpulan server diluar konteks computing, misalnya membagi beban kerja web server, mail server, dll.
Bagaimana mencapai hal ini?
Ada beberapa software opensource yang dapat kita gunakan:
1. Linux High-Availability (http://www.linux-ha.org)
2. RedHat Cluster Suite dan Piranha (http://www.redhat.com)
3. Linux Virtual Server (http://www.linuxvirtualserver.org)
4. BeoWulf Cluster (http://www.beowulf.org)
5. Openmosix (http://openmosix.sourceforge.net)
Namun solusi2 di atas kadang kala terlalu "canggih" atau "overkill" untuk mencapai tujuan clustering kita. Disinilah 'balance' masuk. Apa yang dapat ia sediakan?
1. Merupakan user-space program. Tidak perlu compile kernel dll. Langsung jalan secara command line.
2. Load balancing secara tcp. Cukup menyebutkan protocol atau port tcp berapa yang ingin kita load balancing.
Cara setup:
1. Download paketnya dari http://www.inlab.de/balance.html
wget http://www.inlab.de/balance-3.40.tar.gz
2. Extract, compile dan install:
2a. tar zxvf balance-3.40.tar.gz
2b. cd balance-3.40
2c. vi Makefile
Ubah baris ini: MANDIR=${BINDIR}/../man/man1
Menjadi: Untuk Ubuntu: MANDIR=/usr/share/man/man1
Untuk RedHat: MANDIR=/usr/local/share/man/man1
2d. make
2e. make install
Done! :)
Cara pakai:
Sebelumnya kita misalkan skenario seperti ini:
Kita mempunyai sebuah website yang ingin kita bagi beban kerjanya ke 3 buah server web. Maka kita perlu mensetupnya seperti terlihat di gambar (Oya, gambarnya adalah foto PC zaman dulu, tapi itu hanya ilustrasi yah, nanti servernya jangan pakai PC zaman dulu juga. Hehe...). Tiga buah server web yaitu www1 (192.168.0.1), www2 (192.168.0.2), dan www3 (192.168.0.3). Di depan mereka kita install sebuah server (192.168.0.254) yang bertugas membagi2 bebas kerja para server www tersebut. Jadi IP yang akan diakses oleh user adalah IP 192.168.0.254, jangan ke masing2 server www.

Commandnya: (Jalankan command ini di 192.168.0.254) balance
Bila diketik tanpa option dia akan muncul seperti ini:
_ _
| |__ __ _| | __ _ _ __ ___ ___
| '_ \ / _` | |/ _` | '_ \ / __/ _ \
| |_) | (_| | | (_| | | | | (_| __/
|_.__/ \__,_|_|\__,_|_| |_|\___\___|
this is balance 3.40
Copyright (c) 2000-2006,2007
by Inlab Software GmbH, Gruenwald, Germany.
All rights reserved.
usage:
balance [-b addr] [-B addr] [-t sec] [-T sec] [-adfpHM] \
port [h1[:p1[:maxc1]] [!%] [ ... hN[:pN[:maxcN]]]]
balance [-b addr] -i [-d] port
balance [-b addr] -c cmd [-d] port
-a enable channel autodisable option
-b host bind to specific address on listen
-B host bind to specific address for outgoing connections
-c cmd execute specified interactive command
-d debugging on
-f stay in foregound
-i interactive control
-H failover even if Hash Type is used
-M use MMAP instead of SHM for IPC
-p packetdump
-t sec specify connect timeout in seconds (default=5)
-T sec timeout (seconds) for select (0 => never) (default=0)
! separates channelgroups (declaring previous to be Round Robin)
% as !, but declaring previous group to be a Hash Type
examples:
balance smtp mailhost1:smtp mailhost2:25 mailhost3
balance -i smtp
balance -b 2001:DB8::1 80 10.1.1.1 10.1.1.2
balance -b 2001:DB8::1 80
Jadi cara pakainya adalah misalnya:
balance -f http 192.168.0.1 192.168.0.2 192.168.0.3
Option -f itu artinya balance jalan di foreground, berguna untuk kita debug dan cancel. Kalau misalnya sudah ok, bisa kita jalankan tanpa option -f, maka balance akan jalan di background.
Untuk melihat cara bekerja balance adalah dengan membuka sebuah terminal dan meload website 192.168.0.254 secara berulang2. Untuk mudahnya dapat kita gunakan text browser seperti elinks:
watch elinks --dump http://192.168.0.254
Untuk kebutuhan testing, dapat kita atur agar isi website di 192.168.0.1, 192.168.0.2, dan 192.168.0.3 berbeda, jadi command di atas akan menampilkan isi website yang berbeda, tanda bahwa balance sudah meload balancing traffik web ke tiga buah server tersebut.
Contoh lain adalah:
balance -f http 192.168.0.1::100 ! 192.168.0.2::100 ! 192.168.0.3
Arti option di atas adalah: koneksi http akan diprioritaskan ke server 192.168.0.1 sampai sebanyak 100 koneksi, bila sudah penuh maka akan dilempar ke 192.168.0.2 sampai sebanyak 100 koneksi juga, sisanya akan ke 192.168.0.3
Bagaimana jika kita ingin menghandle koneksi yang memerlukan session seperti website dynamic pakai php? Hal ini bisa dicapai dengan option '%' yaitu mengaktifkan session seperti ini:
balance -f http 192.168.0.1 192.168.0.2 192.168.0.3 %
Untuk option2 selengkapnya dapat kita lihat di 'man balance'.
Apakah hanya dapat digunakan untuk akses http? Tentu tidak, dengan sedikit eksplorasi kita dapat pula menggunakannya untuk keperluan lain seperti load balancing akses internet, email, proxy, dll.
Penutup
Program balance ini menyediakan sebuah solusi praktis dan mudah untuk membuat sebuah cluster load balancer. Performance yang dihasilkan cukup bagus. Namun bila kita ingin menggunakan solusi yang lebih handal, kita dapat menggunakan LVS (linux virtual server) dengan kombinasi linux-ha. Namun tentu saja settingannya akan jauh lebih rumit. Kita akan membahasnya di lain kesempatan. Selamat mencoba :)
Subscribe to:
Posts (Atom)