3.20.2010

Load Balancing Persistent

Ini contoh versi penyempurnaan dari load balancing. Ini menambahkan user sessions yang tetap, contoh : group customer 1 anda dengan ip tertentu menggunakan gateway pertama dan group customer 2 anda dengan ip tertentu menggunakan gateway kedua. Kasus ini memudahkan anda jika anda mempunyai 2 ISP dan ingin menggunakan kedua bandwidth ISP itu secara bersamaan. Mengingat jaringan yang ada seperti ini:
Konfigurasi dari gateway router :
”’/ ip address”’
add address=192.168.0.1/24 network=192.168.0.0 broadcast=192.168.0.255 interface=Local
add address=10.111.0.2/24 network=10.111.0.0 broadcast=10.111.0.255 interface=ether2
add address=10.112.0.2/24 network=10.112.0.0 broadcast=10.112.0.255 interface=ether1
”’/ ip firewall mangle”’
add chain=prerouting src-address-list=odd in-interface=Local action=mark-connection new-connection-mark=odd passthrough=yes
add chain=prerouting src-address-list=odd in-interface=Local action=mark-routing new-routing-mark=odd passthrough=no
add chain=prerouting src-address-list=even in-interface=Local action=mark-connection new-connection-mark=even passthrough=yes
add chain=prerouting src-address-list=even in-interface=Local action=mark-routing new-routing-mark=even passthrough=no
add chain=prerouting in-interface=Local connection-state=new nth=1,1,0 action=mark-connection new-connection-mark=odd passthrough=yes
add chain=prerouting in-interface=Local action=add-src-to-address-list address-list=odd address-list-timeout=1d connection-mark=odd passthrough=yes
add chain=prerouting in-interface=Local connection-mark=odd action=mark-routing new-routing-mark=odd passthrough=no
add chain=prerouting in-interface=Local connection-state=new nth=1,1,1 action=mark-connection new-connection-mark=even passthrough=yes
add chain=prerouting in-interface=Local action=add-src-to-address-list address-list=even address-list-timeout=1d connection-mark=even passthrough=yes
add chain=prerouting in-interface=Local connection-mark=even action=mark-routing new-routing-mark=even passthrough=no
”’/ ip firewall nat”’
add chain=srcnat connection-mark=odd action=src-nat to-addresses=10.111.0.2 to-ports=0-65535
add chain=srcnat connection-mark=even action=src-nat to-addresses=10.112.0.2 to-ports=0-65535
”’/ ip route”’
add dst-address=0.0.0.0/0 gateway=10.111.0.1 scope=255 target-scope=10 routing-mark=odd
add dst-address=0.0.0.0/0 gateway=10.112.0.1 scope=255 target-scope=10 routing-mark=even
add dst-address=0.0.0.0/0 gateway=10.112.0.1 scope=255 target-scope=10
Explanation
Pertama saya coba pisahkan code diatas dan menjelaskan satu per satu.
IP Addresses
/ ip address
add address=192.168.0.1/24 network=192.168.0.0 broadcast=192.168.0.255 interface=Local
add address=10.111.0.2/24 network=10.111.0.0 broadcast=10.111.0.255 interface=ether2
add address=10.112.0.2/24 network=10.112.0.0 broadcast=10.112.0.255 interface=ether1
Router mempunyai 2 interface upstream (WAN/ISP) dengan IP 10.111.0.2/24 dan 10.112.0.2/24. Interface LAN dinamai “Local” dan dengan IP 192.168.0.1/24.
Mangle
/ ip firewall mangle
add chain=prerouting src-address-list=odd in-interface=Local action=mark-connection new-connection-mark=odd passthrough=yes
add chain=prerouting src-address-list=odd in-interface=Local action=mark-routing new-routing-mark=odd
Menandai koneksi (mark connection) dari IP customer group1 yang dimasukan dalam address list “odd” dan membuat routing mark “odd”.
/ ip firewall mangle
add chain=prerouting src-address-list=even in-interface=Local action=mark-connection new-connection-mark=even passthrough=yes
add chain=prerouting src-address-list=even in-interface=Local action=mark-routing new-routing-mark=even
Sama seperti diatas, hanya untuk customer group2 yang ip nya terdaftar dalam address-list “even” yang ditandai. Mark connection dengan nama “even” dan Routing Mark dengan nama “even”
/ ip firewall mangle
add chain=prerouting in-interface=Local connection-state=new nth=1,1,0 action=mark-connection new-connection-mark=odd passthrough=yes
add chain=prerouting in-interface=Local action=add-src-to-address-list address-list=odd address-list-timeout=1d connection-mark=odd passthrough=yes
add chain=prerouting in-interface=Local connection-mark=odd action=mark-routing new-routing-mark=odd passthrough=no
Pertama kita ambil setiap detik paket yang dikenal sebagai new session (koneksi baru, connection-state=new), dan menandai dengan connection mark “odd”. Dengan konsuekensi semua paket yang diurutkan dalam session yang sama akan dimasukan dalam connection mark “odd”. Dengan catatan kita melewatkan paket itu dari kedua dan ketiga rules itu (passthrough=yes). Rule kedua menambahkan ip address client ke address list untuk membolehkan semua session yang diurutkan ke gateway yg sama. Rule ketiga menempatkan routing mark “odd” dalam semua paket yang menjadi bagian koneksi “odd” dan memberhentikan semua proses mangle yang lain untuk paket itu dalam chain prerouting
/ ip firewall mangle
add chain=prerouting in-interface=Local connection-state=new nth=1,1,1 action=mark-connection new-connection-mark=even passthrough=yes
add chain=prerouting in-interface=Local action=add-src-to-address-list address-list=even address-list-timeout=1d connection-mark=even passthrough=yes
add chain=prerouting in-interface=Local connection-mark=even action=mark-routing new-routing-mark=even passthrough=no
Sama seperti yang diatas. Semua koneksi baru ditandai dengan routing dan connection mark “even”
Kode diatas berarti secara efektif untuk setiap koneksi baru yang memulai melewati router dari jaringan lokal akan ditandai di “odd” atau “even” dengan routing mark dan connection mark.
Bagaimanapun ada beberapa kasus jika mungkin anda menemukan IP yg sama terdaftar dalam src-address-list “odd” dan “even”. Masalah ini bisa timbul dengan aplikasi router yang membutuhkan koneksi tetap ke gateway tertentu. Untuk memperbaiki kasus ini tambahkan rules ini ke mangle anda :
add chain=prerouting in-interface=Local connection-state=new nth=1,1,1 src-address-list=!odd action=mark-connection new-connection-mark=even passthrough=yes
Ini akan memastikan ip dengan koneksi baru tidak exist dalam src-address-list “odd”. Anda bisa melakukan yang sama untuk mangle “even” yang tidak termasuk yg sudah ada dalam src-address-list “even”
NAT
/ ip firewall nat
add chain=srcnat connection-mark=odd action=src-nat to-addresses=10.111.0.2 to-ports=0-65535
add chain=srcnat connection-mark=even action=src-nat to-addresses=10.112.0.2 to-ports=0-65535
Semua trafik yang ditandai “odd” di NAT ke IP address 10.111.0.2, dan yang ditandai “even” di NAT ke IP Address 10.113.0.2
Routing
/ ip route
add dst-address=0.0.0.0/0 gateway=10.111.0.1 scope=255 target-scope=10 routing-mark=odd
add dst-address=0.0.0.0/0 gateway=10.112.0.1 scope=255 target-scope=10 routing-mark=even
Untuk semua trafik yang ditandai “odd” (jika sudah benar di NAT ke 10.111.0.2) kita gunakan gateway 10.111.0.1. dan sama juga dengan “even” di route melewati gateway 10.112.0.1
/ ip route
add dst-address=0.0.0.0/0 gateway=10.112.0.1 scope=255 target-scope=10
Trafik tanpa routing mark akan ter arah ke gateway 10.112.0.1
sumber:adamonline.web.id

Tidak ada komentar: