Co zwraca moduł równoważenia obciążenia?


12

Gdy użytkownik trafi na moduł równoważenia obciążenia, a moduł równoważenia obciążenia określa, na który serwer WWW ma się przesłać, co dalej? Czy moduł równoważenia obciążenia przekazuje żądanie i wszystkie jego dane do serwera, odbiera odpowiedź serwera i zwraca ją z powrotem do użytkownika?

A może bardziej przypomina przekierowanie, w którym moduł równoważenia obciążenia dosłownie zwraca adres IP wybranego serwera z powrotem do przeglądarki, a przeglądarka musi otworzyć nowe połączenie z danym serwerem?

Mój instynkt mówi, że to nie będzie to drugie, ponieważ oznaczałoby to, że wszystkie adresy IP serwera WWW byłyby publiczne, a ze względów bezpieczeństwa pomyślałem, że najlepiej ujawniać tylko adresy modułu równoważenia obciążenia publicznie. Ale z drugiej strony nie jestem do końca pewien, ponieważ jeśli włączysz SSL terminationmoduł równoważenia obciążenia, czy nie będzie konieczne ponowne ustanowienie SSL na przekierowanym serwerze?


Odpowiedzi:


13

Końcowy adres IP nie jest publikowany. Proces faktycznie działa w sposób, w jaki klient (użytkownik uderzający w moduł równoważący) uważa, że ​​komunikuje się z modułem równoważącym, podczas rozmowy z rzeczywistym węzłem.

W bardzo prostym objaśnieniu większość transakcji działa w następujący sposób:

  1. Użytkownik wysyła żądanie do modułu równoważenia obciążenia.
  2. Moduł równoważący decyduje, który węzeł jest najbardziej odpowiedni (na podstawie strategii używanej do równoważenia) i wybiera (zmienia) docelowy adres IP.
  3. (Tu dzieje się magia.) Węzeł odbiera żądanie, akceptuje połączenie i odpowiada z powrotem na moduł równoważący.
  4. Moduł równoważący zmienia adres IP odpowiedzi z powrotem na wirtualny, moduł równoważący i przekazuje odpowiedź użytkownikowi.
  5. Voilà, użytkownik otrzymuje odpowiedź z adresem IP pierwszego żądania, nawet jeśli zostało ono przetworzone gdzie indziej.

Pamiętaj, że przepisywanie pakietów (zmiana adresu IP w kroku 4) jest bardzo ważne. Bez tego klient otrzymujący pakiet z adresu IP, któremu nie ufa, po prostu odrzuciłby odpowiedź.


4

Moduł równoważenia obciążenia działa na OSI warstwy 4. Dekapuluje pakiet do numeru portu, a następnie kieruje pakiet w jednym z 3 trybów.

Moduł równoważenia obciążenia może działać w trybie 3: 1. Bezpośredni routing W tym trybie serwer rzeczywisty korzysta z publicznego adresu IP. Moduł równoważący odbiera pakiet i dekapsuluje aż do warstwy 4. Jeśli w regule równoważenia obciążenia pasuje, nastąpi przekierowanie pakietu (bez modyfikacji) do jednego z serwera rzeczywistego. Realserver ma taki sam adres aliasu jak adres równoważenia obciążenia, więc kiedy serwer otrzyma pakiet z miejscem docelowym xxx.xxx.xxx.xxx, zdefiniuje ten pakiet bezpośrednio do jego adresu (aliasu). A następnie prawdziwe żądanie odpowiedzi serwera bezpośrednio do klienta (nie poprzez równoważenie obciążenia).

2. NAT W tym trybie pakiet przekierowuje do serwera z modyfikacją adresu docelowego. Adres docelowy zostanie zastąpiony adresem prawdziwego serwera (NAT). W tym trybie Twój serwer nie potrzebuje publicznego adresu IP, może korzystać z sieci lokalnej. I wtedy pakiet nie będzie dostarczał nowego adresu docelowego. Gdy serwer otrzyma pakiet, będzie odpowiadał na żądanie klienta przez bramę (loadbalance). W tym trybie twój loadbalance służy jako router i brama twojego serwera.

3. Tunel W tym trybie pakiet będzie tunelowany z nowym adresem src-dst (jak VPN) w celu dostarczenia pakietu do serwera rzeczywistego. kiedy pakiet otrzymany w realserver, realserver odpowie przez tunelowany potok na loadbalance. A następnie odpowiedź dostawy loadbalance dla adresu źródłowego żądania rzeczywistego

W przypadku HTTPS / SSL równoważenie obciążenia nie jest przetwarzane, proces równoważenia obciążenia do OSI warstwy 4. Warstwa 5 powyżej będzie przetwarzana w czasie rzeczywistym. Tak więc TCP 3-drożny hanshake, SSL / HTTPS, został przetworzony na serwerze rzeczywistym. Loadbalance tylko dyrektor pakietu.

Mam nadzieję, że moje małe wyjaśnienie coś pomoże.


Wygląda na to, że mówisz o lvs tutaj, ale niekoniecznie tak działa równoważenie obciążenia http (s). Spójrz na przykład na haproxy. Ta aplikacja zapewnia równoważenie obciążenia w przestrzeni użytkownika i zapewnia także przyjemną funkcjonalność routingu zaplecza.
— Friek,

W moim centrum danych używam lvs do równoważenia obciążenia mojej usługi aplikacji https, która działa i działa dobrze.
— dek.tiram

Przepraszam za moją ignorancję, ale czym jest „lvs”? Czy haproxy jest konkurentem?
— smaili

Haproxy używa również lvs. Używam piranii, która również używa lvs do podstawowego procesu.
— dek.tiram

haproxy jest samodzielną aplikacją i wcale nie wymaga lvs (nie jest nawet świadomy istnienia lvs). Możesz użyć lvs do zrównoważenia klastra haproxy węzłów, jeśli obciążenie haproxy staje się jednak zbyt duże.
— Friek,

-1

Moduł równoważenia obciążenia może być routerem lub zwrotnym serwerem proxy:

LVS to standardowy w branży moduł równoważenia obciążenia w warstwie 4 (oparty na routingu) dla jądra Linux. Jest stosowany w różnych komercyjnych równoważnikach obciążenia, w tym w Barracuda, Loadbalancer.org i Kemp Technologies. Barracuda i Loadbalancer.org używają również HAProxy do równoważenia obciążenia w warstwie 7 (na podstawie odwrotnego proxy ).

Ps. Zapomniałem, że to nie pokazuje, skąd jestem, z czego oczywiście jest Loadbalancer.org


1
publikując linki do zewnętrznych zasobów, należy ujawnić przynależność, zobacz Jak nie być spamerem
— komentuj
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.