oleh Onno W. Purbo
Pada berbagai kesempatan di mailing list, banyak sekali orang yang bertanya teknik untuk melakukan load balancing atau menggunakan secara bersamaan beberapa sambungan ke Internet sekaligus. Hal ini terjadi karena sering kali kita dapati bandwidth dari sebuah ISP tidak mencukupi. Kita memerlukan tambahan bandwidth dari bandwidth yang sudah ada.
Teknik yang sering digunakan untuk menambahkan bandwidth dari yang sudah biasanya adalah load balancing dari beberapa link / sambungan Internet. Teknik load balancing sangat erat hubungannya dengan teknik routing. Teknik routing yang sederhana menggunakan parameter gateway yang mempunyai satu gateway saja. Teknik load balancing termasuk kategori advanced bukan untuk pemula.
+------------+ / | | | +-------------+ Provider 1 +------- __ | | Wireless | / ___/ \_ +------+-------+ +------------+ | _/ \__ | eth0 | / / \ | Router | | | Local network -----+eth1 | | Internet \_ __/ | Linux | | \__ __/ | eth2 | \ \___/ +------+-------+ +------------+ | | | | \ +-------------+ Provider 2 +------- | ADSL | | +------------+ \________
Untuk itu kita menggunakan sebuah Linux Gateway yang mempunyai tiga (3) LAN card. Semakin banyak sambungan ke Internet semakin banyak LAN card yang dibutuhkan. Dalam percobaan saya menggunakan Ubuntu yang di install hanya shell saja.
LAN di RT/RW-net atau kantor menggunakan IP address 192.168.0.0/24. Linux gateway mempunyai tiga (3) LAN card dengan tiga (3) IP address yang berbeda, yaitu,
eth0 IP address 10.0.148.48 gateway 10.0.148.254 ke Provider Wireless eth1 IP address 192.168.0.222 ke LAN RT/RW-net yang kita layani eth2 IP address 192.168.1.222 gateway 192.168.1.1 ke ADSL Speedy
Install SSH server agak mudah di remote dari komputer lain, lakukan,
# apt-get install openssh-server # /etc/init.d/ssh restart Edit file /etc/network/interfaces pastikan agar isinya 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
Isi file /etc/iproute2/rt_tables dengan tabel adsl, wirelessisp dan internet agar memudahkan iproute2 bekerja. Isi /etc/iproute2
120 adsl 121 wirelessisp 123 internet
# aktifkan interface lo, eth0, eth1, dan eth2 /sbin/ip link set lo up /sbin/ip link set eth0 up /sbin/ip link set eth1 up /sbin/ip link set eth2 up # flush / bersihkan tabel routing yang ada # flush tabel router adsl, table wirelessisp dan tabel internet /sbin/ip route flush table adsl /sbin/ip route flush table wirelessisp /sbin/ip route flush table internet # masukan informasi IP address & broadcast address dari masing-masing interface /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 # masukan tabel routing ke arah LAN / RT/RW-net yang sifatnya statik # routing ke arah LAN / RT/RW-net / kantor sifatnya statik /sbin/ip route add 127.0.0.0/8 dev lo /sbin/ip route add 192.168.0.0/24 dev eth1 # beri prioritas untuk masing-masing tabel /sbin/ip rule add prio 10 table main /sbin/ip rule add prio 20 table adsl /sbin/ip rule add prio 30 table wirelessisp /sbin/ip rule add prio 40 table internet # delete routing ke arah default gateway /sbin/ip route del default table main /sbin/ip route del default table adsl /sbin/ip route del default table wirelessisp /sbin/ip route del default table internet # buat tabel routing ke arah ADSL Speedy /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 # buat tabel routing ke arah Wireless ISP /sbin/ip rule add prio 30 from 10.0.148.0/24 table wirelessisp /sbin/ip route add default via 10.0.148.254 dev eth0 src 10.0.148.48 \ proto static table wirelessisp /sbin/ip route append prohibit default table wirelessisp metric 1 proto static
# Set up load balancing ke dua (2) buah gateway ke Internet
/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
Buat script untuk melakukan NAT untuk ke dua (2) interface menuju Internet. Script tersebut dapat di letakan di /etc/rc.local jika mau. Contoh script adalah sebagai berikut,
# pastikan agar PC Linux dapat memforward IP paket /bin/echo 1 > /proc/sys/net/ipv4/ip_forward # bersihkan isi iptables /sbin/iptables -F /sbin/iptables -P INPUT DROP /sbin/iptables -A INPUT -i eth1 -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 # lakukan source NAT untuk eth0 dan eth2 /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 sumber :http://adinuryanto.wordpress.com/2011/07/28/load-balancing-beberapa-sambungan-internetisp/
Tidak ada komentar:
Posting Komentar