Управляет ли программный балансировщик нагрузки двусторонним соединением SSL? Если да, то как?

У меня нет ни малейшего представления о том, как работает программный или аппаратный балансировщик нагрузки. Я предполагаю, что аппаратный балансировщик нагрузки в основном является коммутатором и на основе некоторого алгоритма решает, на какой узел переключиться для входящего запроса. Что касается программного балансировщика нагрузки, я думаю, что программное обеспечение выбирает узел и использует к нему обратное прокси-соединение. В таком сценарии двусторонний SSL не будет работать, поскольку балансировщик нагрузки не может иметь закрытый ключ клиента.

Опять же, я не знаю, как работает программный балансировщик нагрузки, но поскольку моему приложению потребуется балансировщик нагрузки, и поскольку приложение использует двустороннее SSL-соединение, я хотел знать, как программный балансировщик нагрузки заботится о двустороннем SSL. связь.


person kittugadu    schedule 13.02.2009    source источник
comment
Не могли бы вы уточнить, что вы подразумеваете под двусторонним SSL? Существует несколько различных конфигураций для балансировщиков нагрузки, где в одном случае они завершают запрос SSL и в некотором смысле пересылают новый запрос, а в другом просто пересылают запрос, который, как мне кажется.   -  person JB King    schedule 13.02.2009
comment
В двустороннем SSL и клиент, и сервер обмениваются своими сертификатами, и используется общий 128-битный ключ. Этот ключ используется для шифрования данных между клиентом и сервером. Обратный прокси-сервер в таком сценарии не работает, так как у LB не будет закрытого ключа клиента.   -  person kittugadu    schedule 14.02.2009
comment
Мое представление о программном балансировщике нагрузки было на очень высоком уровне, и я думал, что веб-сервер фактически будет реверсивным прокси-сервером для HTTP-запросов. Как я выяснил, балансировщик нагрузки использует коммутацию на уровнях OSI и что нет проблем с двусторонним SSL, поскольку пакеты данных переключаются на узлы.   -  person kittugadu    schedule 16.02.2009


Ответы (3)


Нет, SSL работает с балансировщиком нагрузки. Обычно они работают на уровне TCP, поэтому клиенты подключаются к IP-адресу LB, но он выполняет NAT для соединений с реальными серверами. Соединение сохраняется с одним и тем же реальным сервером в течение всего времени его существования, но если тот же клиент устанавливает другое, он может (и обычно так и поступает) перейти на другой сервер.

Для HTTPS это работает нормально, за исключением того, что если у вас есть веб-сервер, который поддерживает кэширование сеанса SSL, то кеш сеанса SSL будет потерян, если клиент вернется на другой сервер. На практике это не является большой проблемой. Конечно, сеансы проверки активности HTTP не затрагиваются, потому что они представляют собой одно TCP-соединение, поэтому они остаются на одном и том же реальном сервере.

person MarkR    schedule 15.02.2009

Вообще говоря, программный балансировщик нагрузки заметит, что есть новый входящий запрос на подключение, оценит рабочую нагрузку на доступные машины и назначит новый запрос наиболее подходящей машине. Когда есть услуга на основе сеанса, это соединение будет длиться в течение всего сеанса; перебалансировка будет происходить только в том случае, если сервер выйдет из строя, и, вероятно, установит новые соединения в новой сбалансированной конфигурации.

Таким образом, как подразумевал Джон, сеанс SSL будет установлен с сервером и будет продолжаться с этим сервером до тех пор, пока сеанс не завершится.

Если вы хотите более динамично маршрутизировать соединения, то может случиться так, что сессия SSL должна быть завершена (расшифрована) перед программным обеспечением, которое динамически отправляет запросы на разные серверы.

Все это возможно - они не обязательно эффективны или реализованы.

person Jonathan Leffler    schedule 13.02.2009

Программный балансировщик нагрузки будет равномерно распределять сеансы между несколькими серверами.

Таким образом, если пользователь попадет в ваш балансировщик нагрузки, он отправит его на определенный сервер, и этот сервер будет согласовывать SSL. Пользователь будет постоянно разговаривать с этим сервером, пока не истечет срок его сеанса. В этот момент он снова ударит по балансировщику нагрузки.

person jgallant    schedule 13.02.2009
comment
Честно говоря, я знаю только базовый обзор того, как это работает. Я никогда не вникал в мельчайшие детали. На наших аппаратных балансировщиках он проверяет сервер на наличие определенного файла (lb.html). Если он может попасть в файл, сервер считается живым. Пользователь перенаправляется через IP-адрес. Я предполагаю, что программное обеспечение аналогично - person jgallant; 13.02.2009