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?

smaili
źródło

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ź.

Andy
źródło
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.

dek.tiram
źródło
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

Malcolm Turnbull
źródło
1
publikując linki do zewnętrznych zasobów, należy ujawnić przynależność, zobacz Jak nie być spamerem
komentuj