Load Balancing F5 BIG-IP LTM: Konsep Pengaturan dari VLAN sampai Failover
F5 BIG-IP Local Traffic Manager (LTM) berada di depan sekelompok server dan membagikan permintaan klien ke server-server tersebut. Ia memeriksa server mana yang sehat, menjaga permintaan yang berkaitan tetap berada di server yang sama ketika diperlukan, memindahkan enkripsi TLS, dan mengambil alih secara otomatis ketika unit kedua sedang siaga. Artikel ini membahas pengaturan lengkap sesuai urutan yang akan Anda temui: apa yang dilakukan LTM, merencanakan desain, akses pertama dan jaringan, pool dan health monitor, virtual server, metode load balancing dan persistence, SSL offload, high availability, dan pemecahan masalah. Contoh konfigurasinya menunjukkan perintah tmsh untuk setiap langkah.
Yang Anda butuhkan
Anda sebaiknya memahami pengalamatan IP, subnetting, VLAN, serta fungsi router dan switch. Akan membantu jika Anda sudah membaca artikel CCNA dan ide load balancing di artikel FortiGate di situs ini. Untuk berlatih, gunakan unit lab BIG-IP atau edisi virtual dari vendor untuk lab. Kerjakan hanya pada unit yang Anda miliki atau yang Anda berwenang untuk mengonfigurasinya, dan jangan pernah mengubah load balancer produksi tanpa rencana tertulis dan jalur pengembalian.
Ilustrasi
Topik 1: Apa yang dilakukan BIG-IP LTM
Load balancer membuat sekelompok server terlihat seperti satu layanan. Klien terhubung ke satu alamat, dan LTM memutuskan server mana yang menangani setiap permintaan. Ini memberi kapasitas lebih besar, memungkinkan Anda mengeluarkan server untuk pemeliharaan tanpa gangguan layanan, dan menyembunyikan kegagalan server dari pengguna. LTM bekerja di lapisan transport dan aplikasi, sehingga keputusannya bisa memakai detail TCP dan isi HTTP.
Mengapa memakai load balancer
Satu server web memiliki batas jumlah pengguna yang bisa dilayaninya. Menambah server hanya membantu jika ada yang membagikan permintaan di antara mereka. LTM membagi beban, memeriksa setiap server, dan berhenti mengirim lalu lintas ke server yang mati. Pengguna hanya melihat satu alamat, dan tim bisa mengganti server tanpa mengubah alamat itu.
Manajemen lalu lintas lokal dan produk F5 lainnya
LTM menyeimbangkan lalu lintas di dalam pusat data. Global Traffic Manager (GTM, sekarang load balancing berbasis DNS) memilih di antara pusat data. Application Security Manager (ASM, sekarang Advanced WAF) menambahkan fitur web application firewall. Pelajari LTM terlebih dulu, karena objek yang sama, seperti pool dan virtual server, dipakai oleh produk lainnya.
Jalur data
Permintaan tiba di alamat virtual server, melewati profil, dicocokkan dengan sebuah pool, lalu dikirim ke sebuah member. Balasan member kembali melalui BIG-IP, itulah sebabnya BIG-IP harus berada di jalur antara klien dan server, atau menangani lalu lintas balasan dengan SNAT.
Topik 2: Merencanakan desain sebelum mengonfigurasi
Sebagian besar gangguan load balancer berasal dari desain yang tidak pernah dituliskan, bukan dari perangkatnya. Sebelum membuka utilitas konfigurasi, rencanakan jaringan, server, pemeriksaan kesehatan, dan failover.
Gambar konsepnya
Gambar klien, jaringan eksternal, BIG-IP, jaringan internal dengan server web, dan unit siaga. Beri label setiap port dengan VLAN-nya, dan setiap alamat dengan tujuannya: alamat virtual server, self IP, alamat server, dan alamat manajemen. Gambar ini menjadi acuan untuk setiap langkah berikutnya.
Tulis rencana alamat
Catat alamat virtual server yang dihubungi pengguna, self IP untuk setiap VLAN, alamat server, default gateway, dan alamat manajemen. Pisahkan jaringan manajemen dari jaringan lalu lintas. Mengubah alamat di kemudian hari akan mudah jika setiap objek yang bergantung padanya tercantum.
Tentukan cara memeriksa server
Tentukan apa arti server sehat untuk setiap layanan. Server web bisa diperiksa dengan permintaan HTTP ke halaman kesehatan, dan database dengan koneksi TCP. Pemeriksaan yang hanya menguji port bisa menandai aplikasi yang rusak sebagai sehat, jadi uji apa yang sebenarnya dibutuhkan pengguna.
Rencanakan pengembalian
Simpan konfigurasi sebelum perubahan pertama, dan catat cara memulihkannya. Rencanakan jendela pemeliharaan untuk setiap perubahan yang memindahkan lalu lintas aktif, dan beri tahu orang-orang yang bergantung pada layanan itu.
Topik 3: Akses pertama, VLAN, self IP, dan routing
BIG-IP baru memerlukan hostname, DNS, NTP, lisensi, dan jaringan sebelum bisa membawa lalu lintas. Utilitas konfigurasi dan baris perintah sama-sama bisa dipakai. Contoh di sini memakai tmsh, alat baris perintah BIG-IP, karena perintah yang sama bisa disimpan dan diulang.
Hostname, DNS, dan NTP
Beri unit nama lengkap seperti bigip01.example.local. Atur server DNS agar nama bisa diterjemahkan, dan NTP agar log, sertifikat, dan pesan failover memiliki waktu yang benar. Ganti kata sandi administrator default saat login pertama dan buat akun bernama untuk setiap orang.
VLAN dipetakan ke port
VLAN adalah segmen jaringan di BIG-IP. Tetapkan setiap port fisik ke sebuah VLAN, dengan atau tanpa tag VLAN, bergantung pada apa yang diharapkan switch. VLAN eksternal menghadap klien dan VLAN internal menghadap server. Jaga agar kedua jaringan tetap terpisah, karena BIG-IP melakukan routing di antara keduanya.
Self IP
Self IP adalah alamat pada sebuah VLAN yang dipakai BIG-IP untuk lalu lintasnya sendiri, seperti pemeriksaan kesehatan dan routing. Beri setiap VLAN self IP di dalam subnetnya. Atur allow-service ke default hanya jika diperlukan, dan jangan pernah mengizinkan layanan manajemen di VLAN eksternal.
Rute default
Rute default mengirim lalu lintas untuk tujuan yang tidak dikenal ke gateway. Periksa rute dengan ping ke klien dan server. Server yang bisa menjangkau BIG-IP tetapi tidak bisa membalas biasanya kekurangan rute di sisi server, jadi periksa juga default gateway server.
Konfigurasi perangkat: atur hostname, DNS, NTP, VLAN, dan self IP
Beri nama unit, atur DNS dan NTP, masukkan port eksternal dan internal ke dalam VLAN, dan beri setiap VLAN self IP yang dipakai unit untuk lalu lintasnya sendiri. Rute default mengirim lalu lintas internet melalui gateway ISP. Simpan konfigurasi, lalu periksa self IP dan antarmukanya.
# tmsh: hostname, DNS, NTP, VLAN, self IP, dan rute default
tmsh modify sys global-settings hostname bigip01.example.local
tmsh modify sys dns name-servers add { 8.8.8.8 }
tmsh modify sys ntp servers add { pool.ntp.org }
tmsh create net vlan external interfaces add { 1.1 }
tmsh create net vlan internal interfaces add { 1.2 { untagged } }
tmsh create net self 203.0.113.5/24 vlan external allow-service default
tmsh create net self 10.10.10.5/24 vlan internal allow-service default
tmsh create net route default network default gw 203.0.113.1
tmsh save sys config
# Periksa
tmsh list net self
tmsh show net interface
Topik 4: Pool, member, dan health monitor
Pool adalah sekelompok server yang menyediakan layanan yang sama. Pool member adalah satu server dan port di dalam pool. Health monitor memeriksa setiap member dan menandainya up atau down, sehingga BIG-IP tidak pernah mengirim permintaan ke server yang tidak bisa menjawab.
Pool dan member
Tambahkan setiap server dan portnya sebagai member, misalnya 10.10.10.11:80. Member dalam satu pool sebaiknya menjalankan aplikasi dan konten yang sama, karena BIG-IP mengirim setiap permintaan ke member mana pun yang ia pilih. Beri setiap member rasio atau prioritas ketika kapasitas server berbeda.
Monitor HTTP
Monitor HTTP mengirim permintaan, seperti GET /health, dan memastikan balasannya berisi teks yang diharapkan, seperti 200 OK. Monitor yang memeriksa aplikasi sungguhan jauh lebih berguna daripada yang hanya memeriksa apakah port terbuka. Atur interval dan timeout agar server yang gagal dikeluarkan dengan cepat, tetapi tidak secepat sehingga satu balasan lambat sudah mengeluarkannya.
Status member
Member bisa berstatus up, down, disabled, atau forced offline. Disabled membiarkan koneksi yang ada selesai tetapi tidak mengirim koneksi baru, yang berguna sebelum pemeliharaan. Forced offline menghentikan semua lalu lintas sekaligus, termasuk koneksi yang ada. Pilih status dengan sengaja, karena status itu mengubah apa yang dialami pengguna.
Menandai server untuk pemeliharaan
Nonaktifkan member, tunggu sampai koneksinya habis, lakukan perubahan, aktifkan kembali member, lalu periksa bahwa monitor menandainya up. Melakukan ini satu server dalam satu waktu membuat layanan tetap berjalan.
Konfigurasi perangkat: buat health monitor dan pool
Monitor mengirim permintaan ke setiap server dan menandainya up hanya ketika jawabannya cocok. Pool mengelompokkan server, menerapkan monitor ke setiap member, dan memilih metode pembagian beban. Member yang gagal monitor-nya dikeluarkan dari rotasi secara otomatis.
# tmsh: health monitor dan pool dengan dua server web
tmsh create ltm monitor http web_mon defaults-from http send "GET /health HTTP/1.0\r\n\r\n" recv "200 OK"
tmsh create ltm pool web_pool members add { 10.10.10.11:80 10.10.10.12:80 } monitor web_mon load-balancing-mode round-robin
tmsh save sys config
# Periksa
tmsh show ltm pool web_pool members
tmsh list ltm monitor http web_mon
Topik 5: Virtual server, SNAT, dan profil
Virtual server adalah alamat dan port tempat klien terhubung. Ia adalah pintu depan layanan. Ia memiliki alamat dan port tujuan, protokol, pool, profil yang mengatur cara lalu lintas ditangani, serta cara menerjemahkan alamat sumber.
Tujuan, protokol, dan pool
Virtual server untuk layanan web bisa berupa 203.0.113.10:443 dengan TCP, yang mengirim lalu lintas ke web_pool. Klien hanya memakai alamat ini. Pool dan member-nya tersembunyi di baliknya, sehingga tim bisa mengganti server tanpa mengubah alamat yang diketahui pengguna.
Profil
Profil mengatur cara lalu lintas diproses. Profil TCP menyetel koneksi, profil HTTP membaca permintaan sehingga LTM bisa membuat keputusan berdasarkan URL atau header, dan profil SSL sisi klien mengakhiri enkripsi. Gunakan hanya profil yang dibutuhkan layanan, karena setiap profil menambah pemrosesan.
SNAT automap
Tanpa terjemahan sumber, server melihat alamat klien dan membalas langsung ke sana, melewati BIG-IP, dan koneksinya putus. SNAT automap menulis ulang sumber menjadi self IP di VLAN internal, sehingga server membalas melalui BIG-IP. Periksa koneksi dengan show ltm connection untuk memastikan alurnya.
Menguji virtual server
Uji dari klien sungguhan, bukan hanya dari BIG-IP. Periksa status virtual server, lalu lihat pool dan member-nya. Jika virtual server tersedia tetapi pengguna mendapat error, masalahnya biasanya ada pada profil, sertifikat, atau aplikasi di server.
Konfigurasi perangkat: publikasikan pool dengan virtual server
Virtual server adalah alamat yang dihubungi klien. Ia mengirim lalu lintas ke pool, menerapkan profil (TCP, HTTP, dan SSL sisi klien), dan memakai SNAT automap agar server membalas melalui BIG-IP. Periksa koneksi dengan show ltm connection.
# tmsh: virtual server yang mempublikasikan pool di 203.0.113.10:443
tmsh create ltm virtual vs_web destination 203.0.113.10:443 ip-protocol tcp pool web_pool profiles add { tcp http clientssl } source-address-translation { type automap }
tmsh save sys config
# Periksa
tmsh list ltm virtual vs_web
tmsh show ltm virtual vs_web
tmsh show ltm connection
Topik 6: Metode load balancing dan persistence
Metode load balancing memutuskan member mana yang mendapat setiap koneksi baru. Persistence memutuskan kapan klien harus terus kembali ke member yang sama, misalnya ketika server menyimpan sesi login pengguna di memorinya sendiri.
Round robin dan rasio
Round robin memberi setiap member satu koneksi secara bergiliran. Cara ini bekerja baik ketika semua server sama dan permintaannya serupa. Metode rasio memberi server yang lebih kuat bagian yang lebih besar. Metode diatur pada pool, dan Anda bisa menguji perubahan dengan beberapa klien sebelum menerapkannya ke semua pengguna.
Least connections dan fastest
Least connections mengirim setiap permintaan baru ke member dengan koneksi aktif paling sedikit. Cara ini cocok untuk permintaan yang membutuhkan waktu sangat berbeda. Fastest mengirim permintaan ke member yang baru-baru ini paling cepat membalas. Pilih metode yang sesuai dengan pekerjaan server, bukan metode yang opsinya paling banyak.
Persistence
Persistence membuat klien tetap berada di member yang sama untuk jangka waktu tertentu. Cookie persistence menyisipkan nilai di browser yang mengidentifikasi member, dan ini pilihan yang biasa untuk aplikasi web. Persistence berdasarkan alamat sumber memakai IP klien dan lebih lemah, karena banyak pengguna di balik satu alamat semuanya akan masuk ke server yang sama.
Ketika persistence menimbulkan masalah
Catatan persistence yang mengarah ke member yang sudah mati bisa memutus sesi pengguna sampai catatan itu kedaluwarsa. Jaga agar timeout persistence tetap pendek jika memungkinkan, dan buat aplikasi mampu pulih dari sesi yang hilang.
Topik 7: SSL offload dan sertifikat
Mengenkripsi dan mendekripsi TLS memakan waktu prosesor di setiap server. SSL offload memindahkan pekerjaan itu ke BIG-IP. BIG-IP menyimpan sertifikat, mendekripsi lalu lintas klien, dan mengirim HTTP biasa ke server melalui jaringan internal, tempat lalu lintas itu dilindungi oleh desain jaringan.
Cara offload bekerja
Profil SSL sisi klien menyimpan sertifikat dan kunci privat. Sesi TLS klien berakhir di BIG-IP, yang membaca permintaan dan meneruskannya ke member pada port 80. Server kemudian tidak memerlukan sertifikat untuk nama publik, sehingga pembaruan sertifikat menjadi lebih sederhana.
Sertifikat dan kunci
Simpan kunci privat hanya di BIG-IP, dan lindungi akses manajemen yang bisa mengekspornya. Rencanakan pembaruan sertifikat sebelumnya, karena sertifikat yang kedaluwarsa menghentikan layanan bagi setiap pengguna. Gunakan sertifikat yang cocok dengan nama publik di alamat virtual server.
Enkripsi ulang dan kapan memakainya
Jika lalu lintas harus tetap terenkripsi di jaringan internal, BIG-IP bisa membuka sesi TLS baru ke server dengan profil SSL sisi server. Ini membutuhkan pemrosesan lebih banyak, tetapi melindungi lalu lintas di dalam pusat data. Pilih cara ini ketika jaringan internal tidak tepercaya.
Topik 8: High availability dan sync-failover
Dua unit BIG-IP bisa berjalan sebagai pasangan active-standby. Unit siaga memiliki konfigurasi yang sama dan mengambil alih alamat virtual ketika unit aktif gagal. Klien biasanya hanya mengalami gangguan singkat, bukan pemadaman, jika failover diatur dengan benar.
Device group dan config-sync
Device group sync-failover mencantumkan unit yang berbagi konfigurasi. Config-sync menyalin perubahan dari satu unit ke unit lain melalui jaringan khusus. Lakukan perubahan hanya di unit aktif, dan periksa status sync setelahnya, karena perubahan di unit siaga akan tertimpa oleh sinkronisasi berikutnya.
Pemicu failover
Unit siaga mengambil alih ketika unit aktif kehilangan heartbeat-nya, ketika traffic group yang dipantau gagal, atau ketika administrator memaksa failover. Uji setiap pemicu dalam jendela yang sudah direncanakan, dan pastikan alamat mana yang berpindah serta sesi tetap bertahan.
Menguji failover tanpa gangguan
Jalankan failover yang direncanakan pada saat sepi, awasi koneksi dan traffic group, lalu kembalikan (fail back) jika hasilnya tidak sesuai harapan. Failover yang belum pernah diuji adalah risiko, bukan perlindungan.
Konfigurasi perangkat: atur sync-failover active-standby
Kedua unit berbagi konfigurasi melalui alamat config-sync dan alamat mirror di jaringan khusus. Device group menjaga konfigurasi tetap selaras, dan failover memindahkan lalu lintas ke unit siaga ketika unit aktif gagal. Uji failover dalam jendela yang sudah direncanakan.
# tmsh: device group sync-failover untuk pasangan active-standby (jalankan di unit utama)
tmsh modify cm device bigip01.example.local configsync-ip 10.10.20.5 unicast-address { { ip 10.10.20.5 } } mirror-ip 10.10.20.5
tmsh create cm device-group failover-group type sync-failover devices add { bigip01.example.local bigip02.example.local } auto-sync enabled
tmsh run cm config-sync to-group failover-group
# Periksa
tmsh show cm sync-status
tmsh show sys failover
Topik 9: Pemecahan masalah dan pemantauan
Ketika sesuatu rusak, telusuri jalur data secara berurutan: klien, virtual server, profil, pool, member, lalu server. Setiap langkah memiliki perintah atau log yang menunjukkan apakah permintaan sudah sampai sejauh itu.
Mulai dari member pool
Tampilkan member pool untuk melihat server mana yang mati, dan baca hasil monitor. Member yang ditandai down oleh monitor biasanya berarti pemeriksaan kesehatan gagal, bukan bahwa lalu lintas pengguna yang salah. Periksa aplikasi di server sebelum menyalahkan load balancer.
Baca log
Log LTM mencatat perubahan monitor, perubahan status virtual server, dan error konfigurasi. Baca log setelah setiap kegagalan. Log menunjukkan waktu setiap kejadian, yang membantu mencocokkan laporan pengguna dengan perubahan atau pemadaman server.
Tangkap lalu lintas
Packet capture di BIG-IP atau di server menunjukkan apakah permintaan tiba, apa yang dijawab server, dan di mana koneksi berhenti. Tangkap hanya selama yang Anda perlukan, dan filter berdasarkan host dan port, karena capture penuh di unit yang sibuk akan memperlambatnya.
Simpan dan dokumentasikan perbaikannya
Setelah perbaikan, simpan konfigurasi dan tuliskan apa yang gagal, apa yang diubah, dan bagaimana Anda memastikannya. Catatan itu mempersingkat penyelidikan berikutnya, dan menunjukkan kepada tim bahwa perubahan itu sudah diperiksa.
Konfigurasi perangkat: periksa member dan atasi server yang gagal
Ketika pengguna melaporkan error, tampilkan member pool untuk melihat server mana yang mati, lalu baca log LTM untuk hasil monitor. Packet capture di sisi server menunjukkan apakah permintaan sampai ke server dan apa yang dijawabnya. Perbaiki server, atau monitor-nya, lalu periksa lagi sebelum menutup kasus.
# tmsh: periksa member yang mati, lalu lihat log dan tangkap lalu lintas
tmsh show ltm pool web_pool members
tmsh show ltm pool web_pool members detail
tmsh show sys hardware
tail -n 50 /var/log/ltm
tcpdump -ni 0.0:nnn -s0 host 10.10.10.11 and port 80
Praktik di laboratorium
Keterampilan load balancer datang dari praktik, jadi bangun lab kecil dengan tiga jaringan: klien, BIG-IP di tengah, dan dua server web di jaringan internal. Gunakan BIG-IP virtual edition atau unit lab, dan kerjakan langkah-langkah ini secara berurutan.
1. Gambar konsepnya dan tulis rencana alamat untuk jaringan eksternal dan internal.
2. Atur hostname, DNS, dan NTP, lalu buat akun admin bernama.
3. Buat VLAN eksternal dan internal, tambahkan self IP ke masing-masing, lalu tambahkan rute default.
4. Periksa konektivitas dari klien ke self IP eksternal, dan dari BIG-IP ke setiap server web.
5. Buat health monitor HTTP dan pool dengan kedua server web.
6. Buat virtual server di alamat eksternal, dengan SNAT automap, lalu uji dari klien.
7. Matikan salah satu server web, awasi monitor menandainya down, lalu nyalakan lagi dan pastikan ia kembali ke pool.
8. Simpan konfigurasi, buat satu perubahan, lalu pulihkan versi yang tersimpan untuk memastikan pengembalian berfungsi.
Langkah berikutnya
Setelah dasar-dasarnya, berlatihlah merancang monitor dan pool untuk aplikasi sungguhan, lalu pelajari profil SSL dan pembaruan sertifikat, kemudian pengujian high availability. Simpan catatan setiap perubahan pada virtual server dan pool. Sebagian besar gangguan berasal dari perubahan yang tidak dicatat siapa pun, bukan dari satu pengaturan yang salah.
Ringkasan
BIG-IP LTM membagikan permintaan klien ke sebuah pool server yang sehat di belakang satu alamat virtual server. Pengaturan yang baik dimulai dengan gambar konsep dan rencana alamat, lalu hostname, VLAN, self IP, dan rute default, kemudian pool dengan health monitor sungguhan, virtual server dengan SNAT, metode load balancing yang sesuai dengan pekerjaannya, dan secara opsional SSL offload serta pasangan active-standby. Simpan konfigurasi sebelum setiap perubahan, dan lakukan pemecahan masalah sesuai urutan jalur data.