Saturday, October 31, 2009

Tutorial FpdF

http://bimoweb.com/membuat-file-pdf-dengan-php-dan-fpdf.html

Print Web

Banyak teman-teman di web ini yang bertanya tentang bagaimana cara bikin laporan dengan PHP. Berikut pertanyaan yang sering muncul:

* Gimana cara bikin laporan di web?
* Gimana sih cara bikin laporan dengan PDF file?
* Gimana sih cara export web ke MS Excel?
* Gimana sih cara export web ke MS Word?
* Saya pusing dengan FPDF. Harus main koordinat. Apa ada penyelesaian yang lebih mudah?
* Cara print di web yang mudah?

Baiklah pada artikel kali ini gw akan memberi masukan mengenai pertanyaan-pertanyaan di atas. Walaupun tidak menjawab semua pertanyaan tapi gw berharap penyelesaian ini bisa menyelesaikan masalah Anda.

Kalo menjawab pertanyaan "Gimana cara bikin laporan di web?" kayaknya penulis sedikit bingung. Soalnya menurut penulis, kalau datanya udah tampil di web ya itulah laporannya dan itu juga yang akan kita cetak. Mungkin bedanya kalo di aplikasi berbasis desktop ada yang namanya "data grid" dan ada yang namanya "laporan". Di aplikasi berbasis desktop laporan biasanya menggunakan Crystal Report.

Mungkin Anda berpendapat bahwa tampilan untuk monitor dan untuk print harusnya berbeda karena tidak mungkin kita membuat laporan cetak dan di situ terdapat menu navigasi, belum lagi background yang menggangu. Yup, setuju. Untuk itu kita harus membuat 2 versi halaman kita. Versi layar monitor dan versi cetak.

Berikut cara-cara membuat dua versi halaman, yakni: versi layar monitor dan versi cetak yang bisa Anda pilih salah satunya:

1. menggunakan tag PHP untuk memanggil 2 file CSS
2. menggunakan tag HTML untuk memanggil 2 file CSS
3. menggunakan @import url
4. menggunakan satu file CSS untuk dua versi tampilan

1. Menggunakan tag PHP untuk memanggil 2 file CSS

Berikut kode PHPnya dan letakkan di bagian pada kode HTML Anda.

view plain print

1.
2.


3.
4.
5.



Kelemahan dari cara ini adalah harus load ulang halaman. bayangkan jika halaman yang akan kita cetak merupakan bentuk rekapitulasi dengan banyak query dan loadnya sangat lama. Wew tidak praktis. Cara ini sama saja dengan membuat link ke halaman baru, dengan desain halaman baru yang minimalis, yang sengaja disiapkan untuk cetak laporan.

2. Menggunakan tag HTML untuk memanggil 2 file CSS
view plain print

1.
2.



Cara ini yang sering penulis gunakan. Cukup membuat 2 file CSS yang berbeda dan menempatkan tag tersebut di bagian . kemudian menyembunyikan
yang tidak ingin kita tampilkan. Lebih lengkapnya bisa dilihat di pembahasan selanjutnya.

3. Menggunakan @import url
view plain print

1. @import url(print.css) print,projection;

@import url(print.css) print,projection;

Hampir sama dengan cara di atasnya, cuman beda kode.

4. Menggunakan satu file CSS untuk dua versi tampilan

view plain print

1.



cara ini juga bagus dan bahkan hanya menggunakan 1 file CSS. Yup, style untuk dua versi tampilan (layar dan printing) dalam satu file CSS.



Baiklah, sekarang kita mulai praktek membuat laporan di web yang bisa langsung kita cetak. Tapi sebelumnya mari kita lihat versi layar untuk aplikasi SIMPEG yang penulis buat.

view plain print

1. #atas{
2. height: 100px; /*Height of top section*/
3. background:url(items/header.jpg) repeat-x #2D1721;
4. }
5.
6. #atas h1{
7. margin: 0;
8. padding-top: 15px;
9. }
10.
11. #wrapper{
12. float: left;
13. width: 100%;
14. }
15.
16. #isi{
17. margin-right: 170px;
18. }
19.
20. #kanan{
21. float: left;
22. width: 170px; /*Width of right column in pixels*/
23. margin-left: -170px; /*Set left margin to -(RightColumnWidth) */
24. }
25.
26. #bawah{
27. clear: left;
28. width: 100%;
29. background: black;
30. color: #FFF;
31. text-align: center;
32. padding: 4px 0;
33. }

#atas{ height: 100px; /*Height of top section*/ background:url(items/header.jpg) repeat-x #2D1721; } #atas h1{ margin: 0; padding-top: 15px; } #wrapper{ float: left; width: 100%; } #isi{ margin-right: 170px; } #kanan{ float: left; width: 170px; /*Width of right column in pixels*/ margin-left: -170px; /*Set left margin to -(RightColumnWidth) */ } #bawah{ clear: left; width: 100%; background: black; color: #FFF; text-align: center; padding: 4px 0; }

File di atas disimpan dengan nama layar.css

Berikut tampilannya:
layout buat layar monitor

layout simpegda

Kalau untuk printing tentunya kita harus menyingkirkan
yang tidak diperlukan. Dengan CSS kita bisa menyembunyikannya. Berikut CSS lengkapnya.

view plain print

1. #atas, #kanan, #bawah
2. {display:none;}
3.
4. #wrapper{
5. float: left;
6. width: 100%;
7. }
8.
9. #isi{
10. width: 100%;
11. }

#atas, #kanan, #bawah {display:none;} #wrapper{ float: left; width: 100%; } #isi{ width: 100%; }

Selanjutnya disimpan menjadi print.css

Dan untuk format tampilan
yang masih kita tampilkan perlu mendapat beberapa perubahan, seperti lebar kita set 100% dan background gambar kita ubah menjadi background warna putih.

Untuk menampilkan 2 file CSS di atas kita menggunakan kode sebagai berikut:
view plain print

1.
2.
3.





Cukup begitu saja. Apabila dilihat melalui print preview hasilnya seperti ini:
hasil print laporan

Apabila Anda menginginkan file CSS yang standar Anda bisa merujuk ke Hartija Css Print Framework.

Artikel-artikel ini membahas tentang bagaimana membuat printer frendly webpage:

1. CSS Design: Going to Print
2. Back To The Future of Print
3. Five Simple Steps to Typesetting on the web: Printing the web
4. What is a Printer-Friendly Web Page?
5. Printing the Web
6. A Print CSS Primer

Export Laporan ke Format File Lain

Export ke PDF:
Untuk export file ke bentuk *.pdf kita bisa menggunakan Free PDF library atau dikenal sebagai FPDF (www.FPDF.org). Sedikit ribet memang dan butuh kesabaran untuk mencoba-coba membuat laporan. Tapi kalo keperluannya cuman sekadar mencetak laporan apa tidak mudah dengan cara di atas? ga tahu lagi kalo tujuannya lain.

Export ke MS Word:
Untuk export ke MS Word kita bisa memanfaatkan sebuah class dari phpclass.org dengan nama clsWord. Apabila Anda menginginkan bisa search di paman google dengan kata kunci: mswordphp-2006-12-26
Tapi akan lebih mudah dengan cara memanipulasi header file PHP Anda. Tambah beberapa baris kode berikut di bagian atas sendiri pada kode Anda
view plain print

1. 2. header("Content-Type: application/download'");
3. header("Content-Disposition: inline; filename="word.doc"");
4. header("Expires: 0");
5. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
6. header("Pragma: public");
7. ?>



Export ke MS Excel:
Kita bisa memanfaatkan excel stream. Cari xlsstream-2005-01-20.zip dengan paman google, apabila Anda tertarik dengan class ini. Penulis juga mendapatkannya di phpclass.org .
Sama seperti word kita juga bisa memanipulasi header di script PHP kita.

view plain print

1. 2. header("Content-Type: application/download");
3. header("Content-Disposition: inline; filename="excel.xls"");
4. header("Expires: 0");
5. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
6. header("Pragma: public");
7. ?>



Saya kira cukup sekian penjelasan tentang laporan, printing dan lain-lain. Sebenernya masih banyak cara-cara lain yang bisa kita pakai dalam membuat laporan. tergantung kreatifitas kita. Coba luangkan waktu untuk baca-baca artikel mengenai OWC (Office Web Component) mungkin bisa banyak membantu. Biar tambah penasaran, kita juga bisa menfaatkan Crystal Report untuk membuat laporan pada aplikasi berbasis web. Udah dulu ah, kalo ada pertanyaan atau koreksi jangan ragu buat ngasih comment or japri gw.

Semoga bermanfaat.

Sumber Aslinya

Saturday, October 24, 2009

Orek-orekan Loadbalancing Menggunakan Router Linux

Orek-orekan Loadbalancing Menggunakan Router Linux
by: Onno W. Purbo

- insert ubuntu disc
- boot
install a command line system

$ sudo passwd root

# su -

# vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 10.0.148.48
netmask 255.255.255.0

auto eth1
iface eth1 inet static
address 192.168.0.222
netmask 255.255.255.0

auto eth2
iface eth2 inet static
address 192.168.1.222
netmask 255.255.255.0

# vi /etc/apt/source-list
deb ftp://192.168.0.1/pub/edgy-repo1/ edgy main restricted
deb ftp://192.168.0.1/pub/edgy-repo2/ edgy universe
deb ftp://192.168.0.1/pub/edgy-repo3/ edgy universe
deb ftp://192.168.0.1/pub/edgy-repo4/ edgy universe multiverse
# apt-get update

# apt-get install openssh-server
# /etc/init.d/ssh restart

# vi /etc/timezone
Asia/Jakarta

---------- iproute2 ------------------------------------------------

/sbin/ip link set lo up
/sbin/ip link set eth0 up
/sbin/ip link set eth1 up
/sbin/ip link set eth2 up

/sbin/ip route flush table adsl
/sbin/ip route flush table rtrwnet
/sbin/ip route flush table internet

/sbin/ip addr add 127.0.0.1/8 brd 127.0.0.255 dev lo

/sbin/ip addr add 192.168.1.222/24 brd 192.168.1.255 dev eth2
# /sbin/ip addr add 10.0.148.48/24 brd 10.0.148.255 dev eth0
/sbin/ip addr add 192.168.0.222/24 brd 192.168.0.255 dev eth1

/sbin/ip route add 127.0.0.0/8 dev lo
/sbin/ip route add 10.5.148.0/24 via 10.0.148.254 dev eth0
/sbin/ip route add 192.168.0.0/24 dev eth1
/sbin/ip route add 44.132.33.0/24 via 192.168.0.10 dev eth1
/sbin/ip route add 192.168.11.0/24 via 192.168.0.10 dev eth1
/sbin/ip route add 125.160.6.0/24 via 192.168.1.1 dev eth2
/sbin/ip route add 202.159.32.0/24 via 192.168.1.1 dev eth2

/sbin/ip rule add prio 10 table main
/sbin/ip rule add prio 20 table adsl
/sbin/ip rule add prio 30 table rtrwnet
/sbin/ip rule add prio 40 table internet

/sbin/ip route del default table main
/sbin/ip route del default table adsl
/sbin/ip route del default table rtrwnet
/sbin/ip route del default table internet

/sbin/ip rule add prio 20 from 192.168.1.0/24 table adsl
/sbin/ip route add default via 192.168.1.1 dev eth2 src 192.168.1.222 proto static table adsl
/sbin/ip route append prohibit default table adsl metric 1 proto static

/sbin/ip rule add prio 30 from 10.0.148.0/24 table rtrwnet
/sbin/ip route add default via 10.0.148.254 dev eth0 src 10.0.148.48 proto static table rtrwnet
/sbin/ip route append prohibit default table rtrwnet metric 5 proto static

# Set up load balancing gateways
/sbin/ip rule add prio 40 table internet
/sbin/ip route add default proto static table internet \
nexthop via 192.168.1.1 dev eth2 weight 1 \
nexthop via 10.0.148.254 dev eth0 weight 10

# Setup routing to ISPs
/sbin/ip route add 202.138.236.0/24 proto static table internet \
nexthop via 192.168.1.1 dev eth2 weight 10 \
nexthop via 10.0.148.254 dev eth0 weight 1


----------- iptables -----------------------------------------------

/bin/echo 1 > /proc/sys/net/ipv4/ip_forward

/sbin/iptables -F
/sbin/iptables -P INPUT DROP
/sbin/iptables -A INPUT -p tcp -i eth1 --destination-port 25 -s ! 192.168.0.1 -j DROP

/sbin/iptables -A INPUT -i eth1 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p tcp -s 0/0 --dport 25 -j ACCEPT
/sbin/iptables -A INPUT -i eth2 -p tcp -s 0/0 --dport 25 -j ACCEPT
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i eth0 -j REJECT --reject-with tcp-reset
/sbin/iptables -A INPUT -p tcp -i eth2 -j REJECT --reject-with tcp-reset
/sbin/iptables -A INPUT -p udp -i eth0 -j REJECT --reject-with icmp-port-unreachable
/sbin/iptables -A INPUT -p udp -i eth2 -j REJECT --reject-with icmp-port-unreachable

/sbin/iptables -t nat -A POSTROUTING -o eth2 -j SNAT --to 192.168.1.222
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 10.0.148.48



----------- /etc/iproute2/rt_tables --------------------------------

120 adsl
121 rtrwnet
123 internet

Friday, October 23, 2009

Authentifikasi Proxy Squid

Artikel bermanfaat kali ini akan membahas tentang Autentifikasi User dan Password di squid proxy server pada saat client melakukan browsing ke internet. Diasumsikan instalasi proxy squid di server anda sudah di tambahkan option sebagai berikut :

–enable-auth=”basic”
–enable-basic-auth-helpers=”NCSA”

NB:
Pada saat configure proxy squid arahkan direktory prefix squid anda ke /usr/local/squid

Baiklah kalo sudah selesai instalasi squid anda harus mengkonfigurasi squid tersebut supaya bisa berjalan sesuai dengan yang anda inginkan yaitu muncul dialog User dan Password saat client melakukan browsing ke Internet.

Langsung saja kita konfigurasi Squid yang sudah anda instalasi tersebut:

1. Buatlah file untuk user dan password saat client anda browsing di internet caranya sebagai berikut :

Router # cd /usr/local/squid
Router # touch passwd
Router # chmod o+r passwd

2. Create User dan Password untuk masing masing client

Router# htpasswd /usr/local/squid/passwd yudy —-> yudy (UserSquid)
New password:
Re-type new password:
Adding password for user yudy

3. Tambahkan baris tulisan berikut ke dalam squid.conf anda

auth_param basic program /usr/local/squid/libexec/ncsa_auth /usr/local/squid/passwd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

acl ncsa_users proxy_auth REQUIRED
http_access allow ncsa_users

Konfigurasi squid.conf

Konfigurasi squid.conf

4. Kemudian save Konfgurasi squid.conf anda

5. Configure atau Restart squid anda dengan cara

Router # /usr/local/squid/sbin/squid -k reconfigure

atau

Router # killall squid
Router # /usr/local/squid/sbin/squid -YD

6. Cek di mesin Router anda dengan perintah

Router # ps ax
status squid dan autentifikasi sudah akfit

status squid dan autentifikasi sudah akfit

7. Coba anda buat browsing lewat komputer client dengan mengkonfigurasi browser Internet Explorer

Buka Internet Explore –> Tools –> Internet Options –> Connections –> Lan Setting
Internet Explorer Setting IP Proxy

Internet Explorer Setting IP Proxy

8. Maka pada saat browsing internet dialog untuk menanyakan User dan Password akan muncul seperti gambar dibawah ini.
dialog-autentifikasi

dialog-autentifikasi

Demikian Semoga Bermanfaat.

Ditulis dalam Debian, Slackware | Bertanda ncsa_auth, proxy, proxy autentifikasi, proxy ncsa_auth, squid, squid proxy | & Komentar

Wednesday, October 21, 2009

Monitor Jaringan dengan iftop dan nload

Written by urangkayo
Minggu, 24 Juni 2007
Melihat traffic jaringan dengan iftop dan nload

Sebagai seorang admin, tentunya melihat traffic jaringan sangat penting, sehingga kita bisa mengetahui bagaimana user menggunakan bandwithnya. Salah satu tool yang bisa digunakan untuk melihat traffic jaringan secara realtime adalah iftop (informasi mengenai iftop bisa dilihat di http://www.ex-parrot.com/~pdw/iftop/ )

Pada tulisan ini, menggunakan Ubuntu 7.04. Untuk menginstall iftop, pada terminal atau konsol ketik

$ sudo apt-get install iftop

Setelah proses installasi selesai, sekarang kita bisa menggunakan iftop untuk melihat traffic jaringan. Pada terminal ketik perintah berikut

$ sudo iftop -i eth1

Perintah diatas akan membuat iftop mengawasi interface jaringan eth1 (interace yang terhubunga dengan LAN, silahkan ganti sesuai dengan kebutuhan.)

195Kb 391Kb 586Kb 781Kb 977Kb
└───────────────┴───────────────┴───────────────┴───────────────┴───────────────
66.230.168.59 => 192.168.1.11 35.2Kb 31.2Kb 31.2Kb
<= 1.27Kb 1.01Kb 1.01Kb
38.103.54.59 => 192.168.1.12 23.4Kb 20.7Kb 20.7Kb
<= 480b 533b 533b
69.5.88.71 => 192.168.1.13 5.86Kb 9.40Kb 9.40Kb
<= 160b 160b 160b
202.134.0.155 => 192.168.1.15 592b 987b 987b
<= 0b 568b 568b
────────────────────────────────────────────────────────────────────────────────
TX: cumm: 210KB peak: 325Kb rates: 325Kb 281Kb 281Kb
RX: 9.45KB 15.7Kb 10.6Kb 12.6Kb 12.6Kb
TOTAL: 220KB 335Kb 335Kb 293Kb 293Kb

Keterangan dari tampilan diatas untuk:
66.230.168.59 => 192.168.1.11 35.2Kb 31.2Kb 31.2Kb
<= 1.27Kb 1.01Kb 1.01Kb

=> : berarti traffic yang berasal dari 66.230.168.59 ke host 192.168.1.11
<= : berarti traffic yang berasal dari 192.168.1.11 ke 66.230.168.59

Sekarang lihat tiga kolom paling kanan, disitu ada 35.2Kb 31.2Kb 31.2Kb. Dimulai dari paling kiri, merupakan jumlah data yang diterima oleh host 192.168.1.11 dalam selang waktu 2 detik yaitu sebanyak 35.2Kb.
Kolom berikutnya menunjukan data yang diterima dalam waktu 10 detik, dan yang terakhir dalam jangka waktu 40 detik.
Agar lebih mudah dalam menjalankan iftop, kita juga bisa membuat file konfigurasi yang akan dibaca oleh iftop. File ini akan disimpan di /etc/iftop/eth1 (sesuaikan namanya dengan yang diinginkan).

$ sudo mkdir /etc/iftop
$ sudo vi /etc/iftop/eth1

Isikan baris berikut ini pada file /etc/iftop/eth1

interface: eth1
dns-resolution: no
port-resolution: no
show-bars: yes
promiscuous: no
port-display: off
hide-source: yes
hide-destination: no
sort: 2s
line-display: one-line-sent

Untuk melihat fungsi options diatas bisa dengan membaca manual page dari iftop (man iftop), anda bisa mengganti sesuai dengan selera sendiri. Simpan file tersebut.
Sekarang, jalankan kembali perintah iftop

$ sudo iftop -c /etc/iftop/eth1

Flaq -c diatas memberitahukan iftop untuk membaca file konfigurasi pada /etc/iftop/eth1. Hasilnya kurang lebih akan terlihat seperti ini:

195Kb 391Kb 586Kb 781Kb 977Kb
└───────────────┴───────────────┴───────────────┴───────────────┴───────────────
* => 192.168.1.12 35.2Kb 34.7Kb 34.1Kb
* => 192.168.1.13 30.7Kb 33.3Kb 33.7Kb
* => 192.168.1.15 12.0Kb 12.2Kb 8.79Kb
────────────────────────────────────────────────────────────────────────────────
TX: cumm: 16.6MB peak: 326Kb rates: 291Kb 272Kb 245Kb
RX: 1.98MB 21.6Kb 13.2Kb 10.2Kb 13.0Kb
TOTAL: 18.5MB 334Kb 304Kb 282Kb 258Kb

nload
Selain dengan iftop, kita juga bisa melihat traffic dengan menggunakan nload (http://www.roland-riegel.de/nload/index_en.html), nload menampilkan incoming dan outgoing traffic dari interface yang ingin kita lihat.
Untuk menginstall nload, jalankan perintah berikut:

$ sudo apt-get install nload

Untuk melihat traffic pada eth1, gunakan perintah

$ nload eth1

Device eth1 [172.16.1.178] (1/1):
================================================================================
Incoming:
Curr: 18.30 kBit/s
Avg: 14.91 kBit/s
Min: 8.94 kBit/s
Max: 18.30 kBit/s
Ttl: 124.09 MByte
Outgoing:
Curr: 83.88 kBit/s
Avg: 68.23 kBit/s
Min: 45.25 kBit/s
Max: 94.93 kBit/s
Ttl: 1131.87 MByte

Untuk mengetahui option dari nload, silahkan lihat manual page nya (man nload).

Wednesday, October 7, 2009

Sensor adengan sex film Lust, Caution yang disensor jadi media penyebaran virus.

Beijing. Satu perusahaan Antivirus China memperingatkan tidak mendownload potongan film "Lust, Caution".
Potongan film yang disebar, dijadikan target untuk mencuri password IM

Lust Caution, adalah judul film baru dan sedang in di China. Karena mendapatkan 12.12 juta dollar hanya dalam 2 minggu pertama. Tetapi ada beberapa adengan yang dipotong pada film itu, sekitar 7 menit adengan tidak ada didalam film versi bioskop.

Beberapa situs menawarkan download file potongan film itu. Tetapi ada layanan gratis tersebut malah mencoba mencuri password penguna komputer. Sekitar 15 persen link untuk mendownload berisi virus komputer.
Hacker mencoba mengambil kesempatan dari kepopuleran sebuah media hiburan seperti film untuk menyerbar virus.

Seorang teknisi menemukan serangan virus minggu lalu. Tanda dari serangan seperti layar blank dari monitor lalu dia kehilangan password di software Instant Messenger.

http://www.youtube.com/watch?v=i9YLIjddVhE&feature=related

Load Balancing dengan Debian Etch

Setelah Sekian Lama, utak atik Load Balancing dengan Debian etch.. akhirnya bisa sukses juga.

Adapun gambaran jaringan yg dibuat adalah sebagai berikut :

eth0 (192.168.1.100) terhubung ke modem1 dengan ip 192.168.1.1 pada network : 192.168.1.0/24
eth1 (192.168.2.100) terhubung ke modem2 dengan ip 192.168.2.1 pada network : 192.168.2.0/24

eth2 (192.168.15.1) adalah untuk jaringan localnya dengan network : 192.168.15.0/24

Pengaturan Ip tersebut ada di /etc/network/interfaces :

auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

auto eth1
iface eth1 inet static
address 192.168.2.100
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255

auto eth2
iface eth2 inet static
address 192.168.15.1
netmask 255.255.255.0
network 192.168.15.0
broadcast 192.168.15.255

dan perlu juga diatur table routing nya yg ada di : /etc/iproute2/rt_tables :

#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
120 adsl1
121 adsl2
123 internet

Kemudian membuat file di /etc/ dengan nama : /etc/maxinet/my_iptables dan supaya bisa di eksekusi saat booting di chmod +x /etc/maxinet/my_iptables dan di masukkan ke /etc/init.d/networking di bagian ini :

case “$1″ in
start)
process_options
log_action_begin_msg “Configuring network interfaces”
if ifup -a; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
/etc/maxinet/my_iptables
;;

Sedangkan Isi dari /etc/maxinet/my_iptables adalah sebagai berikut :

#!/bin/bash

##Main Rule
ip route flush table adsl1
ip route flush table adsl2
ip route flush table internet

ip rule add prio 10 table main
ip rule add prio 20 table adsl1
ip rule add prio 30 table adsl2
ip rule add prio 40 table internet

ip route del default table main
ip route del default table adsl1
ip route del default table adsl2
ip route del default table internet

ip rule add prio 20 from 192.168.1.0/24 table adsl1
ip route add default via 192.168.1.1 dev eth0 src 192.168.1.100 proto static table adsl1
ip route append prohibit default table adsl1 metric 1 proto static

ip rule add prio 30 from 192.168.2.0/24 table adsl2
ip route add default via 192.168.2.1 dev eth1 src 192.168.2.100 proto static table adsl2
ip route append prohibit default table adsl2 metric 5 proto static

##Set Load Balancing
ip rule add prio 40 table internet
ip route add default proto static table internet \nexthop via 192.168.1.1 dev eth0 weight 1 \nexthop via 192.168.2.1 dev eth1 weight 1

## NAT

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -F
iptables -P INPUT DROP

iptables -A INPUT -i eth2 -j ACCEPT

iptables -A INPUT -i eth1 -p tcp -s 0/0 –dport 25 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -s 0/0 –dport 25 -j ACCEPT

iptables -A INPUT -m state –state ESTABLISHED, RELATED -j ACCEPT

iptables -A INPUT -p tcp -i eth1 -j REJECT –reject-with tcp-reset
iptables -A INPUT -p tcp -i eth0 -j REJECT –reject-with tcp-reset

iptables -A INPUT -p tcp -i eth1 -j REJECT –reject-with icmp-port-unreachable
iptables -A INPUT -p tcp -i eth0 -j REJECT –reject-with icmp-port-unreachable

iptables -t nat -A POSTROUTING -o eth0 -j SNAT –to 192.168.1.100
iptables -t nat -A POSTROUTING -o eth1 -j SNAT –to 192.168.2.100

Setelah diconfigurasi reboot servernya dan ditest koneksinya… alhamdulillah berfungsi dan berjalan dengan baik.

Untuk melihat apakah iptables nya berfungsi dengan baik, diketikkan perintah : iptables -L -n -v -t nat .

Untuk Indikator apakah ada pemakaian melalui kedua modem bisa juga diliat dari indikator lampu ethernetnya, jika blinkingnya cepat brarti sedang ada pemakaian.

Demikian setingan load balancing untuk 2 link speedy yang berhasil saya konfigurasi.

Sumber : http://www.debian-id.org

Pada kesempatan ini saya akan membahas tentang bagaimana cara mengkonfigurasi pc linux sebagai router / gateway internet. Jika anda memiliki 2 koneksi ISP yang ingin dibagikan kedalam 1 network melalui 1 server linux, mungkin artikel ini akan membantu anda. Saya akan berusaha menjelaskan secara singkat, dan semudah mungkin untuk dimengerti. Konfigurasi ini adalah konfigurasi cara manual tanpa melalui software perantara. Dengan kata lain, cukup instalasi standart linux pada sebuah pc, anda sudah bisa mempraktekkannya sendiri. Dan yang terpenting, langkah konfigurasi ini berlaku untuk semua distribusi linux yang ada, baik Fedora, SUSE, Mandriva dan lainnya.

Dalam artikel ini saya akan menggunakan kasus, kita memiliki 2 koneksi internet dengan ISP Fastnet.

Yang disediakan:
1. Sebuah pc yang sudah terinstal sistem operasi linux.
2. Dua koneksi ISP / internet (saya asumsikan kedua ISP adalah Fastnet)
3. Tiga buah network/ethernet card (biasanya pc modern sudah memiliki 1 build-in)
4. Satu buah hub untuk menghubungkan antara server linux dan client clientnya.

Gambar ilustrasi kasus

Network

Langkah langkah konfigurasi

1. Pastikan network local anda sudah di konfigurasi dengan ip statik dan sambungkan kedua kabel koneksi internet ke ethernet masing masing. Jika konfigurasi awal sudah benar, jalankan perintah ‘ifconfig‘ maka dilayar anda akan muncul hasil seperti gambar ini:

ifconfig

Dari hasil tersebut menunjukkan kita memiliki ethernet card pertama (eth0) dengan statik IP 192.168.0.136, kemudian ethernet kedua (eth1) dengan IP 61.247.34.52 (koneksi fastnet1), dan yang terakhir (eth2) dengan IP 61.247.6.104 (koneksi fastnet 2)

2. Aktifkan IP FORWARDING pada server linux anda,
edit file /etc/sysctl.conf, cari baris berikut dan ubah nilainya seperti dibawah ini

net.ipv4.ip_forward = 1

kemudian aktifkan dengan ‘sysctl -p‘ atau restart server jika dirasa kurang yakin.

3. Atur firewall untuk mengatur jalur data, setelah anda mendapatkan IP masing masing koneksi (langkah 1) melalui command prompt / shell jalankan perintah berikut

iptables -F
iptables -t nat -F
iptables -t mangle -F

iptables -t nat -A POSTROUTING -o eth1 -j SNAT -–to-source 61.247.34.52
iptables -t nat -A POSTROUTING -o eth2 -j SNAT -–to-source 61.247.6.104

dan, kita pastikan perintah tersebut sudah terinput dengan benar, dengan perintah ‘iptables -nvL -t nat‘ maka akan muncul hasil seperti gambar berikut

nat

4. Cari tahu koneksi internet manakah yang digunakan sebagai default gateway (jalur utama) oleh linux. Dengan perintah ‘route -n‘, maka hasil dari perintah tersebut akan terlihat seperti gambar:
routing_table_1

Dari gambar itu menunjukkan terdapat 2 buah gateway yang tersambung ke linux, akan tetapi yang dipakai saat ini hanyalah baris pertama dari 2 baris terakhir, yaitu koneksi internet pertama (eth1 / 61.247.34.52) dengan gateway 61.247.34.1. Itu berarti koneksi internet kedua (eth2) akan idle dan tidak terpakai.

5. Kemudian kita akan membuat aturan routing, membagi sebagian client lokal kita untuk memakai koneksi internet yang kedua (eth2), sebelum itu mari kita lihat kembali berapakah IP gateway untuk koneksi internet kedua (eth2) dengan perintah seperti langkah diatas yaitu ‘route -n‘

routing_table_2

Pada gambar tersebut jelas terlihat bahwa koneksi internet kedua (eth2 / 61.247.6.104) memiliki gateway 61.247.6.1. Setelah itu kita akan mendefinisikan table routing untuk kedua koneksi fastnet yang kita miliki dengan jalankan perintah berikut pada command prompt / shell

echo 1 fastnet1 >> /etc/iproute2/rt_tables
echo 2 fastnet2 >> /etc/iproute2/rt_tables

Perintah diatas akan memasukkan 2 baris definisi koneksi kedalam file /etc/iproute2/rt_tables

Kemudian kita buat table routing untuk masing-masing IP gateway yang kita dapatkan dengan perintah ‘route -n‘ diatas (langkah 4-5) dengan perintah

ip route add default via 61.247.34.1 table fastnet1
ip route add default via 61.247.6.1 table fastnet2

Harap diperhatikan bahwa perintah diatas menggunakan IP gateway masing masing koneksi, bukan IP ethernet masing masing koneksi

6. Yang terakhir, kita akan mengarahkan sebagian client lokal kita, sebagai contoh IP 192.168.0.10 sampai dengan 192.168.0.30 untuk memakai koneksi internet kedua (eth2) yang belum terpakai (langkah 4) dengan kedua perintah berikut:

ip rule add fwmark 2 table fastnet2
iptables -t mangle -A PREROUTING -m iprange --src-range 192.168.0.10-192.168.0.30 -j MARK --set-mark 2

dan, kita pastikan perintah tersebut sudah terinput dengan benar, dengan perintah ‘iptables -nvL -t mangle‘ maka akan muncul hasil seperti gambar berikut

mangle

Tidak sulit bukan? saya harap artikel singkat ini mudah di mengerti dan bisa membantu anda.

http://frankymedia.com/60/tutorials/konfigurasi-linux-router-dengan-2-isp.html

Load Balancing dengan 2 ISP

Dengan semakin kompleks-nya jaringan, terkadang kita memiliki beberapa sambungan ke Internet sekaligus. Saya sendiri di rumah memiliki dua (2) sambungan ke Internet sekaligus, yaitu, ADSL Speedy dan RT/RW-net. Agar kedua sambungan ke Internet tersebut dapat dimanfaatkan secara maksimal, kita perlu melakukan load balancing dengan 2 sambungan tersebut agar secara paralel akses Internet dapat dilakukan.

Spesifikasi / topologi jaringan yang saya gunakan di rumah adalah sebagai berikut

Sambungan ADSL melalui eth2 IP address 192.168.1.222 dengan gateway router ADSL pada IP 192.168.1.1.

Sambungan RT/RW-net melalui eth0 IP address 10.0.148.48 melalui WiFi / Wireless dengan gateway 10.0.148.254.

Sambungan LAN melalui eth1 IP address 192.168.0.222.

Langkah instalasi router adalah sebagai berikut.

Masukan CD / DVD Ubuntu installer, pilih “install a command line system”

Set password root supaya kita dapat menjalankan perintah “su” melalui perintah

$ sudo passwd root

Pindah mode menjadi Super User

# su -

Edit informasi interface pada file /etc/network/interfaces, dapat dilakukan menggunakan vi

# vi /etc/network/interfaces

Informasi penting yang perlu di-edit pada file interfaces adalah

auto eth0
iface eth0 inet static
address 10.0.148.48
netmask 255.255.255.0

auto eth1
iface eth1 inet static
address 192.168.0.222
netmask 255.255.255.0

auto eth2
iface eth2 inet static
address 192.168.1.222
netmask 255.255.255.0

Install beberapa aplikasi pendukung agar memudahkan hidup anda seperti

# apt-get install openssh-server
# /etc/init.d/ssh restart

Selanjutnya kita perlu menset routing dan load balancing yang secara sederhana adalah sebagai berikut

/sbin/ip link set lo up
/sbin/ip link set eth0 up
/sbin/ip link set eth1 up
/sbin/ip link set eth2 up

/sbin/ip route flush table adsl
/sbin/ip route flush table rtrwnet
/sbin/ip route flush table internet

/sbin/ip addr add 127.0.0.1/8 brd 127.0.0.255 dev lo

/sbin/ip addr add 192.168.1.222/24 brd 192.168.1.255 dev eth2
# /sbin/ip addr add 10.0.148.48/24 brd 10.0.148.255 dev eth0
/sbin/ip addr add 192.168.0.222/24 brd 192.168.0.255 dev eth1

/sbin/ip rule add prio 10 table main
/sbin/ip rule add prio 20 table adsl
/sbin/ip rule add prio 30 table rtrwnet
/sbin/ip rule add prio 40 table internet

/sbin/ip route del default table main
/sbin/ip route del default table adsl
/sbin/ip route del default table rtrwnet
/sbin/ip route del default table internet

/sbin/ip rule add prio 20 from 192.168.1.0/24 table adsl
/sbin/ip route add default via 192.168.1.1 dev eth2 src 192.168.1.222 proto static table adsl
/sbin/ip route append prohibit default table adsl metric 1 proto static

/sbin/ip rule add prio 30 from 10.0.148.0/24 table rtrwnet
/sbin/ip route add default via 10.0.148.254 dev eth0 src 10.0.148.48 proto static table rtrwnet
/sbin/ip route append prohibit default table rtrwnet metric 5 proto static

# Set up load balancing gateways
/sbin/ip rule add prio 40 table internet
/sbin/ip route add default proto static table internet \
nexthop via 192.168.1.1 dev eth2 weight 1 \
nexthop via 10.0.148.254 dev eth0 weight 1

Konfigurasi di atas membutuhkan tiga (3) tabel routing tambahan, yaitu, adsl, rtrwnet dan internet yang kita masukan dalam file /etc/iproute2/rt_tables, isinya kira-kira sbb,

120 adsl
121 rtrwnet
123 internet

Selanjutnya kita perlu menset NAT / proxy agar dapat sekaligus melakukan NAT ke dua (2) interface yang berbeda, yaitu, 192.168.1.222 dan 10.0.148.48. Adapun perintahnya adalah sebagai berikut,

/bin/echo 1 > /proc/sys/net/ipv4/ip_forward

/sbin/iptables -F
/sbin/iptables -P INPUT DROP
/
/sbin/iptables -A INPUT -i eth1 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p tcp -s 0/0 –dport 25 -j ACCEPT
/sbin/iptables -A INPUT -i eth2 -p tcp -s 0/0 –dport 25 -j ACCEPT
/sbin/iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i eth0 -j REJECT –reject-with tcp-reset
/sbin/iptables -A INPUT -p tcp -i eth2 -j REJECT –reject-with tcp-reset
/sbin/iptables -A INPUT -p udp -i eth0 -j REJECT –reject-with icmp-port-unreachable
/sbin/iptables -A INPUT -p udp -i eth2 -j REJECT –reject-with icmp-port-unreachable

/sbin/iptables -t nat -A POSTROUTING -o eth2 -j SNAT –to 192.168.1.222
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j SNAT –to 10.0.148.48

penulis : Onno W. Purbo
http://www.warungdigital.com/setting-router-load-balancing-menggunakan-linux-ubuntu.htm
http://ubuntupasuruan.wordpress.com/2008/03/02/membuat-router-load-balancing-menggunakan-linux-ubuntu/