Yük dengeleyici ne döndürür?


12

Bir kullanıcı yük dengeleyiciyi vurduğunda ve yük dengeleyici hangi web sunucusuna iletileceğini belirlediğinde, bundan sonra ne olacak? Yük dengeleyici isteği ve tüm verilerini web sunucusuna iletiyor, web sunucusunun yanıtını alıyor ve kullanıcıya geri veriyor mu?

Ya da daha çok yük dengeleyicinin tam olarak seçilen sunucunun ip adresini tarayıcıya geri döndürdüğü ve tarayıcının verilen sunucu ile yeni bir bağlantı açması gerektiği bir yönlendirme gibi mi?

İçgüdüm, bunun tüm web sunucusu IP adreslerinin halka açık olacağı anlamına geldiğinden ikincisi olmayacağını söylüyor ve güvenlik nedeniyle sadece yük dengeleyici adreslerini halka açmanın en iyisi olduğunu düşündüm. Ama sonra tekrar tam olarak emin değilim çünkü SSL terminationyük dengeleyiciyi etkinleştirirseniz , SSL'nin yeniden yönlendirilen sunucu ile yeniden kurulması gerekmez mi?


Yanıtlar:


13

Son IP yayınlanmadı. İşlem aslında müşterinin (dengeleyiciyi vuran bir kullanıcı) gerçek bir düğümle konuşurken dengeleyiciyle iletişim kurduğuna inandığı şekilde çalışır.

Çok basit bir açıklamada , çoğu işlem şu şekilde çalışır:

  1. Bir kullanıcı yük dengeleyicisine istekte bulunur.
  2. Dengeleyici, hangi düğümün en uygun olduğuna karar verir (dengeleme için kullandığınız stratejiye göre) ve hedef IP'yi seçer (değiştirir).
  3. (Burada sihir gerçekleşir.) Düğüm bir istek alır, bağlantıyı kabul eder ve dengeleyiciye yanıt verir.
  4. Dengeleyici yanıt IP'sini dengeleyiciden sanal olana geri döndürür ve yanıtı kullanıcıya iletir.
  5. Voilà, aslında başka bir yerde işlenmiş olsa bile, kullanıcı ilk isteğin IP'si ile yanıt alır.

Paket yeniden yazmanın (4. adımdaki IP adresinin değiştirilmesi) çok önemli olduğunu unutmayın. Bu olmadan istemci, güvenmediği bir IP'den paket almak, yanıtı atar.


4

Delikanlı dengeleyici katman 4 OSI üzerinde çalışmaktır. Bağlantı noktası numarasına kadar paketi açar ve ardından paketi 3 moddan biriyle yönlendirir.

Yük dengeleyici 3 modda çalışabilir: 1. Doğrudan yönlendirme Bu modda, sunucunuz IP ortak kullanıyor. Dengeleyici paketi alır ve katman 4'e kadar dekapsüle eder. Yük dengesi kuralı eşleşirse, paketi (değiştirmeden) realserver'dan birine yönlendirir. Realserver'ın loadbalance adresiyle aynı bir takma ad adresi vardır, bu nedenle realserver bir xxx.xxx.xxx.xxx hedefine sahip paket aldığında, bu paketi doğrudan adrese (takma ad) tanımlar. Ve sonra müşteriye doğrudan gerçek sunucu cevap isteği (loadbalance yoluyla değil).

2. NAT Bu modda, paket hedef adresini değiştirerek gerçek sunucuya yönlendirir. Hedef adres, gerçek sunucu adresi (NAT) ile değiştirilecektir. Bu modda, sunucunuzun IP herkese açık olması gerekmez, yerel ağınızı kullanabilir. Ve sonra paket teslim olacak yeni bir hedef adresi. Realserver paketi aldığında, ağ geçidinden (loadbalance) istemci istek adresine yanıt verilecektir. Bu modda, yük dengelemeniz yönlendirici olarak ve sunucunuzun ağ geçidi olarak kullanılır.

3. Tünel Bu modda paket, alıcıya teslim paketine yeni src-dst adresiyle (vpn gibi) tünellenecektir. paket realserver içinde alındığında, realserver yük dengelemesi için tünelli boru ile cevap verilecektir. Ve sonra loadbalance teslimat cevap ti gerçek istek kaynak adresi.

HTTPS / SSL için, loadbalance bunu işlemez, katman 4 OSI'ya kadar denge işlemini yükler. Yukarıdaki Katman 5 gerçek sunucuda işlenecektir. Yani TCP 3 yollu hanshake, SSL / HTTPS gerçek sunucuda işlem gördü. Loadbalance sadece paket yöneticisi.

Umarım küçük açıklamam bir şeylere yardımcı olur.


Görünüşe göre burada lvs hakkında konuşuyorsunuz, ancak http (s) yük dengelemesinin çalışma şekli bu değildir. Örneğin haproksiye bir göz atın. Bu uygulama userland yük dengeleme yapar ve de güzel arka uç yönlendirme işlevselliği atar.
Friek

Veri merkezimde https uygulama hizmetimi dengelemek için lvs kullanıyorum ve iyi çalışıyor ve iyi çalışıyor.
dek.tiram

Cehaletimi affedin, ama "lvs" nedir? Alkoksiye rakip mi?
smaili

Haproxy de lvs kullanır. Çekirdek işlem için lvs kullanan piranha kullanıyorum.
dek.tiram

haproxy bağımsız bir uygulamadır ve hiç lvs gerektirmez (lvs varlığının farkında bile değildir). Eğer haproxy üzerindeki yük çok ağırlaşırsa, lvs'i bir haproksi düğüm kümesini dengelemek için kullanabilirsiniz.
Friek

-1

Yük dengeleyici bir yönlendirici veya ters proxy olabilir:

LVS, Linux Çekirdeği için endüstri standardı Katman 4 (yönlendirme tabanlı) yük dengeleme modülüdür. Barracuda, Loadbalancer.org ve Kemp Technologies gibi çeşitli ticari yük dengeleyicilerinde kullanılır. Barracuda ve Loadbalancer.org ayrıca Katman 7 yük dengelemesi için HAProxy kullanır ( ters proxy tabanlı ).

Ps. Bunun nereden geldiğimi göstermediğini unuttum açıkçası Loadbalancer.org


1
bir ilişkisi ifşa beklenen dış kaynaklara bağlantılar yayınlarken, bkz bir spam olamaz Nasıl
tatarcık
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.