Jumat, 18 Oktober 2019

Konfigurasi Load Balancing dengan HAProxy di Debian 8.11

Assalamualaikum wr. wb.

Load Balancing adalah teknik untuk membagi beban (load) ke dalam beberapa jalur atau link. Tujuan dari load balance ini agar tidak ada link yang mendapat beban yang lebih besar dari pada link lainnya. Diharapkan dengan membagi beban ke dalam beberapa link tersebut, maka akan tercapai keseimbangan (balance) pada link-link tersebut.

Load Balancing juga memiliki beberapa algoritma dalam membagi beban seperti :
     1. Roundrobin
         Round robin merupakan pilihan default dan algoritma ini memilih server secara bergantian berurutan sehingga cenderung balance ke semua server yang ada di Backend.
     2. Leastconn
         Memilih server berdasarkan jumlah koneksi yang paling sedikit. Ini direkomendasikan untuk session yang lama. Namun server di Backend yang sama juga akan dirotasi pemilihannya seperti round robin.
     3. Source
         Memilih server mana berdasarkan source IP (Alamat IP Pengguna) yang di hash. Hal ini untuk memastikan pengguna tersebut mendapatkan server yang sama.
     4. Sticky Session
         Beberapa aplikasi membutuhkan penggunanya untuk terkoneksi / terhubung pada Backend server yang sama. Untuk keperluan persisten ini dibutuhkan yang namanya Sticky Session dengan parameter appsession pada Backend yang membutuhkannya.

Load balancing umumnya dikelompokkan dalam dua kategori : Layer 4 dan Layer 7, Layer 4 load balance bertindak pada data di network TCP (IP, TCP, FTP,UDP). Layer 7 load balance mendistribusikan permintaan dari client berdasarkan data yang ditemukan pada layer Application seperti HTTP. Maka dari itu sangat penting untuk mengerti, apa yang sebenarnya dibutuhkan jaringan sebelum membuat keputusan melakukan konfigurasi load balancer.

Disini untuk konfigurasi menggunakan Roundrobin.

TOPOLOGI :

Berikut langkah-langkah konfigurasinya :


Konfigurasi pada Web Server 1

Pada awal kita pastikan jaringannya menggunakan inet(internal network), kalau sudah tinggal jalankan saja servernya.


Kalau sudah kita perlu mengkonfigurasi interfacenya terlebih dahulu, nano /etc/network/interface.


Selanjutnya tinggal restart saja dan coba ping apakah sudah berhasil mengkonfigurasi interfacenya.


Disini untuk web servernya menggunakan Nginx, apa itu Nginx ? Nginx (engine x) adalah server HTTP dan Proxy dengan kode sumber terbuka yang bisa juga berfungsi sebagai proxy IMAP/POP3. Nginx juga memiliki fitur seperti reverse proxy multiple protocols (HTTP, Memcached, PHP‑FPM, SCGI, uwsgi), Stream HTTP video (FLV, HDS, HLS, MP4) serta HTTP/2 gateway.


Disini disuruh masukan CD DVD Binary-1.


Lalu masukan juga CD DVD Binary-2nya.


Dan coba kita jalankan/aktifkan web server Nginxnya dengan perintah service nginx restart, lalu untuk melihat apakah sudah aktif apa belum bisa cek dengan perintah service nginx status, dan juga kita bisa lihat dengan perintah netstat -tupln.


Selanjutnya kita bisa edit html web servernya sesuai keinginan anda, dengan perintah
nano /var/www/html/index.nginx-debian.html.


Kalau sudah langsung restart saja.


Konfigurasi pada web server 1 sudah selesai, dan selanjutnya mengkonfigurasi pada web server 2.

Konfigurasi pada Web Server 2

Sama seperti diatas konfigurasinya, hanya beda IP Addressnya saja.


Setting interfacenya.


Lalu restart dan tes dengan ping apakah sudah berhasil konfigurasi interfacenya.


Selanjutnya sama seperti konfigurasi pada web server 1, kita install Nginx-nya.


Masukan CD DVD Binary-1.


Masukan CD DVD Binary 2.


Lalu kalau sudah kita aktifkan/jalankan nginxnya, dan cek apakah sudah aktif seperti gambar dibawah ini.
1.
2.

Selanjutnya kita bisa juga edit html web servernya, dengan perintah
nano /var/www/html/index.nginx-debian.html.


Lalu kita restart web server nginx-nya.


Konfigurasi pada web server 2 sudah selesai, selanjutnya kita konfigurasi pada server utamanya sebagai load balancernya.

Konfigurasi pada RouterDebian (LoadBalancer)

Kita perlu menyetting jaringannya dengan menggunakan 2 interface yaitu bridge dan internal network, kalau sudah lansung jalankan saja servernya.


Awal setting interfacenya terlebih dahulu, disini eth0=bridge eth1=internalnetwork.


Lalu kita restart saja dan tes ping apakah sudah berhasil.


Selanjutnya akan menginstall HAProxy, apa itu HAProxy ? HAProxy adalah sebuah aplikasi opensource berbasis Linux yang biasa digunakan sebagai load balancing trafic jaringan. Load balancing adalah teknik untuk mendistribusikan beban trafik pada dua atau lebih jalur koneksi secara seimbang agar trafik dapat berjalan optimal, memaksimalkan throughput, memperkecil waktu tanggap dan menghindari overload pada salah satu jalur koneksi. Teknik balancing dapat menggunakan beberapa cara yang berbeda, tergantung kekompleksan yang ada.


Masuk ke konfugurasi default/haproxy dengan perintah nano /etc/default/haproxy lalu hilangkan tanda # pada config
CONFIG="/etc/haproxy/haproxy.cfg"


Kemudian masuk ke konfigurasi haproxy.cfg, buat konfigurasi frontend dan backend, bind *:80 = mengarahkan semua akses ip dari port 80, mode http = protocol yang akan diarahkan hanya http, default_backend footer = lanjutan dari konfigurasi frontend header ke konfigurasi backend footer, balance roundrobin = salah satu algoritma load balancing, server = akses dari load balancer akan di arahkan di salah satu ip server.


Selanjutnya kita restart.


Konfigurasi HAProxy sudah pada server utamanya, selanjutnya coba kita pengujiannya.

Pengujian

web server 1 coba tes ping ke serverutama dan web server 2.

Web server 2 coba tes ping ke serverutama dan web server 1.

Pada serverutama coba tes ping ke web server 1 dan web server 2.

Dan coba buka web browser untuk menguji, ketik ip address pada router yang mengarah ke internet yaitu 192.168.100.205. 

Kemudian coba stop/berhentikan nginx pada web server 1, apakah web server 2akan meng-backup atau tidak.

~~~SELESAI~~~

Semoga bermanfaat dan bisa dimengerti hehe.

Wassalamualaikum wr. wb.


Sabtu, 12 Oktober 2019

Memisahkan Bandwith Local dan Internasional pada Queue Truee


Assalamualaikum Wr.Wb

Di dalam mikrotik , banyak sekali muncul pertanyaan bagaimana cara melakukan pemisahan queue untuk trafik internet internasional dan trafik ke internet Indonesia (Lokal dan Internasional)

Pada kesempatan kali ini saya akan mencoba memberi materi untuk memisahkan bandwith untuk trafik internet internasional dan trafik ke internet indonesia ( lokal ). 

Langkah - langkah untuk memulai konfigurasi :

Kalau sudah kita buat Ip Address dan setting internet seperti biasanya.




Sebelumnya kita download terlebih dahulu nice.rsc , apa itu nice.rsc ? nice.rsc adalah suatu text yang berbentuk address list atau ip address yang ada di indonesia. Kita download dengan ketik perintah
 " tool fetch address=ixp.mikrotik.co.id src-path=/download/nice.rsc mode=http;

Kemudian setelah selesai di download , kita import file tersebut.


Kemudian kita buat rule pada ip firewall mangle , pertama kita buat dulu rule untuk local dengan menggunakan chain forward dan dst-address-list menggunakan nice yang baru saja kita download tadi , dan action yang digunakan adalah mark-connection dengan namanya adalah local dan passthrought yes.

1.
 2.
 3.



Kemudian setelah selesai membuat rule untuk connection local , kita buat packet untuk si local yang baru saja kita buat , dengan menggunakan action mark-packet dan connection mark nya arahkan ke rule si local 
Disini kita menggunakan dua rule packet yaitu download dan upload , untuk yang download kita arahkan in.interface nya arahkan pada wlan1 ( koneksi internet ) dan untuk yang upload , arahkan in.interface nya arahkan pada ether2 ( LAN ).

1.
 2.



Kemudian kita buat rule yang mengarah pada koneksi ke internasional , sama seperti rule pada lokal , bedanya disini internasional tidak memakai dst-address-list , karena nice.rsc hanya terdaftar pada
ip address lokal
Action yang digunakan yaitu mark-connection dan kita tulis dengan internasional.


1.
 2.



 Kemudian kita buat packet yang mengarah pada koneksi marknya internasional , sama seperti lokal pada sebelumnya , kita membuat packet untuk memisahkan bandwith upload dan bandwith download 
Kita buat dua rule untuk memisahkan bandwith lokal dan bandwith download , bandwith download kita arahkan in.interface nya pada wlan1 ( koneksi internet ) dan bandwith upload kita arahkan in.interface nya pada ether2 ( lan ) yang mengarah pada client.

 1.
 2.



Rule yang kita buat akan terdaftar pada ip firewall mangle , kita pisahkan antara lokal dan internasional , dengan ini kita mudah untuk melihat packet yang jalan pada rule internasional dan lokal.





Setelah membuat rule pada firewall mangle , kita masuk pada Queue dan sebelumnya kita buat terlebih dahulu queue type nya , kita bedakan antara download dan upload , kita membuat dengan kind nya pcq.
PCQ Download , classifier yang digunakan yaitu dst.address. 
PCQ Upload , classifier yang digunakan yaitu src.address.





 Kemudian kita masuk pada Queue Tree , kita tambahkan rule pada queue tree , tambahkan rule untuk download lokal dan upload lokal, untuk ngebandwith sesuai keinganan saja.

Packet Marks nya kita masukkan rule packet yang tadi kita buat di firewall mangle.
Queue Type nya kita masukkan type queue yang baru saja kita buat pada queue type.


Buat untuk si local terlebih dahulu dahulu.

Kedua buat untuk si internasionalnya.


Pengujian pada speedtest.



Disini kita coba si local-download terlebih dahulu.



Kalau sudah kita liat si local-uploadnya.

Dan kita liat internasional-downloadnya, dengan memakai server luar.

Coba kita liat internasional-uploadnya.


Intinya jika kita menggunakan speedtest menggunakan server internasional , maka queue type yang internasionalnya akan berjalan download dan uploadnya juga.
Jika kita speedtest menggunakan server indonesia, maka queue type yang lokal nya akan berjalan download dan uploadnya juga.

Sekian terimakasih, semoga dapat dimegerti.

Wassalamualaikum wr. wb.