Czy sprzętowy moduł równoważenia obciążenia może kierować ruchem SSL za pomocą SNI?

9

Mamy farmę serwerów WWW, która obecnie hostuje 2 aplikacje - obie aplikacje działają na wszystkich serwerach. Chcemy to podzielić, abyśmy mieli dedykowaną farmę serwerów dla każdej aplikacji (mamy ku temu dobre powody).

Mieliśmy nadzieję, że przed wszystkimi serwerami znajdzie się jeden moduł równoważenia obciążenia, który kierowałby ruch do prawidłowej farmy na podstawie nazwy hosta, ale chcemy zachować SSL na serwerach WWW.

Wygląda na to, że routery, które są nam oferowane, nie robią tego. Rozumiem, że bez SNI jest to niemożliwe, ale oczekujemy wskaźników SNI na praktycznie całym naszym ruchu.

Teraz jestem programistą, a nie facetem z sieci, ale kiedy pojawia się nowe żądanie połączenia SSL, router nie może sprawdzić nagłówka SNI i skierować się do właściwej farmy. Zakładam, że przychodzące połączenie SSL jest identyfikowane przez {źródłowy adres IP: port źródłowy}, więc czy nie mógł zapamiętać tego dla kolejnych przychodzących pakietów (jeśli SNI jest obecny tylko w pierwszym pakiecie)?

O ile wiem, Haproxy to robi, ale wydaje się, że sprzętowe usługi równoważenia obciążenia nie. Czy jest jakiś powód tego, czy jest to coś, na co powinniśmy naciskać?

(W przypadku ostatniego strażnika używającego IE na XP, który nie zawiera SNI, chcielibyśmy wysłać ruch do starej farmy i w razie potrzeby moglibyśmy zarządzać proxy do nowej farmy).

Potomato
źródło

Odpowiedzi:

10

Według ich strony równoważenia obciążenia F5 mają wsparcie dla SNI:

https://devcentral.f5.com/articles/ssl-profiles-part-7-server-name-indication

Możesz nawet tworzyć iRule oparte na SNI.

Zastrzeżenie:

  • Nie zweryfikowałem tego, co twierdzą na swojej stronie internetowej
  • Nie pracuję dla F5 i nie używałem żadnego z nich od ponad 3 lat.
bgtvfr
źródło
Dzięki za odpowiedź. Mogę się mylić w tej kwestii, ale myślę, że ta strona mówi raczej o serwerach internetowych niż o routingu ruchu SSL. Mówi o używaniu SNI do wyboru prawidłowego certyfikatu, więc myślę, że jest on na końcu połączenia SSL, a nie w środku.
Potomato
1
AFAIK, ta strona mówi o routingu ruchu SSL "..., BIG-IP pozwala przypisać wiele profili SSL do serwera wirtualnego w celu obsługi korzystania z funkcji TLS SNI. Funkcja TLS SNI nie jest dostępna w poprzednim BIG- Wersje IP, więc będziesz chciał dokonać aktualizacji, jeśli nie korzystasz z wersji 11.1.0 lub nowszej! Aby obsługiwać tę funkcję, serwerowi wirtualnemu należy przypisać domyślny profil SSL na wypadek awarii, a także jeden profil SSL na witrynę HTTPS. Profil SSL jest używany, gdy nazwa serwera nie odpowiada żądaniu klienta lub gdy przeglądarka nie obsługuje rozszerzeń SNI. ”
bgtvfr
„serwery wirtualne” to sposób, w jaki duży ruch IP
kieruje
Większość dużych graczy (cisco, big-IP) robi to, jak wspomniano powyżej. Nie jestem pewien, dlaczego druga odpowiedź została oznaczona jako odpowiedź.
Jim B
@JimB zaznaczyłem drugą jako odpowiedź, ponieważ jestem programistą próbującym negocjować możliwości sprzętu sieciowego! Patrzyłem na ten artykuł dalej i nadal nie mogę się dowiedzieć, czy urządzenie decyduje się na przekazywanie ruchu do różnych serwerów fizycznych w oparciu o rozszerzenie SNI (w razie potrzeby). Wygląda to jednak na istotne: devcentral.f5.com/questions/…
potomato
9

router nie może sprawdzić nagłówka SNI,

Router zwykle działa tylko w warstwie OSI 3, tzn. Nie sprawdza zawartości pakietu, a jedynie docelowy adres IP. W przypadku routingu opartego na SNI konieczna byłaby znajomość protokołu TCP i TLS, który jest zarówno bardziej złożony, jak i znacznie droższy (pod względem wydajności), niż tylko routing oparty na adresie IP. I to zwykle nie jest już nazywane routingiem.

Haproxy robi to ... sprzętowe moduły równoważące obciążenia nie.

Miksujesz router (warstwa 3), sprzętowy moduł równoważenia obciążenia (warstwa 4 i być może wyższy) i Haproxy (programowy moduł równoważenia obciążenia). Sprzętowy moduł równoważenia obciążenia jest niczym więcej niż urządzeniem z jakimś oprogramowaniem równoważącym obciążenie, a może także przyspieszeniem sprzętowym dla określonych działań. Nie ma nic, co z natury uniemożliwiłoby równoważenie (nie routing) na podstawie informacji SNI na sprzętowym module równoważenia obciążenia i podobnie jak inna odpowiedź sugeruje, że istnieją produkty, które to obsługują. Ale oczywiście trzeba go wdrożyć i kosztuje to wydajność - im głębiej patrzysz na ruch, tym wolniej.

Steffen Ullrich
źródło
Ok, jest to technicznie możliwe, ale nie jest to dobry pomysł ze względu na wydajność, dlatego nie zostało to zrobione. Dzięki.
Potomato