Load Balancing Persistent
May 13, 2008 in Routing | No comments 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:
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=markconnection new-connection-mark=odd passthrough=yes add chain=prerouting src-address-list=odd in-interface=Local action=markrouting 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=markconnection new-connection-mark=even passthrough=yes add chain=prerouting src-address-list=even in-interface=Local action=markrouting 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=markrouting 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=markrouting 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 srcaddress-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 srcaddress-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
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