Как стать автором
Поиск
Написать публикацию
Обновить
40.68
Единый ЦУПИС
Платежный сервис в спортивной индустрии

IPsecHub+. Масштабирование и распределение нагрузки

Уровень сложностиСложный
Время на прочтение5 мин
Количество просмотров1.7K

Всем привет! На связи Николай Едомский, руководитель группы сетевых инженеров в ЕДИНОМ ЦУПИС.

Представляю вашему вниманию шестую статью из цикла «IPsecHub+».

После обсуждения отказоустойчивости у нас остался один важный вопрос в нашей целепостановке — вопрос масштабирования решения.

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


Подразумевается два вида масштабирования:

  • Горизонтальное. Мы наращиваем количество IPsec-концентраторов, которые могут обработать трафик до некоего условного объекта. В нашем случае мы расматриваем филиал. 

  • Вериткальное. Мы увеличиваем мощность конкретного IPsec-концентратора.

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

Важно также сказать, что нам нужно будет масштабировать два направления трафика:

1) из филиала в ЦОД 

2) из ЦОД в филиал

Почему мы рассматриваем их отдельно? Потому что, по-первых, филиальный концентратор так же участвует в процессе шифрования и дешифрования и может стать бутылочным горлышком. Во-вторых, процесс дешифрации значительно отличается от процесса зашифровки. Например, почти все решения не поддерживают параллелизацию процесса дешифрации одной сессии (одной SA в терминологии IPsec). Это нужно обязательно учитывать при расчете мощностей своих концентраторов на всех участках сети.

Давайте рассмотрим схемы масштабирования нагрузки при подаче трафика из ЦОД в филиалы.


Подача трафика c ЦОД. VRRP active-active

Эта схема предполагает наличие не одного VRRP-инстанса на одном из IPsec, а двух. При этом на первом инстансе мастером будет первый IPsec‑концентратор, а на втором — второй. При этом нам следует написать ECMP-маршрут на нашем межсетевом экране, где будет указано два шлюза для филиальной суперсети.

Рис. 1. Active-active VRRP.
Рис. 1. Active-active VRRP.

Тогда межсетевой экран по принципам ECMP будет балансировать нагрузку между двумя IPsec-концентраторами, а в случае выхода из строя одного из них, его VRRP-инстанс будет перехвачен оставшимся.

Эта схема не сработает, если ваш межсетевой экран не поддерживает ECMP в статических маршрутах. Также она будет очень плохо работать в случае, если межсетевой экран может хешировать ECMP-трафик только L2-функциямии. В этом случае трафик практически не будет балансироваться между IPsec-концентраторами.


Подача трафика c экрана через BGP-прокси

Рис. 2. Схема промежуточного принятия трафика от межсетевого экрана.
Рис. 2. Схема промежуточного принятия трафика от межсетевого экрана.

Это более элегантная схема балансировки трафика. Именно ее рекомендуется рассматривать ко внедрению. Она заключается в реализации дополнительного контура нейтральных устройств, находящихся между межсетевым экраном и IPsec-концентраторами. На схеме они представлены Core-коммутаторами. Задача каждого из Core-коммутаторов - организовать BGP-соседство с каждым из существующих IPsec-концентраторов. Это позволит каждому из Core-коммутаторов иметь возможность балансировать трафик между IPsec-концентраторами, предлагающими тот или иной маршрут. 

При этом принять трафик на сам Core-контур можно и через уже упомянутую VRRP-группу. Вообще для этого подойдет любой протокол горячего резервирования шлюза (например, HSRP). 

Разумеется, выделять отдельные устройства только для того, чтобы корректно балансировать трафик между IPsec-концентраторами, будет весьма расточительно, поэтому предполагается создавать VRF на уже существующих core-коммутаторах.

Давайте теперь рассмотрим схемы масштабирования нагрузки при подаче трафика из филиалов в ЦОД. Подходы здесь в целом будут аналогичны.


Подача трафика c филиала. VRRP-домен.

Рис. 3. VRRP в филиале.
Рис. 3. VRRP в филиале.

Здесь все достаточно просто. Если мы хотим смасштабировать ресурсы IPsec-концентратора филиала, то нужно рядом с уже существующим концентратором поставить еще один и создать VRRP-домен для принятия трафика от клиентов. Также мы должны будем связать новый концентратор GRE-туннелями со всеми концентраторами в ЦОД. Тогда входящий в филиал трафик будет балансироваться между всеми IPsec-концентраторами филиала. Сложнее ситуация с балансировкой исходящего трафика. Ввиду того, что VRRP-адрес будет присутствовать только на одном IPsec-концентраторе, только он и будет шифровать трафик. Это ограничение данной схемы можно обойти примерно тем же способом, который был рассмотрен выше. Нам нужно добавить некий балансировочный хост между клиентами и IPsec-концентраторами.

Рис. 4. Балансировка в филиале через Core.
Рис. 4. Балансировка в филиале через Core.

Вот как будет выглядеть такая схема. Трафик непосредственно от клиентской сети филиала сначала принимает некое устройство, например, L3 коммутатор. Далее уже этот коммутатор стыкуется по BGP с двумя IPsec-концентраторами филиала, каждый из которых имеет свои туннели до контура IPsec-концентраторов в ЦОД. 

Такой подход позволит построить очень гибкую схему, где и в филиалах, и в ЦОД мы можем горизонтально наращивать значительное количество IPsec-концентраторов. Это количество ограничено максиумом ECMP-маршрутов на устройствах уровня Core.

При этом еще раз напомню, что равномерность загрузки между IPsec-концентраторами будет зависет от хеш-функции, которую использует core-устройство. Конечно, наилучший вариант будет использовать так называемый консистентный хэш. Если устройство его не поддерживает, то подойдет и L4 + L3 функция. Но тут еще следует учесть характер нагрузки. Если она представляет собой множество L4-сессий, то консистентный хеш необязателен. А если присутствует ограниченное количество тяжеловесных L3-сессий, идущих на один адрес в ЦОД, то тут уже без консистентного хэширования не обойтись.


Итоги

Давайте подведем итог этой итерации построения нашей схемы. Какие требования к нашей топологии мы выполнили в этот раз?

  • трафик между филиалами должен проходить через централизованный межсетвой экран.

  • Шифрованный трафик между ЦОД и филиалами должен проходить через централизованный межсетвой экран.

  • Туннели должны терминироваться на одном IPsec-концентраторе.

  • Решение должно быть технически гибким и приземлять различные типы туннелей в различных конфигурациях (VTI, GRE…).

  • Решение должно быть гибким управляемым.

  • Решение должно поддерживать динамическую маршрутизацию.

  • Решение не должно вовлекать межсетевой экран в динамическую маршрутизацию.

  • Решение должно быть отказоустойчивым.

  • Решение не должно быть проприетарным.

    Мы увидели, что все решения, примененные в нашем концентраторе, не имеют привязки к одному вендору. Любая технология присутствует как минимум в современных ядрах Linux. Можем считать, что это требование мы закрыли.

  • Решение дожно быть масштабирумым.

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


Вместо послесловия

Уважаемые коллеги, на этом теоретический цикл статей завершен. Мы построили дизайн решения, которое не только отвечает всем изначально поставленным требованиям, но и обладает потенциалом для решения намного более сложных задач, чем те, которые мы с вами рассмотрели в этом цикле. Особенно хотелось бы отметить универсальность этого дизайна и его многовендорность. В сложной политической обстановке наших дней этот фактор может стать решающим. От себя могу добавить, что этот дизайн был опробован на платформах таких вендоров как Eltex, Juniper, ну и на классическом Linux маршрутизаторе.

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

Спасибо за внимание, и до новых встреч!


Навигация по циклу:

  1. Обзор IPsec

  2. Сегментирование на IPsec-хабе

  3. Эскалаторная топология

  4. Сложные сценарии

  5. Отказоустойчивость и динамическая маршрутизация

  6. Масштабирование и распределение нагрузки

Теги:
Хабы:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Публикации

Информация

Сайт
1cupis.ru
Дата регистрации
Дата основания
2015
Численность
201–500 человек
Местоположение
Россия