Может ли аппаратный балансировщик нагрузки маршрутизировать SSL-трафик с SNI?

9

У нас есть ферма веб-серверов, на которой в настоящее время размещены 2 приложения - оба приложения работают на всех серверах. Мы хотим разделить это, чтобы у нас была выделенная ферма серверов для каждого приложения (у нас есть веские причины для этого).

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

Кажется, маршрутизаторы, которые нам предлагают, не делают этого. Я ценю, что без SNI это невозможно, но мы ожидаем, что показатели SNI будут присутствовать практически на всем нашем трафике.

Теперь я программист, а не сетевой парень, но когда приходит новый запрос на соединение SSL, я не могу маршрутизатор проверить заголовок SNI и направить к правильной ферме. Я предполагаю, что входящее SSL-соединение идентифицируется {исходный IP: исходный порт}, поэтому он не может запомнить это для последующих входящих пакетов (если SNI присутствует только в первом пакете)?

Насколько я могу сказать, Haproxy делает это, но кажется, что аппаратные балансировщики нагрузки этого не делают. Есть ли для этого какая-то причина, или мы должны настаивать на этом?

(Для последнего защитника, использующего IE на XP, который не включает SNI, мы хотели бы отправлять трафик на старую ферму, и мы будем управлять прокси на новую ферму, когда это необходимо).

potomato
источник

Ответы:

10

Согласно их веб-сайту, балансировщики нагрузки F5 поддерживают SNI:

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

Вы даже можете сделать iRules на основе SNI.

Отказ от ответственности:

  • Я не проверил, что они утверждают на своем сайте
  • Я не работаю на F5, и я не использовал в производстве более 3 лет.
bgtvfr
источник
Спасибо за ответ. Я вполне могу ошибаться в этом, но я думаю, что эта страница говорит о веб-серверах, а не о маршрутизации трафика SSL. В нем говорится об использовании SNI для выбора правильного сертификата, поэтому я думаю, что это в конце SSL-соединения, а не в середине.
Потомат
1
AFAIK, на этой странице говорится о маршрутизации трафика SSL "..., BIG-IP позволяет назначать несколько профилей SSL виртуальному серверу для поддержки использования функции TLS SNI. Функция TLS SNI недоступна в предыдущих BIG- Версии IP, поэтому вы захотите обновить его, если у вас нет версии v11.1.0 или выше! Для поддержки этой функции виртуальному серверу должен быть назначен профиль SSL по умолчанию для резервирования, а также один профиль SSL на сайт HTTPS. Профиль SSL используется, когда имя сервера не соответствует запросу клиента или браузер не поддерживает расширения SNI. "
bgtvfr
«Виртуальные серверы» - это путь, по которому большой IP-трафик HTTP / https-трафика направляется на внутренние серверы (= apache, tomcat, websphere ...)
bgtvfr
Большинство крупных игроков (cisco, big-IP) делают это, как указано выше. Я не уверен, почему другой ответ был помечен как ответ.
Джим Б.
@JimB Я отметил другого как ответ, потому что я программист, пытающийся договориться о возможностях сетевого оборудования! Я посмотрел статью дальше и до сих пор не могу понять, выбирает ли устройство пересылку трафика на разные физические серверы на основе расширения SNI (как нам нужно). Это выглядит актуально, хотя: devcentral.f5.com/questions/…
potomato
9

маршрутизатор не может проверить заголовок SNI,

Маршрутизатор обычно работает только на уровне OSI 3, то есть не проверяет содержимое пакета, а только целевой IP. Для маршрутизации на основе SNI необходимо понимание TCP и TLS, которое является более сложным и намного более дорогим (с точки зрения производительности), чем просто маршрутизация на основе IP-адреса. И это также обычно больше не называется маршрутизацией.

Haproxy делает это .. аппаратные балансировщики нагрузки не делают.

Вы смешиваете маршрутизатор (уровень 3), аппаратный балансировщик нагрузки (уровень 4 и, возможно, выше) и Haproxy (программный балансировщик нагрузки). Аппаратный балансировщик нагрузки - это не более чем устройство с некоторым программным балансировщиком нагрузки и, возможно, также некоторым аппаратным ускорением для определенных действий. Нет ничего, что по своей природе делает невозможным балансировку (не маршрутизацию) на основе информации SNI на аппаратном балансировщике нагрузки, и, как в другом ответе, предполагается, что есть продукты, которые поддерживают это. Но, конечно, это необходимо реализовать и снизить производительность - чем глубже вы смотрите на трафик, тем медленнее он становится.

Штеффен Ульрих
источник
Да, так технически возможно, но это не очень хорошая идея по причинам производительности, поэтому это не сделано. Спасибо.
potomato