VMware NSX merupakan software network virtualization dan security platform dari VMware. Salah satu fitur yang ada di NSX adalah load balancer, dan sesuai namanya, dapat digunakan sebagai load balancer atau gateway untuk membagi traffic dari beberapa VM yang ada di environment VMware Anda. Hal ini cukup penting untuk menjaga high availability dari layanan Anda.
Load balancer yang terdapat di NSX memiliki cukup banyak fitur diantaranya :
- Support TCP seperti HTTP, HTTPS, FTP, dan lain-lain.
- Support UDP
- Support beberapa algoritma load balancer : round-robin, least connection, source IP hash, URI
- Support multiple health check : TCP, HTTP, HTTPS termasuk content inspection
- Support connection throttling : max connection dan connections/sec
- Layer 7 manipulation seperti URL block, URL rewrite, content rewrite
- SSL offload / SSL termination
- L4/L7 transparent mode
- Throughput up to 9 Gbps dan concurrent connection up to 1 million
Dari sisi deployment, NSX Edge dapat menggunakan mode one-arm maupun two-arm. Di tutorial kali ini, RouteCloud akan menjelaskan cara konfigurasi load balancer untuk 2 buah VM website dengan SSL-Offload. Dengan SSL-offload, user dapat mengakses website menggunakan https, dan proses enkripsi SSL akan dihandle oleh NSX Edge. Di bawah ini adalah topologi yang akan diimplementasikan :
Dari topologi tersebut, NSX Edge memiliki 2 buah interface, 1 interface langsung yang terhubung ke internet (Public IP) dan 1 internal network (Web Tier). Load Balancer akan listening di IP Public 103.83.102.22 port 443 (https), dan traffic akan dibagi ke 2 buah VM di network web tier. Karena kita akan menerapkan SSL-Offload, maka NSX Edge akan memonitor port 80 saja di 2 buah VM tersebut.
Oke kita langsung saja masuk ke bagian konfigurasi LB NSX.
Step 1. Import SSL Certificate
Jika kamu sudah pernah import SSL Certificate di NSX sebelumnya silahkan skip langkah ini, namun jika belum, maka kamu harus import terlebih dahulu di menu Settings > Certificates > Add Certificate
Pastikan certificate yang kamu import adalah certificate yang valid ya. Untuk informasi lebih detail mengenai import certificate kamu bisa refer ke link ini : https://docs.vmware.com/en/VMware-NSX-for-vSphere/6.4/com.vmware.nsx.admin.doc/GUID-19D3A4FD-DF17-43A3-9343-25EE28273BC6.html
Step 2. Create Application Profiles
Application Profile menentukan behavior LB sesuai traffic yang masuk. Untuk membuat application profile https, bisa via Manage > Load Balancer > Application Profiles > Add
Di pilihan dropdown Type, pastikan pilih HTTPS. Kemudian di bagian Virtual Server Certificates, centang “Configure Service Certificate” dan pilih SSL certificate yang sebelumnya sudah diimport.
Step 3. Add Pools
Pool merupakan kumpulan server / VM yang menjadi backend atau tujuan traffic yang akan didistribusikan dari Load Balancer. Untuk menambahkan Pools melalui menu Pools > Add
- Di bagian Algorithm, kamu bisa memilih salah satu algoritma berikut : ROUND-ROBIN, IP-HASH, LEASTCONN, URI, HTTPHEADER, dan URL. Disini saya akan memilih ROUND-ROBIN agar trafficnya ke pool member akan terdistribusi merata.
- Monitors : pilih default_http_monitor. Service monitor menentukan parameter health check load balancer terhadap pool member. NSX Edge sudah menyediakan beberapa template service monitor, salah satunya untuk monitor http service.
- Members : Klik tombol Add untuk menambahkan VM yang akan menjadi backend. Contohnya seperti di bawah ini.
Step 4. Create Virtual Servers
Virtual Servers merupakan konfigurasi load balancer yang akan listening sesuai dengan profile yang kita buat sebelumnya. Klik tombol Add di menu Virtual Servers
- Application Profile : Pilih application profile yang kita buat di step 2
- IP Address : Masukkan IP yang akan listening sebegai Load Balancer. Disini kita masukkan IP Public di NSX
- Protocol : HTTPS
- Port : 443
- Default Pool : pilih Pool yang dibuat di langkah 3.
Note : Untuk pilihan “Enable Acceleration” jangan dicentang, karena jika di enable maka LB akan beroperasi di Layer 4 dan SSL tidak diterminate / dihandle oleh NSX.
THAT’S IT, sekarang kita akan bisa mengakses Website kita menggunakan https melalui IP Public atau hostname yang sudah dikonfigurasi.
Optional. Redirect http to https
Jika kita sudah bisa menjalankan website melalui https, ada baiknya kita “paksa” user untuk mengakses website versi https daripada http biasa. Di NSX, kita bisa melakukan redirection dari http ke https dengan cara membuat Application Rules berikut :
- Klik menu Application Rules, klik Add
- Masukkan script berikut di kolom script, untuk nama silahkan input sesuai keinginan.
1redirect scheme https if !{ ssl_fc } - Aktifkan Application Rules di menu Virtual Servers > Edit Virtual Servers > Advanced > Add (pilih Application Rules yang sebelumnya dibuat).
Komentar