Menggabungkan Koneksi BizNet Dan IndiHome

Salam…
Ide dasar penulisan adalah kebutuhan penambahan koneksi cepat murah dan handal, sebelumnya pedati.net hanya menggunakan satu ISP yaitu IndiHome dari telkom. Dengan berkembangnya jaringan komunikasi antar cabang, dan di setiap cabang tidak selalu tersedia jaringan IndiHome. Pedati.net memutuskan untuk menambah satu jalur internet tambahan menggunakan BizNet dengan kecepatan 10 kali lipat dari kecepatan IndiHome.

 

Topologi Jaringan

ether1 terhubung ke jaringan DialUp Indihome dengan alamat IP 10.9.1.1/24
ether2 terhubung ke jaringan DialUp BizNet dengan alamat IP 10.9.2.1/24
/ip address
add address=10.9.1.1/24 interface=ether1
add address=10.9.2.1/24 interface=ether2
add address=10.9.3.1/24 interface=ether3
add address=10.9.4.1/24 interface=ether4
add address=10.9.5.1/24 interface=ether5
add address=10.9.6.1/24 interface=wlan

Dikarenakan BizNet menggunakan IP Privat maka wajib menggunakan DNS
Primary DNS : 203.142.82.222
Secondary DNS : 203.142.84.222
Dan DNS untuk IndiHome bebas, dalam hal ini menggunakan dns milik google
Primary DNS : 8.8.8.8
Secondary DNS : 8.8.4.4

/ip dns
set allow-remote-requests=yes primary-dns=203.142.82.222 secondary-dns=203.142.84.222

Untuk koneksi client, menggunakan koneksi;
wireless pada wlan dengan range IP client 10.9.6.2 s/d 10.9.6.254 netmask 255.255.255.0
Ehternet 5 pada ether5 dengan range IP client 10.9.5.2 s/d 10.9.5.254 netmask 255.255.255.0
Ehternet 4 pada ether4 dengan range IP client 10.9.4.2 s/d 10.9.4.254 netmask 255.255.255.0
Ehternet 3 pada ether3 dengan range IP client 10.9.3.2 s/d 10.9.3.254 netmask 255.255.255.0

Dimana IP 10.9.x.1 yang dipasangkan pada masing interfaces berfungsi sebagai gateway dan dns server dari client. Dan karena menggunakan DNS dari salah satu isp (BizNet), maka akan ada tambahan mangle.

Untuk memasangkan default route ke masing-masing IP gateway ISP dan agar router meneruskan semua trafik yang tidak terhubung padanya ke gateway tersebut. Maka fitur check-gateway dapat berguna jika salah satu gateway putus, dan koneksi akan dibelokkan ke gateway lainnya.

/ip route
add dst-address=0.0.0.0/0 gateway=BizNet distance=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=IndiHome distance=2 check-gateway=ping

Agar pc client dapat melakukan koneksi ke internet, kita juga harus merubah IP privat client ke IP publik yang ada di interface publik kita yaitu BizNet dan IndiHome.

/ip firewall nat
add action=masquerade chain=srcnat out-interface=BizNet
add action=masquerade chain=srcnat out-interface=IndiHome
add action=masquerade chain=srcnat

Sampai langkah ini, router dan pc client sudah dapat melakukan koneksi internet. Lakukan ping baik dari router ataupun pc client ke internet.

Pengaturan Mangle

Loadbalancing ini menggunakan fitur yang disebut PCC (Per Connection Classifier). Dengan PCC bisa mengelompokan trafik koneksi yang melalui atau keluar masuk router menjadi beberapa kelompok. Pengelompokan ini bisa dibedakan berdasarkan src-address, dst-address, src-port dan atau dst-port.
Router akan mengingat-ingat jalur gateway yang dilewati diawal trafik koneksi, sehingga pada paket-paket selanjutnya yang masih berkaitan dengan koneksi awalnya akan dilewatkan pada jalur gateway yang sama juga.
Kelebihan dari PCC ini yang menjawab banyaknya keluhan sering putusnya koneksi pada teknik loadbalancing lainnya sebelum adanya PCC karena perpindahan gateway.
Sebelum membuat mangle loadbalance, untuk mencegah terjadinya loop routing pada trafik, maka semua trafik client yang menuju network yang terhubung langsung dengan router, harus di bypass dari loadbalancing. Dapat dibuat daftar IP yang masih dalam satu network router dan memasang mangle pertama kali sebagai berikut

/ip firewall address-list
add address=10.9.1.0/24 list=lokal
add address=10.9.2.0/24 list=lokal
add address=10.9.3.0/24 list=lokal
add address=10.9.4.0/24 list=lokal
add address=10.9.5.0/24 list=lokal
add address=10.9.6.0/24 list=lokal
/ip firewall mangle
add action=accept chain=prerouting dst-address-list=lokal in-interface=wlan comment=”Trafik wlan”
add action=accept chain=prerouting dst-address-list=lokal in-interface=ether3 comment=”Trafik Ether 3″
add action=accept chain=prerouting dst-address-list=lokal in-interface=ether4 comment=”Trafik Ether 4″
add action=accept chain=prerouting dst-address-list=lokal in-interface=ether5 comment=”Trafik Ether 5″
add action=accept chain=output dst-address-list=lokal
Pada kasus tertentu, trafik pertama bisa berasal dari Internet, seperti penggunaan remote winbox atau telnet dari internet dan sebagainya, oleh karena itu kita juga memerlukan mark-connection untuk menandai trafik tersebut agar trafik baliknya juga bisa melewati interface dimana trafik itu masuk
/ip firewall mangle
add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=BizNet new-connection-mark=con-from-BizNet passthrough=yes comment=”Trafik dari BizNet”

add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=IndiHome new-connection-mark=con-from-IndiHome passthrough=yes comment=”Trafik dari IndiHome”

Umumnya, sebuah ISP akan membatasi akses DNS servernya dari IP yang hanya dikenalnya, jadi jika anda menggunakan DNS dari salah satu ISP anda, anda harus menambahkan mangle agar trafik DNS tersebut melalui gateway ISP yang bersangkutan bukan melalui gateway ISP lainnya. Disini kami berikan mangle DNS ISP1 yang melalui gateway ISP1. Jika anda menggunakan publik DNS independent, seperti opendns, anda tidak memerlukan mangle dibawah ini.
/ip firewall mangle
add action=mark-connection chain=output dst-address=203.142.82.222 dst-port=53 new-connection-mark=dns-BizNet passthrough=yes protocol=tcp comment=”Trafik DNS BizNet”

add action=mark-connection chain=output dst-address=203.142.82.222 dst-port=53 new-connection-mark=dns-BizNet passthrough=yes protocol=udp

add action=mark-connection chain=output dst-address=203.142.84.222 dst-port=53 new-connection-mark=dns-BizNet passthrough=yes protocol=tcp comment=”Trafik DNS BizNet”
add action=mark-connection chain=output dst-address=203.142.84.222 dst-port=53 new-connection-mark=dns-BizNet passthrough=yes protocol=udp

add action=mark-routing chain=output connection-mark=dns-BizNet new-routing-mark=route-to-BizNet passthrough=no
add action=mark-connection chain=output dst-address=8.8.8.8 dst-port=53 new-connection-mark=dns-IndiHome passthrough=yes protocol=tcp comment=”Trafik DNS IndiHome”

add action=mark-connection chain=output dst-address=8.8.8.8 dst-port=53 new-connection-mark=dns-IndiHome passthrough=yes protocol=udp

add action=mark-connection chain=output dst-address=8.8.4.4 dst-port=53 new-connection-mark=dns-IndiHome passthrough=yes protocol=tcp comment=”Trafik DNS IndiHome”

add action=mark-connection chain=output dst-address=8.8.4.4 dst-port=53 new-connection-mark=dns passthrough=yes protocol=udp

add action=mark-routing chain=output connection-mark=dns-IndiHome new-routing-mark=route-to-IndiHome passthrough=no
Karena menggunakan webproxy pada router, maka trafik yang perlu loadbalance ada 2 jenis.
Trafik dari client menuju internet (non HTTP),
Trafik dari webproxy menuju internet.
Untuk lebih terstruktur dan mudah dalam pembacaannya, maka digunakan custom-chain sebagai berikut :
/ip firewall mangle
add action=jump chain=prerouting comment=”lompat ke client-lb” connection-mark=no-mark in-interface=wlan jump-target=client-lb

add action=jump chain=prerouting comment=”lompat ke client-lb” connection-mark=no-mark in-interface=ether5 jump-target=client-lb

add action=jump chain=prerouting comment=”lompat ke client-lb” connection-mark=no-mark in-interface=ether4 jump-target=client-lb

add action=jump chain=prerouting comment=”lompat ke client-lb” connection-mark=no-mark in-interface=ether3 jump-target=client-lb

add action=jump chain=output comment=”lompat ke lb-proxy” connection-mark=no-mark out-interface=!wlan jump-target=lb-proxy

add action=jump chain=output comment=”lompat ke lb-proxy” connection-mark=no-mark out-interface=!ether5 jump-target=lb-proxy

add action=jump chain=output comment=”lompat ke lb-proxy” connection-mark=no-mark out-interface=!ether4 jump-target=lb-proxy

add action=jump chain=output comment=”lompat ke lb-proxy” connection-mark=no-mark out-interface=!ether3 jump-target=lb-proxy

Untuk kasus diatas, pada loadbalancing client dan webproxy menggunakan parameter pemisahan trafik pcc yang sama, yaitu both-address, sehingga router akan mengingat-ingat berdasarkan src-address dan dst-address dari sebuah koneksi. Karena trafik ISP yang berbeda (10Mbps dan 100Mbps). Beban trafiknya menjadi 3 bagian. 2 bagian pertama akan melewati gateway BizNet, dan 1 bagian terakhir akan melewati gateway IndiHome.
Jika masing-masing trafik dari client dan proxy sudah ditandai, langkah berikutnya tinggal membuat mangle mark-route yang akan digunakan dalam proses routing nantinya
/ip firewall mangle
add action=mark-connection chain=client-lb dst-address-type=!local new-connection-mark=to-BizNet passthrough=yes per-connection-classifier=both-addresses:3/0 comment=”Awal loadbalancing klien”
add action=mark-connection chain=client-lb dst-address-type=!local new-connection-mark=to-BizNet passthrough=yes per-connection-classifier=both-addresses:3/1
add action=mark-connection chain=client-lb dst-address-type=!local new-connection-mark=to-IndiHome passthrough=yes per-connection-classifier=both-addresses:3/2
add action=return chain=client-lb comment=”Akhir dari loadbalancing”
/ip firewall mangle
add action=mark-connection chain=lb-proxy dst-address-type=!local new-connection-mark=con-from-BizNet passthrough=yes per-connection-classifier=both-addresses:3/0 comment=”Awal load balancing proxy”
add action=mark-connection chain=lb-proxy dst-address-type=!local new-connection-mark=con-from-BizNet passthrough=yes per-connection-classifier=both-addresses:3/1
add action=mark-connection chain=lb-proxy dst-address-type=!local new-connection-mark=con-from-IndiHome passthrough=yes per-connection-classifier=both-addresses:3/2
add action=return chain=lb-proxy comment=”Akhir dari loadbalancing”
/ip firewall mangle
add action=jump chain=prerouting comment=”marking route client” connection-mark=!no-mark in-interface=wlan jump-target=route-client
add action=jump chain=prerouting comment=”marking route client” connection-mark=!no-mark in-interface=ether5 jump-target=route-client
add action=jump chain=prerouting comment=”marking route client” connection-mark=!no-mark in-interface=ether4 jump-target=route-client
add action=jump chain=prerouting comment=”marking route client” connection-mark=!no-mark in-interface=ether3 jump-target=route-client
add action=mark-routing chain=route-client connection-mark=to-BizNet new-routing-mark=route-to-BizNet passthrough=no
add action=mark-routing chain=route-client connection-mark=to-IndiHome new-routing-mark=route-to-IndiHome passthrough=no
add action=mark-routing chain=route-client connection-mark=con-from-BizNet new-routing-mark=route-to-BizNet passthrough=no
add action=mark-routing chain=route-client connection-mark=con-from-IndiHome new-routing-mark=route-to-IndiHome passthrough=no
add action=return chain=route-client disabled=no
/ip firewall mangle
add action=mark-routing chain=output comment=”marking route proxy” connection-mark=con-from-BizNet new-routing-mark=route-to-BizNet out-interface=!wlan passthrough=no

add action=mark-routing chain=output connection-mark=con-from-IndiHome new-routing-mark=route-to-IndiHome out-interface=!wlan passthrough=no

add action=mark-routing chain=output comment=”marking route proxy” connection-mark=con-from-BizNet new-routing-mark=route-to-BizNet out-interface=!ether5 passthrough=no

add action=mark-routing chain=output connection-mark=con-from-IndiHome new-routing-mark=route-to-IndiHome out-interface=!ether5 passthrough=no

add action=mark-routing chain=output comment=”marking route proxy” connection-mark=con-from-BizNet new-routing-mark=route-to-BizNet out-interface=!ether4 passthrough=no

add action=mark-routing chain=output connection-mark=con-from-IndiHome new-routing-mark=route-to-IndiHome out-interface=!ether4 passthrough=no

add action=mark-routing chain=output comment=”marking route proxy” connection-mark=con-from-BizNet new-routing-mark=route-to-BizNet out-interface=!ether3 passthrough=no

add action=mark-routing chain=output connection-mark=con-from-IndiHome new-routing-mark=route-to-IndiHome out-interface=!ether3 passthrough=no

Pengaturan Route
Pengaturan mangle diatas tidak akan berguna jika anda belum membuat routing berdasar mark-route yang sudah kita buat. Disini kita juga akan membuat routing backup, sehingga apabila sebuah gateway terputus, maka semua koneksi akan melewati gateway yang masing terhubung

/ip route
add check-gateway=ping dst-address=0.0.0.0/0 gateway=BizNet routing-mark=route-to-BizNet distance=1
add check-gateway=ping dst-address=0.0.0.0/0 gateway=IndiHome routing-mark=route-to-BizNet distance=2
add check-gateway=ping dst-address=0.0.0.0/0 gateway=IndiHome routing-mark=route-to-IndiHome distance=1
add check-gateway=ping dst-address=0.0.0.0/0 gateway=BizNet routing-mark=route-to-IndiHome distance=2
add dst-address=0.0.0.0/0 gateway=BizNet distance=1
add dst-address=0.0.0.0/0 gateway=BizNet distance=1

referensi : Mikrotik

Download Script

Tinggalkan Balasan