У нас есть ферма веб-серверов, на которой в настоящее время размещены 2 приложения - оба приложения работают на всех серверах. Мы хотим разделить это, чтобы у нас была выделенная ферма серверов для каждого приложения (у нас есть веские причины для этого).
Мы надеялись иметь один балансировщик нагрузки перед всеми серверами, который будет направлять трафик в правильную ферму на основе имени хоста, но мы хотим поддерживать SSL для веб-серверов.
Кажется, маршрутизаторы, которые нам предлагают, не делают этого. Я ценю, что без SNI это невозможно, но мы ожидаем, что показатели SNI будут присутствовать практически на всем нашем трафике.
Теперь я программист, а не сетевой парень, но когда приходит новый запрос на соединение SSL, я не могу маршрутизатор проверить заголовок SNI и направить к правильной ферме. Я предполагаю, что входящее SSL-соединение идентифицируется {исходный IP: исходный порт}, поэтому он не может запомнить это для последующих входящих пакетов (если SNI присутствует только в первом пакете)?
Насколько я могу сказать, Haproxy делает это, но кажется, что аппаратные балансировщики нагрузки этого не делают. Есть ли для этого какая-то причина, или мы должны настаивать на этом?
(Для последнего защитника, использующего IE на XP, который не включает SNI, мы хотели бы отправлять трафик на старую ферму, и мы будем управлять прокси на новую ферму, когда это необходимо).
источник
Маршрутизатор обычно работает только на уровне OSI 3, то есть не проверяет содержимое пакета, а только целевой IP. Для маршрутизации на основе SNI необходимо понимание TCP и TLS, которое является более сложным и намного более дорогим (с точки зрения производительности), чем просто маршрутизация на основе IP-адреса. И это также обычно больше не называется маршрутизацией.
Вы смешиваете маршрутизатор (уровень 3), аппаратный балансировщик нагрузки (уровень 4 и, возможно, выше) и Haproxy (программный балансировщик нагрузки). Аппаратный балансировщик нагрузки - это не более чем устройство с некоторым программным балансировщиком нагрузки и, возможно, также некоторым аппаратным ускорением для определенных действий. Нет ничего, что по своей природе делает невозможным балансировку (не маршрутизацию) на основе информации SNI на аппаратном балансировщике нагрузки, и, как в другом ответе, предполагается, что есть продукты, которые поддерживают это. Но, конечно, это необходимо реализовать и снизить производительность - чем глубже вы смотрите на трафик, тем медленнее он становится.
источник