Способ работы кластера шлюзов безопасности
METHOD FOR SECURITY GATEWAY CLUSTER OPERATION

Область техники, к которой относится изобретение
Предлагаемое изобретение относится к области сетевых технологий, программно-конфигурируемых сетей и защиты информации.
Уровень техники
Все больше современных коммутаторов поддерживают технологию Open-Flow и подобные ей открытые стандарты, позволяющие централизованно управлять (Control Plane) процессом обработки сетевого трафика (Forwarding Plane) на коммутаторах. Технология OpenFlow дает достаточно возможностей для создания балансировщика сетевого трафика, который бы позволил масштабировать сетевые функции шлюза безопасности почти линейно. К указанным сетевым функциям в первую очередь можно отнести: маршрутизацию, фильтрацию трафика, трансляцию IP-адресов, шифрование трафика. Задача создания кластера (горизонтального масштабирования) шлюзов безопасности является актуальной, а ее решение позволит минимизировать капитальные затраты при расширении канала связи между защищаемой сетью и внешним миром.
Известен метод балансировки нагрузки с использованием программно-конфигурируемых сетей, являющийся составной частью способа (патент РФ №2576488, приоритет от 17.02.2015 г.), согласно которому транзитная сеть, построенная на базе технологии программно-конфигурируемых сетей (ПКС), включает следующие основные компоненты: OpenFlow-коммутаторы (барьерные коммутаторы), серверы верификации приходящего извне сети трафика, контроллер ПКС, сервер аутентификации. Транзитная сеть является промежуточным звеном передачи пакетов между пользовательскими терминалами и защищаемыми серверами.
Структура контроллера включает в себя следующие блоки: блок сбора статистики, блок управления присутствием, блок генерации правил маршрутизации, блок переопределения адресов, коммутационный блок. Балансировка нагрузки осуществляется на основании статистики загрузки, которая собирается блоком сбора статистики путем опроса барьерных коммутаторов и серверов верификации через равные заданные промежутки времени. Статистические данные, получаемые контроллером от барьерных коммутаторов, представляют собой значения счетчиков входящих пакетов, а от серверов верификации - общая загрузка процессора и расход оперативной памяти. На основании этих данных реализуются методы равномерного распределения нагрузки, блок генерации правил маршрутизации генерирует правила маршрутизации и пересылает их на барьерные коммутаторы. Блок управления присутствием отвечает за отслеживание появления новых коммутаторов и серверов верификации в транзитной сети и перевод в «спящий» режим простаивающих серверов верификации. Блок реализует стратегию максимального использования ресурсов, смысл которой заключается в уплотнении задач верификации пакетов на серверах верификации и выведения из процесса простаивающего оборудования. Решение о переводе в «спящий» режим производится на основании статистики, получаемой от блока сбора статистики. Блок переназначения адреса используется при инициализации сети и отвечает за отправку барьерным коммутаторам команд на изменение своего IP-адреса.
Барьерные коммутаторы представляют собой управляемые коммутаторы, поддерживающие протокол OpenFlow 1.3, и включают следующие основные компоненты: репозиторий правил маршрутизации, блок управления пакетами, блок обработки команд от контроллера, блок переназначения адреса. Основная задача коммутаторов заключается в распределении входящих пакетов на сервера верификации на основании правил, содержащихся в репозиторий правил маршрутизации. Блок обработки команд является центральным в структуре коммутатора и предназначен для обработки управляющих команд от контроллера ПКС.
Принцип работы транзитной сети заключается в следующем. Пользовательский терминал посылает сетевой пакет одному из барьерных коммутаторов. Пусть среди правил маршрутизации барьерного коммутатора отсутствует правило для обработки пакетов от данного пользовательского терминала. В результате, коммутатор отсылает заголовок пакета контроллеру. Сам пакет сохраняется на барьерном коммутаторе в ожидании управляющих команд от контроллера. Последний принимает пакет и, опираясь на статистику загрузки серверов верификации, генерирует правило маршрутизации, согласно которому все пакеты, приходящие от данного пользовательского терминала, будут перенаправляться соответствующему серверу верификации. Данное правило по каналу управления передается коммутатору. После этого сохраненные в кэше коммутатора пакеты потока отправляются выбранному серверу верификации. Далее выполняется анализ пакета на сервере верификации и, в случае его легитимности, дальнейшая маршрутизация пакета целевому защищаемому серверу. Обратный трафик от сервера возвращается пользовательскому терминалу по тому же самому маршруту.
Описанный способ имеет следующие недостатки:
• не масштабирует такие сетевые функции, как: трансляция IP-адресов, шифрование трафика;
• не предусматривает алгоритм инициации соединений из защищаемой сети во внешние сети.
Известен способ создания защищенного L2-соединения между сетями с коммутацией пакетов (патент РФ №2694585, приоритет от 11.10.2018 г.), согласно которому в соединяемых сетях установлены: управляемые коммутаторы, контроллер, криптографические маршрутизаторы (криптомаршрутизаторы), рабочие станции. В задачи управляемых коммутаторов помимо прочего входит: обмен управляющими сообщениями с контроллером по установленному протоколу управления, хранение в оперативной памяти трех таблиц потоков и выполнение обработки сетевых пакетов по этим таблицам. В задачи контроллера помимо прочего входит: формирование таблиц потоков, обмен управляющими сообщениями с коммутаторами по установленному протоколу управления, запрос и анализ информации от других сетевых устройств. В задачи криптографических маршрутизаторов помимо прочего входит: загрузка ключевой информации; маршрутизация, шифрование и расшифрование сетевых пакетов; ответы на запросы информации от контроллера. Каждый криптографический маршрутизатор обладает уникальным ключевым набором и туннелируемым диапазоном IP-адресов. После первичной настройки всех устройств и загрузки на коммутаторы таблиц потоков с начальными статическими правилами начинается обмен полезным трафиком между сетями и дальнейшее построение таблиц потоков на основании анализа этого трафика.
Описанный способ базируется на технологии программно-конфигурируемых сетей и может быть реализован с использованием протокола OpenFlow. Также способ позволяет обслуживать случаи миграции виртуальных машин между сетями благодаря использованию таймаута неактивности правил коммутации, динамически устанавливаемых в таблицы потоков, распределяющих трафик коммутаторов.
Этот способ принимается в качестве прототипа. Однако, известный способ имеет следующие недостатки:
• не предусмотрено масштабирование такой сетевой функции, как трансляция IP-адресов;
• используется три таблицы потоков, что снижает скорость обработки сетевых пакетов в коммутаторах;
• не описан алгоритм взаимодействия криптомаршрутизаторов и внешних защищенных конечных устройств (клиентов).
Раскрытие изобретения
Техническим результатом является:
1) обеспечение возможности работы кластера шлюзов безопасности для одновременного масштабирования сетевых функций: маршрутизация, фильтрация сетевых пакетов, трансляция IP-адресов, шифрование трафика;
2) увеличение скорости обработки сетевых пакетов в коммутаторе за счет использования только одной таблицы потоков;
3) обеспечение возможности защищенного взаимодействия кластера, как с внешними шлюзами безопасности, так и с защищенными клиентами.
Для этого предлагается способ работы кластера шлюзов безопасности, установленного между защищаемой и внешней сетями, причем кластер включает:
• коммутатор, подключенный к защищаемой сети (сеть 1), внешней сети (сеть 2), внутренней локальной сети цифровой передачи служебных данных кластера (служебная сеть) и выполненный с возможностью:
принимать и посылать сетевые пакеты;
обмениваться по служебной сети управляющими сообщениями по установленному протоколу управления;
вычислять значение хеш-функции от параметров: IP-адрес отправителя пакета, IP-адрес получателя пакета (кортеж пакета) и на основании этого значения вычислять номер порта из заданного диапазона портов;
хранить в оперативной памяти одну таблицу потоков и выполнять обработку сетевых пакетов при помощи этой таблицы;
• по крайней мере, два шлюза безопасности (ШБ), подключенные к коммутатору и к служебной сети;
причем каждый ШБ имеет в составе, по крайней мере, один процессор и выполнен с возможностью:
• принимать и посылать сетевые пакеты;
• загружать ключевую информацию;
• настраивать на сетевых интерфейсах IP-адреса и МАС-адреса;
• настраивать диапазоны туннелируемых IP-адресов;
• выполнять сетевые функции маршрутизации и фильтрации сетевых пакетов данных, трансляцию IP-адресов и шифрование трафика;
• обмениваться контекстами своих соединений с другими ШБ на основании данных из заголовков сетевых пакетов;
• выполнять функцию контроллера кластера (контроллер), обеспечивающую возможность:
анализировать заголовки сетевых пакетов;
формировать правила обработки сетевых пакетов;
обмениваться по служебной сети управляющими сообщениями с коммутатором и другими ШБ по установленным протоколам управления;
способ заключается в том, что:
• формируют ключевую информацию для ШБ;
• выделяют:
два IP-адреса (из сети 1, из сети 2) для всех ШБ;
два МАС-адреса для всех ШБ;
диапазоны туннелируемых шлюзами безопасности IP-адресов;
один IP-адрес (из служебной сети) для каждого устройства кластера;
по крайней мере, семь физических портов (портов) на коммутаторе: один порт для подключения сети 1 (порт сети 1), один порт для подключения сети 2 (порт сети 2), два порта для подключения каждого ШБ, один порт для подключения служебной сети;
диапазон портов транспортного уровня (транспортных портов) для использования во внешних заголовках зашифрованного трафика (диапазон транспортных портов зашифрованного трафика);
уникальный диапазон транспортных портов для каждого ШБ (диапазон транспортных портов ШБ);
шесть уровней приоритета для правил таблицы потоков коммутатора, с условной нумерацией от 1 до 6, причем, при выполнении для сетевого пакета одновременно нескольких правил, выбор правила осуществляют следующим образом:
если правила имеют разный приоритет, то используют правило с большим приоритетом (большим числом);
если правила имеют одинаковый приоритет, то используют правило, которое было добавлено в таблицу потоков ранее;
• формируют правила фильтрации трафика и правила трансляции IP-адресов для ШБ;
• выбирают ШБ, который будет выполнять роль ведущего ШБ кластера (ВШБ) и контроллера;
• выбирают выделенный ШБ, отличный от ВШБ, который будет обрабатывать пакеты, имеющие транспортный протокол, отличный от TCP/UDP;
• формируют набор статических правил обработки сетевых пакетов для коммутатора;
• включают все ШБ;
• выполняют на каждом ШБ следующие действия:
загружают ключевую информацию;
настраивают IP-адреса и МАС-адреса;
настраивают диапазоны туннелируемых IP-адресов;
настраивают правила фильтрации трафика и правила трансляции IP-адресов;
• настраивают на всех ШБ, кроме ВШБ, IP-адрес ВШБ из служебной сети;
• задают в конфигурационном файле ВШБ промежуток времени неактивности динамических правил обработки сетевых пакетов (таймаут неактивности);
• включают коммутатор;
• настраивают на коммутаторе собственный IP-адрес из служебной сети, а также IP-адрес ВШБ из служебной сети;
• регистрируют коммутатор в контроллере;
• загружают в таблицу потоков коммутатора следующий набор статических правил обработки сетевых пакетов для масштабирования функций маршрутизации и фильтрации пакетов:
все пакеты, принятые в порту сети 1 и имеющие IP-адрес получателя, равный IP-адресу ШБ из сети 1, и транспортный протокол, и транспортный порт получателя, соответствующие сервису, который должен выполняться в ВШБ, отправлять в ВШБ (приоритет 6);
все пакеты, принятые в порту сети 2 и имеющие IP-адрес получателя, равный IP-адресу ШБ из сети 2, и транспортный протокол, и транспортный порт получателя, соответствующие сервису, который должен выполняться в ВШБ, отправлять в ВШБ (приоритет 6);
все пакеты, принятые в порту сети 1 и имеющие транспортный протокол отличный от TCP/UDP, отправлять в выделенный для таких пакетов ШБ (приоритет 3);
все пакеты, принятые в порту сети 2 и имеющие транспортный протокол отличный от TCP/UDP, отправлять в выделенный для таких пакетов ШБ (приоритет 3);
все пакеты протокола ARP, принятые в порту сети 1, отправлять широковещательно во все ШБ (приоритет 3);
все пакеты протокола ARP, принятые в порту сети 2, отправлять широковещательно во все ШБ (приоритет 3);
все широковещательные пакеты, принятые в порту сети 1, отправлять широковещательно во все ШБ (приоритет 3);
все широковещательные пакеты, принятые в порту сети 2, отправлять широковещательно во все ШБ (приоритет 3);
все мультикаст-пакеты, принятые в порту сети 1, отправлять широковещательно во все ШБ (приоритет 3);
все мультикаст-пакеты, принятые в порту сети 2, отправлять широковещательно во все ШБ (приоритет 3);
все пакеты, принятые в порту сети 1, отправлять в ШБ на основании значения хэш-функции от кортежа пакета (приоритет 2);
все пакеты, принятые в порту сети 2, отправлять в ШБ на основании значения хэш-функции от кортежа пакета (приоритет 2);
все пакеты, полученные от сетевых интерфейсов ШБ, принадлежащих сети 1, отправлять в порт сети 1 (приоритет 2);
все пакеты, полученные от сетевых интерфейсов ШБ, принадлежащих сети 2, отправлять в порт сети 2 (приоритет 2);
все пакеты отбрасывать (приоритет 1);
• загружают в таблицу потоков коммутатора следующий набор статических правил обработки сетевых пакетов для масштабирования функции трансляция IP-адресов:
все пакеты, принятые в порту сети 1 и имеющие IP-адрес отправителя из диапазона частных адресов, для которых должна выполняться трансляция Source NAT (SNAT), и транспортный порт отправителя из диапазона транспортных портов ШБ, отправлять в ШБ, которому принадлежит указанный диапазон транспортных портов (приоритет 4);
все пакеты, принятые в порту сети 2 и имеющие IP-адрес получателя равный IP-адресу ШБ из сети 2, который используется в правилах трансляции SNAT, и транспортный порт получателя из диапазона транспортных портов ШБ, отправлять в ШБ, которому принадлежит указанный диапазон транспортных портов (приоритет 4); все пакеты, принятые в порту сети 2 и имеющие параметры: IP-адрес получателя, транспортный протокол, транспортный порт получателя, равные указанным в правилах трансляции Destination NAT (DNAT), отправлять в ШБ, в диапазон транспортных портов которого попадает транспортный порт отправителя пакета (приоритет 4);
все пакеты, принятые в порту сети 1 и имеющие параметры: IP-адрес отправителя, транспортный протокол, транспортный порт отправителя, равные указанным в правилах трансляции DNAT, отправлять в ШБ, в диапазон транспортных портов которого попадает транспортный порт получателя пакета (приоритет 4);
• загружают в таблицу потоков коммутатора набор статических правил обработки сетевых пакетов для масштабирования функции шифрования трафика:
все пакеты, принятые в порту сети 2 и имеющие IP-адрес получателя, равный IP-адресу ШБ из сети 2 и транспортный порт получателя из диапазона транспортных портов зашифрованного трафика, отправлять в ШБ на основании значения хэш-функции от кортежа пакета (приоритет 5);
• включают кластер в рабочий режим для обработки трафика между сетями 1 и 2;
• если в порт сети 1 коммутатора получают открытый пакет, для которого в ШБ должна быть выполнена трансляция SNAT, и транспортный порт отправителя которого оказался в диапазоне транспортных портов зашифрованного трафика, то выполняют следующие действия:
передают пакет в ШБ, выбранный на основании значения хэш-функции от кортежа пакета;
в выбранном ШБ транслируют IP-адрес отправителя пакета согласно правилу трансляции SNAT, а также транспортный порт отправителя пакета таким образом, чтобы новый транспортный порт отправителя был первым по порядку свободным портом из диапазона транспортных портов выбранного ШБ;
после обработки пакета в выбранном ШБ отправляют пакет в коммутатор и далее по назначению в сеть 2;
• если в порт сети 2 коммутатора получают зашифрованный пакет от защищенного узла сети 2, то выполняют следующие действия:
передают пакет в ШБ, выбранный на основании значения хэш-функции от кортежа пакета;
расшифровывают пакет в выбранном ШБ;
если пакет является первым пакетом нового потока от защищенного узла, и для него не существует контекст соединения в выбранном ШБ, то выполняют следующие действия:
если выбранный ШБ не является ВШБ, то по служебной сети передают информацию о пакете в ВШБ;
анализируют заголовки пакета в контроллере;
если IP-адрес отправителя внутреннего заголовка пакета является адресом защищенного узла, то с помощью контроллера добавляют в таблицу потоков коммутатора следующее правило с тай-маутом неактивности:
все пакеты, принятые в порту сети 1 и имеющие IP-адрес получателя, равный адресу защищенного узла из сети 2, отправлять в выбранный ШБ, в который ранее пришел пакет от этого защищенного узла (приоритет 5);
если IP-адрес отправителя внутреннего заголовка пакета является адресом туннелируемого ресурса защищенного узла, то с помощью контроллера добавляют в таблицу потоков коммутатора правило с таймаутом неактивности:
все пакеты, принятые в порту сети 1 и имеющие IP-адрес получателя из туннелируемого диапазона защищенного узла из сети 2, отправлять в выбранный ШБ, в который ранее пришел пакет от этого защищенного узла (приоритет 5);
проверяют с помощью контроллера, существует ли на каком-либо ШБ, отличном от выбранного ШБ, принявшего пакет, контекст соединения для потока пакетов из сети 1 к данному защищенному узлу или его туннелируемому ресурсу;
если контекст соединения существует, то с помощью контроллера передают по служебной сети команду переслать контекст соединения на выбранный ШБ, принявший пакет; иначе в выбранном ШБ, принявшем пакет, создают контекст соединения с тай-маутом неактивности, равным таймауту неактивности динамических правил в таблице потоков коммутатора;
после обработки пакета в выбранном ШБ отправляют пакет в коммутатор и далее по назначению в сеть 1.
Отличительные особенности предложенного способа заключаются в следующем.
Предложенный способ, помимо прочего, использует технологию ПКС, согласно которой логика обработки трафика выносится в централизованный контроллер, а коммутаторы заняты только коммутацией потоков трафика на основании таблиц потоков, загружаемых в них контроллером по установленному протоколу управления (например, OpenFlow).
В предложенном способе все шлюзы безопасности имеют идентичные IP-адреса, МАС-адреса, ключевые наборы, диапазоны туннелируемых IP-адресов, настройки межсетевого экрана, правила трансляции IP-адресов. Исключение составляют IP-адреса и МАС-адреса интерфейсов, подключенных к служебной сети кластера, которые должны быть уникальны в пределах своей локальной сети.
Распределение сетевых пакетов в коммутаторе происходит на основании результата хеш-функции от кортежа (набор данных, в состав которых входит IP-адрес отправителя, IP-адрес получателя) заголовка пакета (кортеж пакета), а также на основании статических и динамических правил коммутации.
Максимальное количество объединяемых в кластер шлюзов безопасности зависит только от количества свободных портов в коммутаторе.
Для реализации способа на одном шлюзе безопасности должна быть активна функция контроллер. Также все шлюзы безопасности должны поддерживать функцию передачи контекстов соединений между собой. Под контекстом соединения подразумевается результат обработки первых пакетов соединения в шлюзе безопасности.
Коммутатор выполняет только коммутацию сетевых пакетов с помощью таблицы потоков без какой-либо модификации заголовков пакетов. Все остальные манипуляции с пакетами выполняются в шлюзах безопасности.
Контроллеры двух взаимодействующих кластеров работают независимо друг от друга и управляют только устройствами своего кластера.
Максимальное количество внешних защищенных узлов и туннелируемых ресурсов, с которыми может одновременно взаимодействовать кластер, зависит от максимальной емкости таблицы потоков коммутатора, в которую добавляются динамические правила для узлов защищенной сети.
Шлюзы безопасности кластера могут быть разных моделей, разной производительности, иметь разные версии операционной системы. Главное требование - возможность загрузить на все шлюзы безопасности кластера один ключевой набор.
Шлюзы безопасности кластера могут взаимодействовать друг с другом только по служебной сети. Все остальные коммуникации между ними запрещены.
Следующие подготовительные действия и настройки в шлюзах безопасности и коммутаторе выполняют стандартным для сетевых устройств образом:
• формирование и настройка правил фильтрации сетевых пакетов и правил трансляции IP-адресов;
• формирование и загрузка ключевой информации;
• выделение и настройка на сетевых интерфейсах IP и МАС-адресов;
• выделение и настройка диапазонов туннелируемых IP-адресов;
• настройка служебного IP-адреса контроллера.
Один из шлюзов безопасности кластера выполняет функцию ведущего шлюза безопасности и контроллера. Выбор ведущего шлюза безопасности осуществляют по следующему алгоритму:
• выбирают шлюз безопасности, обладающий наиболее мощным процессором;
• если на всех шлюзах безопасности установлены одинаковые процессоры, то выбирают шлюз безопасности, обладающий наибольшим количеством оперативной памяти;
• если на всех шлюзах безопасности установлено одинаковое количество оперативной памяти, то выбирают шлюз безопасности, на котором используется операционная система наиболее поздней версии;
• если на всех шлюзах безопасности используется одинаковая операционная система одной и той же версии, то выбирают шлюз безопасности, подключенный к порту коммутатора с наименьшим номером.
В случае, когда контроллер добавляет в таблицу потоков коммутатора динамическое правило коммутации пакетов, для данного правила устанавливают тай-маут неактивности - промежуток времени, после которого правило удаляется из таблицы потоков, если в течение этого времени не было ни одного сетевого пакета, обработанного данным правилом. Таймаут неактивности настраивают в конфигурационном файле ведущего шлюза безопасности на этапе инициализации кластера.
Заявленный технический результат достигается благодаря следующему:
клиентские порты транспортного уровня разделены на следующие непересекающиеся диапазоны: диапазон портов защищенного трафика, диапазон портов каждого шлюза безопасности, указанные диапазоны используются в правилах таблицы потоков коммутатора для классификации сетевых пакетов и в результате корректной коммутации;
в части правил таблицы потоков коммутатора для выбора порта для отправки пакета используется хеш-функция от кортежа пакета, что сокращает количество правил, необходимых для реализации способа;
используются 6 уровней приоритета правил для таблицы потоков коммутатора;
для реализации функций Source NAT и Destination NAT используются независимые друг от друга алгоритмы;
для коммутации пакетов от туннелируемых ресурсов внешних шлюзов безопасности и защищенных клиентов используются правила с различными критериями отбора пакетов.
Краткое описание чертежей
На фигуре графического изображения приведена схема кластера шлюзов безопасности, соединяющего две сети. Используются следующие обозначения:
1 - внутренняя (защищаемая) сеть,
2 - внешняя (открытая) сеть,
3 - служебная сеть кластера,
4 - коммутатор,
5, 6 - шлюзы безопасности.
Осуществление изобретения
Предлагаемый способ может быть реализован в следующей программно-аппаратной среде.
В качестве коммутатора 4 может быть использован любой L2-коммутатор, имеющий достаточное количество портов требуемой емкости, поддерживающий функцию коммутации сетевых пакетов на основании хеш-функции от кортежа (IP-адрес отправителя, IP-адрес получателя) заголовка пакета, поддерживающий технологию удаленного управления и формирования таблиц потоков со стороны внешнего контроллера (например, технологию OpenFlow). Для создания кластера на коммутаторе 4 требуются следующие порты:
• порты 1/10G для подключения шлюзов безопасности - 2*N шт., где N - количество шлюзов безопасности кластера;
• порты 10/25/40/100G для подключения к внутренней и внешней сетям - 2 шт.;
• порт 1G для подключения к служебной сети - 1 шт.
Варианты коммутаторов, которые могут быть использованы для создания коммутатора 4, могут быть выбраны среди готовых изделий (например, материал по адресу: https://www.nvidia.com/en-us/networking/ethemet-switching/).
Программно-аппаратное обеспечение шлюзов безопасности 5-6 может быть различным, так как предлагаемый способ не привязан к шлюзам безопасности конкретной модели или производительности. Специфические требования заключаются в том, что шлюз безопасности должен поддерживать функцию контроллер кластера и возможность передачи контекстов соединений другим шлюзам безопасности кластера. Также, для создания кластера на каждом шлюзе безопасности требуются следующие порты:
• порты 1/10G для подключения к коммутатору 4-2 шт.;
• порт 1G для подключения к служебной сети - 1 шт.
Варианты шлюзов безопасности, которые могут быть использованы в предлагаемой схеме, могут быть выбраны среди готовых изделий (например, материал по адресу: https://infotecs.ru/product/setevye-komponenty/vipnet-coordinator-hw/).
На фигуре графического изображения представлена схема кластера шлюзов безопасности, соединяющего внутреннюю защищенную сеть 1 и внешнюю открытую сеть 2.
Внутренняя сеть 1 может быть представлена корпоративной сетью или сетью ЦОД. Внешняя сеть 2 может быть представлена сетью Интернет. Сеть 3 является изолированной служебной сетью кластера и служит только для служебных коммуникаций внутри кластера. Как в сети 1, так и в сети 2 могут располагаться открытые и защищенные узлы, а также туннелируемые ресурсы (в сети 2 за другим шлюзом безопасности), коммуникации между которыми осуществляются через кластер.
Каждый шлюз безопасности 5, 6 подключен к коммутатору 4 при помощи двух портов. Все шлюзы безопасности и коммутатор подключены к служебной сети 3.
Далее рассмотрим вариант реализации способа.
1. В качестве коммутатора 4 может быть выбран коммутатор Mellanox SN2410 (https://www.mellanox.com/related-docs/prod_eth_switches/PB_SN2410.pdf), который обладает всем необходимым для реализации способа функционалом, а также поддерживает протокол OpenFlow 1.3 для управления со стороны внешнего контроллера. Сформировать конфигурацию коммутатора, необходимую для реализации способа, может специалист (инженер), компетентный в области сетевых технологий и программно-конфигурируемых сетей.
2. В качестве шлюзов безопасности 5-6 может быть выбран шлюз безопасности ViPNet Coordinator HW1000 Q6 (https://infotecs.ru/product/vipnet-coordinator-hw-4.html#soft, раздел Модификации) с усовершенствованной операционной системой для выполнения функции контроллер. Все остальные, необходимые для реализации способа функции, обеспечиваются стандартной операционной системой шлюза безопасности. Сформировать конфигурации шлюзов безопасности и программы, необходимые для реализации способа, может специалист в области программирования (программист), компетентный в области сетевых технологий и программно-конфигурируемых сетей.
3. Поскольку в предлагаемом способе все шлюзы безопасности используют идентичную ключевую информацию, необходимо с использованием внешней системы управления защищенной сетью ViPNet Administrator (https://infotecs.ru/product/vipnet-administrator-4-.html#docs) сформировать один набор ключевой информации. Данную задачу может выполнить специалист (инженер) в области защиты информации, технологии ViPNet и сетевых технологий.
4. В шлюзах безопасности 5, 6 (в таблице 1 и далее - ШБ1 и ШБ2 соответственно) и коммутаторе 4 порты выбираются согласно данным табл.1. Также выделяются IP и MAC адреса для тех портов, которые выполняют функцию интерфейсов сетевого уровня (сетевых интерфейсов).
5. Все шлюзы безопасности кластера имеют идентичные диапазоны туннелируемых IP-адресов (туннелируемые диапазоны). В качестве туннелируемого диапазона ШБ1 и ШБ2 выбираются IP-адреса: 192.168.1.2-192.168.1.254.
6. В качестве диапазона портов транспортного уровня (транспортных портов) для использования во внешних заголовках зашифрованного трафика выбираются порты: 55701-55800.
7. В качестве диапазона транспортных портов ШБ1 выбираются порты: 1024-33229.
8. В качестве диапазона транспортных портов ШБ2 выбираются порты: 33230-55700, 55801-65535.
9. Правила фильтрации трафика формируются стандартным образом и полностью определяются политикой безопасности сети 1.
10. В качестве правила трансляции IP-адресов Source NAT (SNAT) используется правило: транслировать все IP-адреса отправителя из диапазона 192.168.1.2-192.168.1.254 в один внешний адрес шлюзов безопасности 192.168.2.1. При этом в таблицу трансляций также заносится транспортный порт отправителя пакета (технология Port Address Translation).
11. Правила трансляции IP-адресов Destination NAT (DNAT) формируются стандартным образом и полностью определяются структурой сети 1 и назначением ее хостов. В правилах используется внешний адрес шлюзов безопасности 192.168.2.1.
12. Поскольку в данном примере все шлюзы безопасности имеют одинаковую программно-аппаратную конфигурацию, на роль ведущего шлюза безопасности (ВШБ) кластера и контроллера выбирается шлюз, подключенный к порту коммутатора с наименьшим номером, т.е. ШБ1.
13. Для обработки сетевых пакетов, имеющих транспортный протокол, отличный от TCP/UDP, выбирается шлюз, отличный от ВШБ, т.е. ШБ2.
14. Формируется набор статических правил обработки сетевых пакетов в коммутаторе:
а. для масштабирования функций маршрутизации и фильтрации пакетов:
все пакеты, принятые в порту 31 и имеющие IP-адрес получателя, равный 192.168.1.1, и транспортный протокол, и транспортный порт получателя, соответствующие сервису, который должен выполняться в ВШБ, отправлять в порт 34 (приоритет 6);
все пакеты, принятые в порту 32 и имеющие IP-адрес получателя, равный 192.168.2.1, и транспортный протокол, и транспортный порт получателя, соответствующие сервису, который должен выполняться в ВШБ, отправлять в порт 35 (приоритет 6);
все пакеты, принятые в порту 31 и имеющие транспортный протокол отличный от TCP/UDP, отправлять в порт 36 (приоритет 3);
все пакеты, принятые в порту 32 и имеющие транспортный протокол отличный от TCP/UDP, отправлять в порт 37 (приоритет 3);
все пакеты протокола ARP, принятые в порту 31, отправлять широковещательно в порты 34, 36 (приоритет 3);
все пакеты протокола ARP, принятые в порту 32, отправлять широковещательно в порты 35, 37 (приоритет 3);
все широковещательные пакеты, принятые в порту 31, отправлять широковещательно в порты 34, 36 (приоритет 3);
все широковещательные пакеты, принятые в порту 32, отправлять широковещательно в порты 35, 37 (приоритет 3);
все мультикаст-пакеты, принятые в порту 31, отправлять широковещательно в порты 34, 36 (приоритет 3);
все мультикаст-пакеты, принятые в порту 32, отправлять широковещательно в порты 35, 37 (приоритет 3);
все пакеты, принятые в порту 31, отправлять в порт на основании значения хэш-функции от кортежа пакета (приоритет 2);
все пакеты, принятые в порту 32, отправлять в порт на основании значения хэш-функции от кортежа пакета (приоритет 2);
все пакеты, принятые в портах 34, 36, отправлять в порт 31 (приоритет 2);
все пакеты, принятые в портах 35, 37, отправлять в порт 32 (приоритет 2);
все пакеты отбрасывать (приоритет 1);
b. для масштабирования функции трансляция IP-адресов:
все пакеты, принятые в порту 31 и имеющие IP-адрес отправителя из диапазона 192.168.1.2-192.168.1.254, и транспортный порт отправителя из диапазона 1024-33229, отправлять в порт 34 (приоритет 4);
все пакеты, принятые в порту 31 и имеющие IP-адрес отправителя из диапазона 192.168.1.2-192.168.1.254, и транспортный порт отправителя из диапазона 33230-55700, 55801-65535, отправлять в порт 36 (приоритет 4);
все пакеты, принятые в порту 32 и имеющие IP-адрес получателя 192.168.2.1 и транспортный порт получателя из диапазона 1024-33229, отправлять в порт 35 (приоритет 4);
все пакеты, принятые в порту 32 и имеющие IP-адрес получателя 192.168.2.1 и транспортный порт получателя из диапазона 33230-55700, 55801-65535, отправлять в порт 37 (приоритет 4);
все пакеты, принятые в порту 32 и имеющие IP-адрес получателя 192.168.2.1, транспортный протокол и транспортный порт получателя, равные указанным в правилах трансляции DNAT, и транспортный порт отправителя пакета из диапазона 1024-33229, отправлять в порт 35 (приоритет 4);
все пакеты, принятые в порту 32 и имеющие IP-адрес получателя 192.168.2.1, транспортный протокол и транспортный порт получателя, равные указанным в правилах трансляции DNAT, и транспортный порт отправителя пакета из диапазона 33230-55700, 55801-65535, отправлять в порт 37 (приоритет 4);
все пакеты, принятые в порту 31 и имеющие параметры: IP-адрес отправителя, транспортный протокол, транспортный порт отправителя, равные указанным в правилах трансляции DNAT, и транспортный порт получателя пакета из диапазона 1024-33229, отправлять в порт 34 (приоритет 4);
все пакеты, принятые в порту 31 и имеющие параметры: IP-адрес отправителя, транспортный протокол, транспортный порт отправителя, равные указанным в правилах трансляции DNAT, и транспортный порт получателя пакета из диапазона 33230-55700, 55801-65535, отправлять в порт 36 (приоритет 4);
с. для масштабирования функции шифрования трафика:
все пакеты, принятые в порту 32 и имеющие IP-адрес получателя 192.168.2.1 и транспортный порт получателя из диапазона 55701-55800, отправлять в порт на основании значения хэш-функции от кортежа пакета (приоритет 5).
15. Включаются все шлюзы безопасности.
16. В каждом шлюзе безопасности загружается ключевая информация и настраиваются: IP и MAC адреса (согласно табл.1), диапазон туннелируемых IP-адресов, правила фильтрации пакетов и правила трансляции IP-адресов.
17. В ШБ1 в конфигурационном файле контроллера настраивается таймаут неактивности динамических правил коммутации, равный 5 мин, и запускается служба контроллер.
18. В ШБ2 настраивается IP-адрес ВШБ 172.16.1.1.
19. Включается коммутатор.
20. В коммутаторе настраивается собственный IP-адрес из сети 3 (согласно табл.1).
21. В коммутаторе в конфигурации OpenFlow-клиента настраивается IP-адрес контроллера 172.16.1.1.
22. Коммутатор автоматически регистрируется в контроллере.
23. В таблицу потоков коммутатора загружается сформированный набор статических правил обработки сетевых пакетов.
24. Кластер включается в рабочий режим для обработки трафика между сетями 1 и 2.
25. Если в порт 31 коммутатора получают открытый пакет, для которого в шлюзе безопасности должна быть выполнена трансляция SNAT, но транспортный порт отправителя которого оказался в диапазоне 55701-55800 (диапазон портов защищенного трафика), то выполняются следующие действия:
a. пакет передается в порт, выбранный на основании значения хэш-функции от кортежа пакета (предположим, был выбран порт 34, к которому подключен ШБ1);
b. в ШБ1 транслируется IP-адрес отправителя пакета согласно правилу трансляции SNAT, а также транспортный порт отправителя пакета таким образом, чтобы новый транспортный порт отправителя был первым по порядку свободным портом из диапазона 1024-33229;
c. после обработки в ШБ1 пакет отправляется в коммутатор и далее по назначению в сеть 2;
26. Если в порт 32 коммутатора получают зашифрованный пакет от защищенного клиента сети 2 (например, имеющего адрес 192.168.2.100) к хосту сети 1 (например, имеющему адрес 192.168.1.100), то выполняются следующие действия:
a. пакет передается в порт коммутатора (из группы: 35, 37), выбранный на основании значения хэш-функции от кортежа пакета (например, был выбран порт 37, к которому подключен ШБ2);
b. пакет передается в ШБ2 и там расшифровывается;
c. если пакет является первым пакетом нового потока от защищенного клиента с адресом 192.168.2.100 к хосту 192.168.1.100, и для него не существует контекст соединения в ШБ2, то выполняются следующие действия:
по служебной сети информация о пакете передается в ВШБ (ШБ1);
заголовки пакета анализируются в контроллере;
с помощью контроллера в таблицу потоков коммутатора добавляется следующее правило с таймаутом неактивности:
все пакеты, принятые в порту 31 и имеющие IP-адрес получателя 192.168.2.100, отправлять в порт 36 (приоритет 5);
с помощью контроллера проверяется, существует ли на ШБ1 контекст соединения для потока пакетов от хоста 192.168.1.100 к защищенному клиенту 192.168.2.100;
если контекст соединения существует, то с помощью контроллера он пересылается на ШБ2; иначе в ШБ2 создается новый контекст соединения с таймаутом неактивности, равным таймауту неактивности динамических правил в таблице потоков коммутатора;
d. после обработки в ШБ2 пакет отправляется в коммутатор и далее по назначению в сеть 1;
27. Если в порт 32 коммутатора получают зашифрованный пакет от туннелируемого ресурса внешнего шлюза безопасности из сети 2 (например, туннелируемый ресурс имеет адрес 10.1.1.5, шлюз безопасности имеет адрес 192.168.2.200 и туннелируемый диапазон 10.1.1.2-10.1.1.254) к хосту сети 1 (например, имеющему адрес 192.168.1.100), то выполняются следующие действия:
a. пакет передается в порт коммутатора (из группы: 35, 37), выбранный на основании значения хэш-функции от кортежа пакета (например, был выбран порт 37, к которому подключен ШБ2);
b. пакет передается в ШБ2 и там расшифровывается;
c. если пакет является первым пакетом нового потока от туннелируемого ресурса с адресом 10.1.1.5 к хосту 192.168.1.100, и для него не существует контекст соединения в ШБ2, то выполняются следующие действия:
по служебной сети информация о пакете передается в ВШБ (ШБ1);
заголовки пакета анализируются в контроллере;
с помощью контроллера в таблицу потоков коммутатора добавляется следующее правило с таймаутом неактивности:
все пакеты, принятые в порту 31 и имеющие IP-адрес получателя из диапазона 10.1.1.2-10.1.1.254, отправлять в порт 36 (приоритет 5);
с помощью контроллера проверяется, существует ли на ШБ1 контекст соединения для потока пакетов от хоста 192.168.1.100 к туннелируемому ресурсу 10.1.1.5;
если контекст соединения существует, то с помощью контроллера он пересылается на ШБ2; иначе в ШБ2 создается новый контекст соединения с таймаутом неактивности, равным таймауту неактивности динамических правил в таблице потоков коммутатора;
28. После обработки в ШБ2 пакет отправляется в коммутатор и далее по назначению в сеть 1.
Возможны и другие варианты реализации предложенного способа, зависящие от предпочтений при выборе аппаратного и программного обеспечения.