Saturday, November 25, 2017

Load Balance Metode ECMP

Seven - Load balance dengan metode ECMP (Equal Cost Multi-Path) merupakan improvisasi dari metode round robin load balance.  Load balance sendiri merupakan teknik untuk menggabungkan koneksi internet lebih dari satu. Contoh topologi : 




Saya akan mencoba membahas load balance ECMP dengan 2 line koneksi internet. Setting awal sama seperti kita setting router agar router dan client dibawah router bisa terkoneksi ke internet. Karena ada 2 line koneksi internet, maka akan ada 2 rule NAT masquerade. 




Setelah setting standart koneksi ke internet selesai, selanjutnya kita bisa mulai setting Load balance ECMP. Caranya cukup mudah, kita tinggal menambahkan rule default gateway dengan dst-address = 0.0.0.0 dan gateway=ISP A,ISP B




Ini adalah tipikal ECMP (Equal Cost Multipath) gateway dengan check-gateway. ECMP merupakan "persistent per-connection load balancing" atau "per-src-dst-address combination load balancing". Begitu salah satu gateway unreachable atau terputus, check-gateway akan menonaktifkan gateway tersebut dan menggunakan gateway yang masih aktif, sehingga kita bisa mendapatkan efek "failover". 

Jika kita memiliki line koneksi internet dengan kecepatan bandwidth yang berbeda, kita bisa membuat perbandingan untuk membagi beban. Misal kita punya bandiwdth ISP A: 2 MBps dan ISP B: 4 MBps. Jika dibuat perbandingan, maka menjadi 1:2.




Dengan adanya lebih dari satu gateway, terkadang menimbulkan masalah baru pada router. Yaitu ke gateway mana router akan terkoneksi. Contoh kasus adalah ketika ada paket masuk ke router (incoming) yang berasal dari luar (Internet), trafik respon dari router (outgoing) akan terkena loadbalance juga. Sehingga paket respon untuk request yang diterima dari interface "Eth 1 - ISP A", bisa jadi dikirim melalui interface "Eth 2 - ISP B". Untuk menghindari hal tersebut, kita perlu membuat aturan routing agar koneksi outgoing router tetap melalui interface yang sama dengan interface trafik incomingnya.


/ip firewall mangle
add chain=input in-interface=Eth 1 - ISP A action=mark-connection new-connection-mark=ISP-A_conn
add chain=input in-interface=Eth 2 - ISP B action=mark-connection new-connection-mark=ISP-B_conn
add chain=output connection-mark=ISP-A_conn action=mark-routing new-routing-mark=ke_ISP-A
add chain=output connection-mark=ISP-B_conn action=mark-routing new-routing-mark=ke_ISP-B 
/ip route
add dst-address=0.0.0.0/0 gateway=10.9.8.1 routing-mark=ke_ISP-A
add dst-address=0.0.0.0/0 gateway=172.16.15.1 routing-mark=ke_ISP-B


Known Issues


Masalah DNS
Permasalahan yang sering timbul adalah ketika kita melakukan setting DNS dengan DNS dari salah satu ISP. Kemungkinan DNS dari salah satu ISP ada setting khusus dimana hanya mengijinkan koneksi dari jaringan ISP itu saja. Maka ketika koneksi ISP tersebut down, koneksi DNS melalui ISP kedua tidak dapat berjalan. Untuk mengatasi hal tersebut, kita bisa menggunakan open DNS, seperti DNS publik Google 8.8.8.8.

Routing table flushing
Setiap saat ketika sesuatu memicu flush tabel routing, maka cache ECMP juga akan di flush. Koneksi akan diarahkan ke gateway sekali lagi dan mungkin atau mungkin juga tidak diarahkan pada gateway yang sama. (Jika 2 gateway ada kemungkinan 50% trafik akan mulai mengalir melalui gateway lain).

Jika Anda memiliki jaringan yang di routing sepenuhnya (ip address klien dapat diarahkan melalui semua gateway yang ada), perubahan gateway tidak akan berdampak buruk, namun jika Anda menggunakan masquerade, perubahan gateway akan menyebabkan perubahan alamat dan koneksi sumber paket dan koneksi akan di drop.

Flush tabel routing dapat disebabkan oleh 2 hal:
1) perubahan tabel routing (pembaruan protocol routing dinamis, perubahan oleh pengguna)
2) setiap 10 menit tabel routing di flush untuk alasan keamanan (untuk menghindari kemungkinan serangan DoS)

Jadi, meski Anda tidak melakukan perubahan tabel routing, koneksi bisa beralih ke gateway lain setiap 10 menit

Referensi:
https://wiki.mikrotik.com/wiki/ECMP_load_balancing_with_masquerade
http://www.mikrotik.co.id/artikel_lihat.php?id=76

Artikel Terbaru

Mohon gunakan bahasa yang sopan dan santun. Terimakasih
EmoticonEmoticon