Apa yang dikembalikan oleh penyeimbang beban?

12

Ketika seorang pengguna menekan load balancer dan load balancer menentukan server web mana yang akan diteruskan, apa yang terjadi selanjutnya? Apakah load balancer meneruskan permintaan dan semua datanya ke server web, menerima respons server web dan mengembalikannya ke pengguna?

Atau lebih seperti redirect di mana load balancer secara harfiah hanya mengembalikan alamat ip server yang dipilih kembali ke browser dan browser harus membuka koneksi baru dengan server yang diberikan?

Insting saya mengatakan itu bukan yang terakhir karena itu akan menyiratkan semua alamat IP server web akan menjadi publik dan saya pikir untuk alasan keamanan yang terbaik adalah hanya mengekspos alamat penyeimbang beban kepada publik. Tapi sekali lagi saya tidak begitu yakin karena jika Anda mengaktifkan SSL terminationload balancer, bukankah SSL perlu dibangun kembali dengan server yang dialihkan?

smaili
sumber

Jawaban:

13

End-IP tidak dipublikasikan. Proses ini sebenarnya bekerja dengan cara yang menurut klien (pengguna memukul penyeimbang) berkomunikasi dengan penyeimbang, sambil berbicara dengan simpul yang sebenarnya.

Dalam penjelasan yang sangat sederhana , sebagian besar transaksi bekerja seperti ini:

  1. Seorang pengguna membuat permintaan ke penyeimbang beban.
  2. Penyeimbang memutuskan simpul mana yang paling cocok (berdasarkan strategi yang Anda gunakan untuk menyeimbangkan) dan memilih (mengubah) IP tujuan.
  3. (Di sinilah keajaiban terjadi.) Node menerima permintaan, menerima koneksi dan merespons kembali ke penyeimbang.
  4. Penyeimbang mengubah IP respons kembali ke yang virtual, yang merupakan penyeimbang dan meneruskan respons ke pengguna.
  5. Voa, pengguna menerima respons dengan IP dari permintaan awal, meskipun sebenarnya diproses di tempat lain.

Ingatlah bahwa penulisan ulang paket (perubahan alamat IP pada langkah 4) sangat penting. Tanpanya klien, menerima paket dari IP yang tidak mereka percayai, hanya akan membuang responsnya.

Andy
sumber
4

Balance balancer bekerja pada layer 4 OSI. Itu mendekapsulasi paket sampai nomor port dan kemudian mengarahkan paket dengan salah satu dari 3 mode.

Load balancer dapat bekerja pada 3 mode: 1. Routing langsung Dalam mode ini server Anda menggunakan IP publik. Penyeimbang menerima paket dan mendekapsulasi sampai lapisan 4. Jika dalam aturan keseimbangan beban cocok, itu akan menjadi paket redirect (tanpa memodifikasi) ke salah satu server realserver. Realserver memiliki alamat alias yang sama dengan alamat loadbalance, jadi ketika realserver menerima paket dengan tujuan xxx.xxx.xxx.xxx, ia menentukan paket tersebut tepat untuk alamatnya (alias). Dan kemudian server membalas permintaan langsung ke klien (tidak melalui loadbalance).

2. NAT Dalam mode ini paket redirect ke realserver dengan memodifikasi alamat tujuan. Alamat tujuan akan diganti dengan alamat realserver (NAT). Dalam mode ini server email Anda tidak perlu IP publik, ia dapat menggunakan jaringan lokal Anda. Dan kemudian paket akan dikirimkan tanpa alamat tujuan baru. Ketika server penerima menerima paket, ia akan membalas alamat permintaan klien melalui gateway (loadbalance). Dalam mode ini loadbalance Anda digunakan sebagai router & sebagai gateway server Anda.

3. Tunnel Dalam mode ini paket akan disetel dengan alamat src-dst baru (seperti vpn) ke paket pengiriman ke server realserver. ketika paket diterima di realserver, realserver akan dibalas melalui pipa tunneled untuk memuat keseimbangan. Dan kemudian loadbalance pengiriman balas ti alamat sumber permintaan nyata.

Untuk HTTPS / SSL, loadbalance tidak memprosesnya, memuat proses keseimbangan hingga layer 4 OSI. Layer 5 di atas akan diproses di server realserver. Jadi cara TCP 3 hanshake, SSL / HTTPS itu diproses dalam server realserver. Loadbalance hanya direktur paket.

Saya harap penjelasan kecil saya akan membantu sesuatu.

dek.tiram
sumber
Tampaknya Anda berbicara tentang lvs di sini, tapi itu tidak selalu cara http (s) load balancing bekerja. Lihatlah haproxy misalnya. Aplikasi ini tidak memuat penyeimbangan di userland dan melempar fungsionalitas perutean backend yang bagus juga.
Friek
Di pusat data saya, saya menggunakan lvs untuk memuat keseimbangan layanan aplikasi https saya, dan itu berfungsi dan berjalan dengan baik.
dek.tiram
Maafkan ketidaktahuan saya, tapi apa itu "lvs"? Apakah itu pesaing untuk haproxy?
smaili
Haproxy juga menggunakan lvs. Saya menggunakan piranha yang juga menggunakan lvs untuk proses inti.
dek.tiram
haproxy adalah aplikasi mandiri dan tidak memerlukan lvs sama sekali (bahkan tidak menyadari keberadaan lvs). Anda dapat menggunakan lvs untuk menyeimbangkan sekelompok node haproxy, jika beban pada haproxy menjadi terlalu berat.
Friek
-1

Load balancer dapat berupa router atau proksi terbalik:

LVS adalah modul load balancing standar Lapisan 4 industri (berbasis routing) untuk Kernel Linux. Ini digunakan dalam berbagai penyeimbang beban komersial termasuk Barracuda, Loadbalancer.org dan Kemp Technologies. Barracuda dan Loadbalancer.org juga menggunakan HAProxy untuk load balancing Layer 7 ( reverse proxy based ).

Ps. Saya lupa ini tidak menunjukkan dari mana saya berasal, yang jelas adalah Loadbalancer.org

Malcolm turnbull
sumber
1
ketika memposting tautan ke sumber daya eksternal seseorang diharapkan untuk mengungkapkan afiliasi, lihat Bagaimana tidak menjadi spammer
agas