Балансировка кластера NGFW: 5 особенностей, которые важно учитывать при построении высокопроизводительной инфраструктуры

от автора

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

NGFW как ключевой элемент контроля межсегментного взаимодействия в корпоративных сетях

Сегментация является одним из базовых принципов обеспечения безопасности в современных корпоративных сетях. Разделение инфраструктуры на отдельные сегменты позволяет изолировать ресурсы с различным уровнем доверия и локализовать последствия компрометации отдельных узлов или сервисов.

По мере роста корпоративной инфраструктуры количество сегментов увеличивается и в крупных организациях может достигать нескольких десятков и даже сотен. В большинстве корпоративных сетей основным механизмом логического разделения остаются виртуальные локальные сети (VLAN), которые позволяют создавать большое количество изолированных сегментов внутри единой сетевой инфраструктуры. Именно поэтому в большинстве проектов контроль межсегментного взаимодействия строится на уровне VLAN.

При этом отдельные сегменты должны взаимодействовать между собой. Нормативные документы ФСТЭК России предусматривают контроль взаимодействия между сегментами с использованием средств межсетевого экранирования. На практике эту функцию обычно выполняют межсетевые экраны нового поколения (NGFW), через которые проходит весь межсегментный трафик, к которому применяются политики безопасности.

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

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

Если вам нужно глубже погрузиться в тему контроля доступа с использованием NGFW, рекомендуем книгу Евгения Олькова «Архитектура защищенных сетей», а мы перейдем к вопросу, зачем NGFW нужна балансировка.

Когда для NGFW требуется балансировка нагрузки

По мере развития корпоративной сети увеличивается не только количество сегментов, но и объем межсегментного трафика, проходящего через NGFW. Однако нагрузка на межсетевой экран определяется не только объемом обрабатываемого трафика.

Значительная часть современного сетевого трафика передается в зашифрованном виде, поэтому для анализа угроз межсетевому экрану зачастую необходимо выполнять SSL/TLS-инспекцию. Одновременно могут использоваться и другие ресурсоемкие функции безопасности: контроль приложений (L7 Firewall), система предотвращения вторжений (IPS), URL- и контентная фильтрация, сетевой антивирус и другие механизмы защиты.

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

Для увеличения производительности NGFW используются два подхода: вертикальное и горизонтальное масштабирование. Вертикальное масштабирование предполагает использование более производительной аппаратной платформы и ограничено самым мощным устройством в линейке конкретного производителя.

Если возможностей вертикального масштабирования становится недостаточно, применяется горизонтальное масштабирование — объединение нескольких NGFW в единый кластер с распределением пользовательского трафика между его узлами с помощью внешнего балансировщика нагрузки. Такой подход позволяет увеличивать производительность решения за счет добавления новых узлов кластера без изменения архитектуры сети и замены существующих межсетевых экранов на более производительные модели.

Особенности балансировки кластера NGFW

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

Прозрачная интеграция балансировщика нагрузки на канальном уровне (L2)

Как отмечалось выше, NGFW является ключевой точкой контроля межсегментного взаимодействия. На практике это обычно достигается за счет выполнения маршрутизации между VLAN (inter-VLAN routing) непосредственно на межсетевом экране. Благодаря этому весь межсегментный трафик проходит через NGFW, где к нему применяются политики безопасности.

Для наглядности рассмотрим упрощенный пример такой архитектуры. На рисунке ниже показана организация inter-VLAN routing для двух сетевых сегментов — пользовательского и серверного. Каждый сегмент представляет собой отдельную IP-подсеть, изолированную с помощью VLAN, а NGFW выступает в роли шлюза по умолчанию для соответствующих подсетей.

В данной архитектуре любое устройство, через которое проходит трафик между сетевыми сегментами и NGFW, должно оставаться прозрачным для VLAN и не изменять существующую схему межсегментного взаимодействия. На приведенной схеме таким устройством является коммутатор, который обеспечивает только L2-коммутацию и передает по trunk-соединению 802.1Q трафик нескольких VLAN на NGFW. На межсетевом экране для каждого VLAN настроен отдельный L3-интерфейс, выполняющий функции шлюза по умолчанию для соответствующей подсети.

Благодаря такой архитектуре при обращении пользователя из VLAN 10 к серверу из VLAN 30 весь межсегментный трафик проходит через межсетевой экран. Здесь выполняется маршрутизация между VLAN, а также применяются политики безопасности, определяющие, какие соединения разрешены, а какие должны быть заблокированы. Таким образом, именно NGFW становится единой точкой контроля всего межсегментного взаимодействия.

Пример inter-VLAN routing для двух сегментов

Пример inter-VLAN routing для двух сегментов

Теперь представим, что объем межсегментного трафика увеличивается настолько, что производительности одного NGFW становится недостаточно. Как было рассмотрено в предыдущем разделе, в этом случае применяется горизонтальное масштабирование — объединение нескольких NGFW в единый кластер с распределением пользовательского трафика между его узлами с помощью балансировщика нагрузки.

При этом появление балансировщика не должно изменять существующую архитектуру сети. Подобно коммутатору, показанному на схеме, он должен обеспечить прозрачную передачу трафика всех используемых VLAN.

Другими словами, балансировщик в данной схеме должен работать в L2-режиме. Он не участвует в маршрутизации между VLAN, не становится шлюзом ни для одной из подсетей и не требует создания собственных L3-интерфейсов для обработки пользовательского трафика.

Такой подход позволяет масштабировать производительность NGFW без изменения архитектуры сети. Все изменения, связанные с добавлением новых VLAN или изменением существующих сегментов, вносятся только в конфигурацию коммутаторов и NGFW. Балансировщик остается прозрачным элементом инфраструктуры и не требует изменения схемы адресации или настройки маршрутизации.

Поддержка MC-LAG для отказоустойчивой интеграции балансировщиков

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

Для решения этой задачи, как правило, используются два балансировщика, работающих в связке с использованием технологии MC-LAG (Multi-Chassis Link Aggregation Group). Такой подход позволяет резервировать как сами балансировщики, так и каналы связи между балансировщиками и узлами кластера NGFW.

На рисунке ниже показано подключение пары балансировщиков к кластеру из четырех NGFW. Подобная архитектура может использоваться, например, для контроля взаимодействия между сегментами корпоративной сети, рассмотренного в предыдущем разделе.

Технология MC-LAG используется как для резервирования самих балансировщиков, так и для резервирования их соединений с узлами кластера NGFW. Рассмотрим оба сценария подробнее.

Резервирование балансировщиков и каналов связи с NGFW с помощью MC-LAG

Резервирование балансировщиков и каналов связи с NGFW с помощью MC-LAG

Резервирование балансировщиков нагрузки

Подключенный коммутатор взаимодействует с парой балансировщиков как с единым логическим устройством. Это достигается за счет использования технологии MC-LAG, которая позволяет сохранить существующую схему подключения и избежать изменений сетевой топологии при отказе одного из балансировщиков.

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

Резервирование каналов связи между балансировщиками и NGFW

Помимо резервирования самих балансировщиков необходимо обеспечить отказоустойчивость их подключений к узлам кластера NGFW. Для этого каждый межсетевой экран подключается к обоим балансировщикам отдельными физическими соединениями, объединенными с использованием технологии MC-LAG.

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

Обеспечение симметричной обработки сетевых сессий

Одним из ключевых механизмов современных межсетевых экранов нового поколения является Stateful Packet Inspection (SPI) — инспекция сетевых пакетов с учетом состояния сетевых соединений. NGFW анализирует трафик в контексте всей сетевой сессии, отслеживая ее состояние от момента установления соединения до его завершения.

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

По этой причине при балансировке кластера NGFW необходимо обеспечить постоянную привязку сетевой сессии (Sticky Session) к одному узлу кластера. Это означает, что как прямой, так и обратный трафик одного соединения должен обрабатываться одним и тем же NGFW на протяжении всего времени существования сессии. В противном случае прямой и обратный трафик одной сессии могут попасть на разные узлы кластера NGFW. В результате нарушается симметрия обработки соединения: один из узлов не располагает информацией о состоянии сессии, созданной на другом узле, что может привести к повторной проверке или отклонению трафика в соответствии с политикой безопасности.

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

Наиболее распространенным вариантом является хэширование на основе 5-tuple — комбинации из IP-адресов источника и назначения, портов источника и назначения, а также номера транспортного протокола (TCP, UDP и др.). Такой подход позволяет однозначно определить узел кластера для каждого сетевого соединения и гарантирует, что все пакеты одной TCP- или UDP-сессии будут переданы одному и тому же NGFW.

Несмотря на то что хэширование по 5-tuple является наиболее распространенным вариантом, на практике требования различных приложений могут отличаться. Некоторые протоколы используют несколько связанных между собой TCP- или UDP-соединений, которые желательно обрабатывать на одном узле кластера NGFW. Кроме того, при обработке фрагментированного IP-трафика использование хэширования по 5-tuple может быть невозможно, поскольку не все фрагменты содержат информацию транспортного уровня.

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

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

Для предотвращения подобных ситуаций применяется консистентное хэширование (Consistent Hashing). Его особенность заключается в том, что при отказе узла или его возвращении в кластер перераспределяются только те сессии, которые были закреплены за данным NGFW. Все остальные активные соединения продолжают обрабатываться теми же узлами кластера, что позволяет сохранить большинство пользовательских сессий без разрыва.

Использование консистентного хэширования позволяет минимизировать влияние изменений состава кластера на уже установленные соединения и обеспечить более предсказуемое поведение системы.

Варианты построения архитектуры балансировки кластера NGFW

Рассмотрим два наиболее распространенных варианта построения архитектуры балансировки кластера NGFW. Выбор конкретной схемы определяется требованиями к организации сетевой инфраструктуры и информационной безопасности.

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

Как показано на рисунке ниже, по обе стороны кластера из четырех NGFW размещены пары балансировщиков нагрузки, работающие в режиме Active–Standby. Балансировщики, расположенные слева от кластера, отвечают за распределение прямого трафика, а балансировщики справа — за обработку обратного трафика. Подключение балансировщиков к коммутаторам и каждому узлу кластера NGFW выполнено с использованием технологии MC-LAG, что обеспечивает резервирование как самих балансировщиков, так и всех каналов связи.

Балансировка кластера NGFW на двух парах балансировщиков

Балансировка кластера NGFW на двух парах балансировщиков

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

В архитектурах, где отсутствуют требования к физическому разделению точек подключения сегментов сети, может использоваться одна пара балансировщиков нагрузки. В этом случае порты каждого балансировщика логически разделяются на две группы: к одной подключаются внутренние интерфейсы всех узлов NGFW, а к другой — внешние. Благодаря такой схеме каждый балансировщик одновременно распределяет как входящий, так и исходящий трафик, а механизм хэширования обеспечивает обработку обеих частей пользовательской сессии одним и тем же узлом кластера NGFW.

Контроль работоспособности кластера NGFW

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

Для этого балансировщик должен выполнять постоянный контроль состояния компонентов кластера с помощью механизмов Health Check. При обнаружении недоступности одного из NGFW или потери связи с ним балансировщик исключает соответствующее направление из распределения новых соединений и продолжает направлять трафик через работоспособные узлы и доступные каналы связи.

Таким образом, контроль состояния должен выполняться комплексно: необходимо проверять не только работоспособность узлов NGFW, но и доступность полного пути передачи трафика между балансировщиком и каждым узлом кластера.

Для такой проверки часто используется ICMP Echo Request (ping). Данный механизм не требует дополнительной настройки на стороне NGFW, имеет минимальную нагрузку и позволяет быстро определить наличие сетевой связности между балансировщиком и узлом кластера. Однако для корректного контроля всей цепочки подключения такие проверки должны выполняться с обеих сторон кластера NGFW — от каждого балансировщика, расположенного до и после межсетевых экранов. Это позволяет убедиться в доступности полного пути прохождения трафика и своевременно выявить отказ отдельных компонентов.

Контроль работоспособности кластера NGFW

Контроль работоспособности кластера NGFW

Важным параметром механизма Health Check является частота выполнения проверок. Чем чаще балансировщик выполняет контроль доступности узлов, тем быстрее может быть обнаружен отказ и выполнено переключение трафика. При этом необходимо учитывать нагрузку на инфраструктуру и выбирать параметры, обеспечивающие оптимальное соотношение между скоростью обнаружения отказа и количеством служебного трафика.

Кроме обнаружения отказов, механизм контроля должен поддерживать и обратный процесс — автоматическое возвращение узла в состав кластера после восстановления работоспособности. Например, после перезапуска NGFW балансировщик должен убедиться в доступности устройства и только после этого возобновить передачу на него пользовательского трафика.

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

Вместо заключения

В этой статье мы рассмотрели основные особенности балансировки кластера NGFW. Построение такой архитектуры предъявляет к балансировщику нагрузки ряд специфических требований, связанных с прозрачной интеграцией в существующую сетевую инфраструктуру, обеспечением симметричной обработки пользовательских сессий и контролем работоспособности кластера.

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

Если эта статья была вам полезна, будем рады видеть вас среди подписчиков нашего Telegram-канала.

ссылка на оригинал статьи https://habr.com/ru/articles/1065008/