VMware NSX untuk yang terkecil. Bagian 5. Mengkonfigurasi penyeimbang beban



Bagian Satu Pendahuluan
Bagian Dua Konfigurasikan Firewall dan Aturan NAT
Bagian tiga. Pengaturan DHCP
Bagian Empat Pengaturan rute

Terakhir kali kita berbicara tentang kemampuan NSX Edge dalam hal perutean statis dan dinamis, dan hari ini kita akan berurusan dengan penyeimbang.

Sebelum melanjutkan dengan pengaturan, saya ingin mengingat secara singkat jenis utama penyeimbangan.

Teori


Semua solusi penyeimbangan payload saat ini paling sering dibagi menjadi dua kategori: menyeimbangkan pada level keempat (transportasi) dan ketujuh (diterapkan) dari model OSI . Model OSI bukan titik referensi terbaik saat menjelaskan metode penyeimbangan. Misalnya, jika penyeimbang L4 juga mendukung penghentian TLS, apakah ini kemudian menjadi penyeimbang L7? Tapi begitulah.

  • Penyeimbang L4 adalah yang paling sering berdiri di antara klien dan set backend proxy tengah yang tersedia, yang mengakhiri koneksi TCP (yaitu, merespons secara independen terhadap SYN), memilih backend dan memulai sesi TCP baru ke arahnya, mengirimkan SYN sendiri. Jenis ini adalah salah satu dasar, opsi lain dimungkinkan.
  • L7 balancer mendistribusikan lalu lintas ke backend yang tersedia "lebih canggih" daripada L4 balancer. Dia dapat memutuskan backend berdasarkan, misalnya, isi pesan HTTP (URL, cookie, dll.).

Terlepas dari jenisnya, penyeimbang dapat mendukung fungsi-fungsi berikut:

  • Penemuan layanan adalah proses menentukan set backend yang tersedia (Static, DNS, Consul, Etcd, dll.).
  • Memeriksa kesehatan backend yang terdeteksi ("ping" aktif backend menggunakan permintaan HTTP, deteksi pasif masalah dalam koneksi TCP, keberadaan beberapa 503 kode HTTP dalam jawaban dalam satu baris, dll.).
  • Menyeimbangkan sendiri (round robin, seleksi acak, sumber IP hash, URI).
  • Pengakhiran TLS dan verifikasi sertifikat.
  • Opsi terkait keamanan (otentikasi, pencegahan serangan DoS, batas kecepatan) dan banyak lagi.

NSX Edge menawarkan dukungan untuk dua mode penempatan penyeimbang:

Mode proxy, atau satu-lengan . Dalam mode ini, saat mengirim permintaan ke salah satu backend, NSX Edge menggunakan alamat IP-nya sebagai alamat sumber. Dengan demikian, penyeimbang melakukan fungsi Sumber dan Tujuan NAT. Backend melihat semua lalu lintas yang dikirim dari penyeimbang dan merespons langsung ke sana. Dalam skema ini, penyeimbang harus berada di segmen jaringan yang sama dengan server internal.

Begini caranya:

  1. Pengguna mengirim permintaan ke alamat VIP (alamat penyeimbang) yang dikonfigurasi pada Edge.
  2. Edge memilih salah satu backend dan melakukan NAT tujuan, mengganti alamat VIP dengan alamat backend yang dipilih.
  3. Edge menjalankan source NAT, menggantikan alamat pengguna yang mengirim permintaan dengan miliknya.
  4. Paket dikirim ke backend yang dipilih.
  5. Backend tidak merespons langsung ke pengguna, tetapi Edge, karena alamat asli pengguna telah diubah ke alamat penyeimbang.
  6. Edge mengirimkan respons server ke pengguna.

Skema di bawah ini.



Mode transparan, atau sebaris. Dalam skenario ini, penyeimbang memiliki antarmuka dalam jaringan internal dan eksternal. Namun, tidak ada akses langsung ke jaringan internal dari eksternal. Penyeimbang beban bawaan berfungsi sebagai gateway NAT untuk mesin virtual di jaringan internal.

Mekanismenya adalah sebagai berikut:

  1. Pengguna mengirim permintaan ke alamat VIP (alamat penyeimbang) yang dikonfigurasi pada Edge.
  2. Edge memilih salah satu backend dan melakukan NAT tujuan, mengganti alamat VIP dengan alamat backend yang dipilih.
  3. Paket dikirim ke backend yang dipilih.
  4. Backend menerima permintaan dengan alamat asli pengguna (sumber NAT tidak dieksekusi) dan merespons langsung ke sana.
  5. Lalu lintas lagi diterima oleh penyeimbang beban, karena dalam skema inline biasanya berfungsi sebagai gateway default untuk server farm.
  6. Edge menjalankan source NAT untuk mengirim lalu lintas ke pengguna, menggunakan VIP-nya sebagai alamat IP sumber.

Skema di bawah ini.



Berlatih


Pada testbed saya, 3 server dengan Apache dikonfigurasi, yang dikonfigurasi untuk bekerja pada HTTPS. Edge akan menyeimbangkan permintaan HTTPS menggunakan metode round robin, mem-proksi setiap permintaan baru ke server baru.

Mari kita mulai.

Menghasilkan Sertifikat SSL Yang Akan Menggunakan NSX Edge


Anda dapat mengimpor sertifikat CA yang valid atau menggunakan yang ditandatangani sendiri. Dalam tes ini, saya akan menggunakan yang ditandatangani sendiri.

  1. Di antarmuka vCloud Director, buka pengaturan layanan Edge.

  2. Buka tab Sertifikat. Dari daftar tindakan, pilih penambahan CSR baru.

  3. Isi kolom yang wajib diisi dan klik Keep.

  4. Pilih CSR yang baru dibuat dan pilih opsi CSR yang ditandatangani sendiri.

  5. Pilih periode validitas sertifikat dan klik Simpan

  6. Sertifikat yang ditandatangani sendiri muncul di daftar yang tersedia.


Konfigurasikan Profil Aplikasi


Profil aplikasi memberi Anda lebih banyak kontrol atas lalu lintas jaringan dan membuatnya mudah dan efisien. Dengan bantuan mereka, Anda dapat menentukan perilaku untuk jenis lalu lintas tertentu.

  1. Buka tab Load Balancer dan nyalakan balancer. Opsi Akselerasi yang diaktifkan di sini memungkinkan penyeimbang untuk menggunakan penyeimbangan L4 lebih cepat daripada L7.

  2. Buka tab Profil aplikasi untuk mengatur profil aplikasi. Klik +.

  3. Tetapkan nama profil dan pilih jenis lalu lintas untuk mana profil akan diterapkan. Saya akan menjelaskan beberapa parameter.

    Kegigihan - menyimpan dan melacak data sesi, misalnya: server spesifik mana dari kolam yang melayani permintaan pengguna. Ini memastikan bahwa permintaan pengguna dikirim ke anggota kumpulan yang sama sepanjang masa sesi atau sesi berikutnya.

    Aktifkan SSL lolos - ketika opsi ini dipilih, NSX Edge berhenti mengakhiri SSL. Sebaliknya, penghentian terjadi langsung pada server yang melakukan penyeimbangan.

    Masukkan X-Forwarded-For HTTP header - memungkinkan Anda untuk menentukan alamat IP sumber klien yang terhubung ke server web melalui penyeimbang.

    Aktifkan Pool Side SSL - memungkinkan Anda menentukan bahwa kumpulan yang dipilih terdiri dari server HTTPS.

  4. Karena saya akan menyeimbangkan lalu lintas HTTPS, saya harus mengaktifkan Pool Side SSL dan memilih sertifikat yang sebelumnya dibuat di Sertifikat Server Virtual -> tab Sertifikat Layanan.

  5. Demikian pula untuk Pool Certificate -> Service Certificate.


Kami membuat kumpulan server, lalu lintas ke mana Pools akan diseimbangkan


  1. Buka tab Pools. Klik +.

  2. Atur nama kumpulan, pilih algoritme (saya akan menggunakan round robin) dan tipe pemantauan untuk pemeriksaan kesehatan backend. Opsi Transparan menunjukkan apakah sumber klien IP awal terlihat oleh server internal.

    • Jika opsi ini dinonaktifkan, lalu lintas untuk server internal berasal dari IP sumber penyeimbang.
    • Jika opsi ini diaktifkan, server internal melihat klien IP sumber. Dalam konfigurasi ini, NSX Edge harus bertindak sebagai gateway default untuk memastikan bahwa paket yang dikembalikan melewati NSX Edge.

    NSX mendukung algoritma balancing berikut:

    • IP_HASH - pemilihan server berdasarkan hasil fungsi hash untuk IP sumber dan tujuan setiap paket.
    • LEASTCONN - menyeimbangkan koneksi yang masuk, tergantung pada jumlah yang sudah tersedia di server tertentu. Koneksi baru akan diarahkan ke server dengan jumlah koneksi paling sedikit.
    • ROUND_ROBIN - koneksi baru dikirim ke setiap server secara bergantian, sesuai dengan bobot yang ditentukan.
    • URI - bagian kiri URI (sebelum tanda tanya) dipotong dan dibagi dengan total berat server di kumpulan. Hasilnya menunjukkan server mana yang menerima permintaan, memastikan bahwa permintaan selalu dialihkan ke server yang sama, selama semua server tetap tersedia.
    • HTTPHEADER - menyeimbangkan berdasarkan header HTTP tertentu, yang dapat ditentukan sebagai parameter. Jika tajuknya hilang atau tidak memiliki arti, algoritma ROUND_ROBIN digunakan.
    • URL - setiap permintaan GET HTTP mencari parameter URL yang ditentukan sebagai argumen. Jika parameter diikuti oleh tanda dan nilai yang sama, maka nilainya hash dan dibagi dengan total berat server yang berjalan. Hasilnya menunjukkan server mana yang menerima permintaan. Proses ini digunakan untuk melacak ID pengguna dalam permintaan dan untuk memastikan bahwa id pengguna yang sama selalu dikirim ke server yang sama, selama semua server tetap tersedia.

  3. Di blok Anggota, klik + untuk menambahkan server ke kumpulan.



    Di sini Anda perlu menentukan:

    • nama server
    • Alamat IP server;
    • port tempat server akan menerima lalu lintas;
    • port untuk pemeriksaan kesehatan (Monitor pemeriksaan kesehatan);
    • Bobot - dengan parameter ini Anda dapat menyesuaikan jumlah lalu lintas yang diterima proporsional untuk anggota tertentu dari kumpulan;
    • Max Connections - jumlah maksimum koneksi ke server;
    • Koneksi Min - jumlah minimum koneksi yang harus diproses server sebelum lalu lintas dialihkan ke anggota kumpulan berikutnya.



    Inilah yang tampak seperti kumpulan terakhir dari tiga server.


Tambahkan Server Virtual


  1. Buka tab Server Virtual. Klik +.

  2. Kami mengaktifkan server virtual menggunakan Enable Virtual Server.

    Kami memberinya nama, pilih Profil Aplikasi yang dibuat sebelumnya, Pool dan tentukan alamat IP yang akan menerima permintaan Virtual Server dari luar. Tentukan protokol dan port 443 HTTPS.
    Parameter opsional di sini:

    Batas Koneksi - jumlah maksimum koneksi simultan yang dapat ditangani oleh server virtual;
    Batas Tingkat Koneksi (CPS) - Jumlah maksimum permintaan masuk baru per detik.



Ini melengkapi konfigurasi penyeimbang, Anda dapat memeriksa kinerjanya. Server memiliki konfigurasi paling sederhana, yang memungkinkan Anda memahami server mana dari kolam yang memproses permintaan. Selama penyiapan, kami memilih algoritma penyeimbang Round Robin, dan parameter Bobot untuk setiap server sama dengan satu, sehingga setiap permintaan berikutnya akan diproses oleh server berikutnya dari kumpulan.

Masukkan alamat eksternal penyeimbang di browser dan lihat:



Setelah menyegarkan halaman, permintaan akan diproses oleh server berikut:



Dan lagi - untuk memeriksa server ketiga dari kolam:



Saat memeriksa, Anda dapat melihat bahwa sertifikat yang dikirimkan Edge kepada kami adalah sama dengan yang kami hasilkan di awal.

Periksa status penyeimbang dari konsol Edge gateway. Untuk melakukan ini, masukkan tampilkan pool layanan loadbalancer .



Konfigurasikan Monitor Layanan untuk memeriksa status server di kumpulan


Menggunakan Service Monitor, kita dapat memonitor status server di backend pool. Jika respons terhadap permintaan tidak sesuai dengan yang diharapkan, server dapat ditarik dari kumpulan sehingga tidak menerima permintaan baru.

Secara default, tiga metode verifikasi dikonfigurasikan:

  • Monitor TCP
  • Monitor HTTP
  • HTTPS-monitor.

Buat yang baru.

  1. Buka tab Pemantauan Layanan, klik +.

  2. Pilih:

    • nama untuk metode baru;
    • interval di mana permintaan akan dikirim,
    • batas waktu respons
    • tipe pemantauan adalah permintaan HTTPS menggunakan metode GET, kode status yang diharapkan adalah 200 (OK) dan URL permintaan.
  3. Ini melengkapi konfigurasi Monitor Layanan baru, sekarang kita dapat menggunakannya saat membuat kumpulan.


Konfigurasikan Aturan Aplikasi


Aturan Aplikasi adalah cara untuk memanipulasi traffic berdasarkan pemicu spesifik. Dengan menggunakan alat ini, kita dapat membuat aturan penyeimbangan muatan tingkat lanjut, yang mungkin tidak dapat dikonfigurasi melalui profil Aplikasi atau menggunakan layanan lain yang tersedia di Edge Gateway.

  1. Untuk membuat aturan, buka tab Aturan Aplikasi penyeimbang.

  2. Pilih nama, skrip yang akan menggunakan aturan, dan klik Simpan.

  3. Setelah aturan dibuat, kita perlu mengedit Virtual Server yang sudah dikonfigurasi.

  4. Di tab Tingkat Lanjut, tambahkan aturan yang kami buat.



Pada contoh di atas, kami telah menyertakan dukungan tlsv1.

Beberapa contoh lagi:

Arahkan lalu lintas ke kumpulan lain.

Dengan skrip ini, kita dapat mengarahkan lalu lintas ke kumpulan penyeimbang lain jika kumpulan utama tidak berfungsi. Agar aturan berfungsi, beberapa kumpulan harus dikonfigurasi pada penyeimbang dan semua anggota kumpulan utama harus dalam kondisi down. Tentukan nama pool, bukan ID-nya.

acl pool_down nbsrv(PRIMARY_POOL_NAME) eq 0 use_backend SECONDARY_POOL_NAME if PRIMARY_POOL_NAME 

Arahkan lalu lintas ke sumber daya eksternal.

Di sini kita mengarahkan lalu lintas ke situs web eksternal jika semua anggota kelompok utama berada dalam kondisi tidak aktif.

 acl pool_down nbsrv(NAME_OF_POOL) eq 0 redirect location http://www.example.com if pool_down 

Lebih banyak contoh di sini .

Itu semua tentang penyeimbang. Jika Anda memiliki pertanyaan, tanyakan, saya siap menjawab.

Source: https://habr.com/ru/post/id448540/


All Articles