Can a hardware load-balancer route SSL traffic with SNI?

We've got a webserver farm currently hosting 2 applications - both applications are running on all servers. We want to split this so we have a dedicated server farm for each app (we have good reasons for this).

We'd hoped to have a single load-balancer in front of all of the servers, which would route traffic to the correct farm based on hostname, but we want to maintain SSL to the webservers.

It seems the routers we're being offered don't do this. I appreciate that without SNI this is impossible, but we expect SNI indicators on virtually all of our traffic.

Now I'm a programmer, not a network guy, but when a new SSL connection request comes in, can't the router examine the SNI header, and route to the correct farm. I'm assuming the incoming SSL connection is identified by {source IP:source port}, so couldn't it remember this for subsequent incoming packets (if SNI is only present in the first packet)?

As far as I can tell Haproxy does this, but it seems like hardware load balancers don't. Is there any reason for this, or is this something we should push for?

(For the last guard using IE on XP who don't include SNI, we'd want to send traffic to the old farm, and we'd manage proxying to the new farm when necessary).

9
задан 23 August 2016 в 11:16
2 ответа

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

https://devcentral.f5.com/articles/ssl-profiles-part-7-server-name- индикация

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

Заявление об ограничении ответственности:

  • Я не проверял, что они утверждают на своем веб-сайте
  • Я не работаю с F5, и я не использовал их в производстве более 3 лет.
10
ответ дан 2 December 2019 в 22:23

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

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

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

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

9
ответ дан 2 December 2019 в 22:23

Теги

Похожие вопросы