Yang saya maksud Outgoing Load Balancing disini adalah balancing dua koneksi internet atau lebih dan mengoptimalkan koneksi tersebut.
Untuk menggunakan load balancing ini, gunakan pf pool http://www.openbsd.org/faq/pf/pools.html#outgoing
Dalam contoh kali ini akan saya sajikan 2 koneksi saja, untuk lebih dari dua koneksi silahkan anda mencobanya dan berexperiment sendiri.
Pra Syarat:
- kernel sudah dikompile support pf
- ada 3 buah lancard, 2 untuk koneksi wan dan 1 untuk koneksi lan
- dua line koneksi ISP atau Speedy
# cd /usr/src/sys/i386/conf
# cp GENERIC ROUTER
# ee ROUTER
#——– Tambahkan baris berikut pada konfigurasi kernel anda ——–#
###—untuk support PF—-###
device pf
device pflog
device pfsync
###—untuk support altq cbq jika diperlukan nanti —#
options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_HFSC
options ALTQ_PRIO
options ALTQ_NOPCC
Save konfigurasi kernel tersebut.
Setelah mengedit konfigurasi kernel lalu saya mengcompile kernel ulang.
# cd /usr/src/sys/i386/conf
# config ROUTER
# cd ../compile/ROUTER
# make cleandepend; make depend; make; make install
Setelah tahap instalasi kernel baru selesai, saya perlu mengonfigurasi rc.conf untuk keperluan pf berjalan ketika boot:
# ee /etc/rc.conf
###—tambahkan ini —###
pf_enable=”YES” # Enable PF (load module if required)
pf_rules=”/etc/pf.conf” # rules definition file for pf
pf_flags=”" # additional flags for pfctl startup
pflog_enable=”YES” # start pflogd(8)
pflog_logfile=”/var/log/pflog”# where pflogd should store the logfile
pflog_flags=”" # additional flags for pflogd startup
gateway_enable=”YES” # Enable as LAN gateway
router_flags”=”-q”
router= “sbin/routed”
router_enable=”YES”
defaultrouter=”10.0.0.1″ #masukan salah satu gateway koneksi isp anda
Save hasil edit rc.conf tersebut.
Langkah selanjutnya membuat konfigurasi pf.conf untuk pool loadbalancing. Dalam percobaan ini saya menggunakan konfigurasi http://www.openbsd.org/faq/pf/pools.html#outexample.
# ee /etc/pf.conf
#—– Isi konfigurasi pf —–#
lan_net = “192.168.1.0/24″
int_if = “rl2″
ext_if1 = “rl0″
ext_if2 = “rl1″
ext_gw1 = “10.0.0.1″
ext_gw2 = “10.0.0.2″
# nat outgoing connections on each internet interface
nat on $ext_if1 from $lan_net to any -> ($ext_if1)
nat on $ext_if2 from $lan_net to any -> ($ext_if2)
# default deny
block in from any to any
block out from any to any
# pass all outgoing packets on internal interface
pass out on $int_if from any to $lan_net
# pass in quick any packets destined for the gateway itself
pass in quick on $int_if from $lan_net to $int_if
# load balance outgoing tcp traffic from internal network.
pass in on $int_if route-to
{ ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2) } round-robin
# load balance outgoing udp and icmp traffic from internal network
pass in on $int_if route-to
{ ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2) } round-robin
proto { udp, icmp } from $lan_net to any keep state
# general “pass out” rules for external interfaces
pass out on $ext_if1 proto tcp from any to any flags S/SA modulate state
pass out on $ext_if1 proto { udp, icmp } from any to any keep state
pass out on $ext_if2 proto tcp from any to any flags S/SA modulate state
pass out on $ext_if2 proto { udp, icmp } from any to any keep state
# route packets from any IPs on $ext_if1 to $ext_gw1 and the same for
# $ext_if2 and $ext_gw2
pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from $ext_if2 to any
pass out on $ext_if2 route-to ($ext_if1 $ext_gw1) from $ext_if1 to any
#—selesai—#
Save konfigurasi pf tersebut.
# reboot
Selesai sudah tahap pembuatan router load balancing dua koneksi internet.
Saran: Untuk kenyamanan anda silahkan customize port-port yang diperlukan untuk dilewatkan atau diblok.
Periksa kembali dokumentasi squid dan pf jika anda ingin menjalankan transparent proxy.
sumber: yudymardianto.wordpress.com
0 comments:
Post a Comment