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 termination
moduł równoważenia obciążenia, czy nie będzie konieczne ponowne ustanowienie SSL na przekierowanym serwerze?
Odpowiedzi:
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:
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ź.
źródło
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.
źródło
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
źródło