Недавно я искал новые балансировщики нагрузки для нашей среды, поскольку мы ожидаем удвоить нашу клиентскую базу в следующие 12 месяцев.
В настоящее время у нас есть 400 общедоступных IPS, обслуживающих 800 кластеров (2 кластера / IP из-за портов) на балансировщиках Coyote Point, и распределяющих подключения к 3 веб-серверам, обслуживающих около 6 ГБ исходящих, 2 ГБ в день. Если мы удвоим, это будет около 800 IP-адресов, возможно, 1600 кластеров и около 6 серверов на кластер (всего 9600 так называемых «реальных серверов» на жаргоне Barracuda).
Из-за количества кластеров большинство рассмотренных мной решений (Coyote, Barracuda, Loadbalancer.org), похоже, не уверены в том, смогут ли они справиться с нашим запланированным ростом, в основном из-за проверок работоспособности, выполняемых на серверах. , что имеет смысл, если подумать.
Поэтому специалисты loadbalancer.org порекомендовали нам, возможно, лучше переложить 400-800 общедоступных IP-адресов, которые нам требуются для решений электронной коммерции SSL, на прямой маршрутизатор. С этого момента маршрутизатор может внести некоторые изменения в маршрутизацию EXT_IP: 443 на INT_IP: INT_PORT, что затем позволит нам уменьшить конфигурацию балансировщика нагрузки до 1 или 2 кластеров, тем самым решив проблему проверки работоспособности.
Есть ли смысл в этой идее? Или у вас есть другие рекомендации?
Во-вторых, какой роутер порекомендуете для такого дела? Я бы посмотрел на то, что имеет встроенный механизм аварийного переключения.
Совершенно не относящийся к делу, должен признать, что я очень доволен ответами, которые получил от loadbalancer.org. Их ответы на мои вопросы оказались на удивление полезными (т.е. у меня не было ощущения, что я обращаюсь к продавцу, пытающемуся что-то подтолкнуть). (Нет, я не работаю на них, и печально они не присылают мне бесплатного снаряжения).
Практически то же самое я сделал, используя вятту.
Я сделал то же самое, используя pfsense, однако vyatta может быть немного более зрелым для поддержки.
Стоимость очень низкая по сравнению с другими вариантами ... подробнее
У меня есть несколько похожая настройка, где у меня есть большая часть блока IP-адресов / 22, определенного в блоке F5 BigIP, с однозначным сопоставлением внешнего IP-адреса с номером внутреннего порта на каждой из моих внутренних машин.
В моем случае все порты были частью одного и того же экземпляра Apache - я определил проверки работоспособности только для базового порта. Если бы он не был запущен, никто из других тоже не был бы, поэтому он бы вылез из вращения весь бэкэнд-узел.
Вы можете использовать интерфейсный маршрутизатор, как вы описываете, для выполнения этой работы NAT, но вам все равно нужно будет определить кластеры для каждой комбинации промежуточный хост: порт - с текущим состоянием поддержки SNI в клиентах, при выполнении SSL вам нужен сертификат сопоставлен с портом. Обычно это порт 443, поэтому вы используете IP-адрес для каждого сайта, но с промежуточным уровнем маршрутизатора / LB вы можете свободно перемещать порты, вам просто все равно нужно иметь несколько сотен из них.
Я бы посоветовал Cisco ACE / ASA, Foundry (теперь Brocade) ServerIron и Zeus ZXTM (которые дорогие, но черт быстрый и способный.
Все они могут делать то, что вам нужно, но ни одна из них не бесплатна.
Мы используем как Vyatta (в качестве маршрутизатора BGP), так и pfSense (межсетевой экран / NAT / VPN), а со следующей недели - устройства loadbalancer.org (балансировка нагрузки). :-)
Разве проблема не в том, что вам нужна высокодоступная система с аварийным переключением для тысяч IP-адресов и сертификатов SSL? Vyatta и pfSense (и т. Д.) Будут выполнять только переадресацию портов, но вам также понадобится «транспортный» SSL - нет? Если Coyote / Loadbalancer.org / и т. Д. Не может этого сделать, вам может потребоваться либо выложить много денег для одного из более дорогих поставщиков (если они могут ...), либо (лучше?) «Создать свой собственный».
Используйте keepalived для перемещения IP-адресов назад и вперед между небольшим количеством ящиков, а затем, например, nginx работает как прокси-сервер SSL, перенаправляя запросы обратно на ваш балансировщик нагрузки (на любой подходящий порт). Он даже может устанавливать / применять определенные заголовки, поэтому, возможно, ваша конфигурация балансировщика нагрузки может оставаться очень простой, и вы просто проверяете эти заголовки на своем бэкэнде.