Способ фильтрации сетевого трафика на основе правил с маской при пакетной коммутации
METHOD FOR FILTERING NETWORK TRAFFIC BASED ON RULES WITH A MASK DURING PACKET SWITCHING

Область техники
Изобретение относится к области построения систем мониторинга и анализа сетей передачи данных, а именно к методам фильтрации сетевого трафика в высоконагруженных сетях, и может быть использовано в устройствах предварительной обработки для систем глубокого анализа сетевого трафика, поддерживающих стек протоколов TCP/IP. Заявляемый способ направлен на обеспечение функции фильтрации сетевых пакетов и может быть применен в устройствах предварительной обработки сетевого трафика.
Уровень техники
Известны способы фильтрации сетевых пакетов на процессорных системах (патент RU 2697698C2 «Способ обработки сетевого трафика с использованием межсетевого экранирования», патент RU 159041 U1 «Межсетевой экран с фильтрацией трафика по мандатным меткам», патент RU 2580004 C2 «Автоматический межсетевой экран»), их недостатками являются: невозможность обеспечения функции фильтрации с маской, определяющей какие поля в сетевых заголовках участвуют в фильтрации в устройствах предварительной обработки, а также невозможность реализации в устройствах предварительной обработки трафика на базе перепрограммируемой логической интегральной схемы (ПЛИС) или сверхбольшой интегральной схемы (СБИС).
Техническим результатом предложенного изобретения является обеспечение функции фильтрации с маской, определяющей какие поля в сетевых заголовках участвуют в фильтрации в устройствах предварительной обработки.
Поставленный технический результат достигается тем, что предложен способ фильтрации сетевого трафика на основе правил с маской при пакетной коммутации, заключающийся в фильтрации сетевых пакетов, где пакет после приема передается в блок анализа пакета, в котором выполняется выделение из пакета Ethernet, IP и TCP/UDP-заголовков и формирование на их основе информационного блока - дескриптора, далее пакет сохраняется в пакетный буфер, а дескриптор - в буфер дескрипторов и затем передается в блок маскирования, в котором выполняется изменение полей заголовков, не участвующих в фильтрации, на значение равное 0, формируя таким образом маскированный ключ, при этом в RAM-память заранее записываются правила фильтрации/коммутации, состоящие из паттернов, с которым сравнивается маскированный ключ, и кода действия, которое выполняется в случае совпадения маскированного ключа и паттерна, далее блок поиска совпадений сравнивает паттерн с вычисленным маскированным ключом, если найдено соответствующее правило фильтрации/коммутации, то из правила фильтрации/коммутации извлекается действие и передается в качестве результата в блок фильтрации, который в соответствии с результатом выполняет либо удаление пакета из пакетного буфера, либо передает его в выходной интерфейс.
Проведенный анализ уровня техники позволяет определить, что предложенное техническое решение является новым и имеет изобретательский уровень, а возможность его использования в промышленности определяет его как промышленно применимое.
Эти и другие аспекты станут очевидными и будут объяснены со ссылками на чертеж и вариант осуществления, описанный в дальнейшем.
Изобретение поясняется следующими графическими материалами:
Фиг. 1 - схема, иллюстрирующая функциональные блоки, реализующие предложенный способ фильтрации сетевого трафика на основе правил с маской при пакетной коммутации.
Фиг. 2 - схема, иллюстрирующая применение маски.
Осуществление изобретения
Для достижения поставленного технического результата выполняются следующие этапы операций:
Прием пакета осуществляется через входной интерфейс (101). После приема пакета выполняется его анализ и выделение Ethernet, IP и TCP/UDP-заголовков пакета в блоке анализа пакета (102) и формирование на их основе информационного блока - дескриптора, который сохраняется в буфер дескрипторов (104).
Пакет сохраняется в пакетном буфере (103) до момента принятия решение о наборе действий, выполняемых над пакетом.
Дескриптор передается в блок маскирования (105), в котором выполняется изменение полей заголовков, не участвующих в фильтрации на значение равное 0.
Алгоритм фильтрации трафика сводится к определению соответствия параметров пакета заданным условиям и осуществляется по следующим параметрам пакета: MAC-адрес отправителя и получателя (2×48 бит); IP-адрес отправителя и получателя (2×32 бита); TCP/UDP порты отправителя и получателя (16×2 бита); идентификатор протокола (содержится в заголовке IP-пакета, 8 бит); является ли пакет IP-пакетом (1 бит); логический номер интерфейса, с которого был принят пакет (3 бита). Все вместе указанные параметры образуют дескриптор пакета - ключ длиной 204 бит.
В RAM-памяти (107) хранят правила фильтрации (коммутации) и распределения пакетов по выходным интерфейсам (109) или их удаления (фильтрации) в соответствии с детально настраиваемыми правилами фильтрации. Правила фильтрации определяют: направить пакет на определенный выходной интерфейс или отклонить/отбросить пакет, если правило фильтрации не найдено, то в качестве результата передается, что правило не найдено, и выполняется преднастроенное по умолчанию правило: отправить пакет на определенный выходной интерфейс (109) или удалить. Например, если известно, что пакеты приходят из небезопасной сети, например, при DDOS атаке, то правило фильтрации/коммутации будет определять, что необходимо все пакеты с этого адреса источника в адрес определённого получателя отбросить. Если стоит задача агрегировать трафик, то все пакеты с определённым содержанием полей будут направляться в один конкретный выходной интерфейс (109).
Блок поиска совпадений (106) выполняет поиск в RAM-памяти (107) правила фильтрации (на основе маски и паттерна), совпадающие с маскированными заголовками. Поиск совпадений выполняется последовательным сравнением до первого совпадения. Если найдено соответствующее правило фильтрации, то из правила фильтрации извлекается действие и передается в качестве результата в блок фильтрации (108).
Блок фильтрации (108) в соответствии с полученным результатом действия выполняет либо удаление пакета из пакетного буфера, либо передачу в соответствующий выходной интерфейс (109).
Настройка предложенного способа фильтрации состоит из двух этапов.
Первым этапом является то, что в блоке маскирования (105) задают маски, где размер маски совпадает с размером дескриптора-ключа. Маска - битовая последовательность фиксированной длины, накладывается на дескриптор-ключ для изменения полей заголовков, не участвующих в фильтрации на значения равное «0», тем самым формируя маскированный ключ, что позволяет скрыть параметры пакета, не представляющие интерес.
Вторым этапом является запись паттерна. Паттерн представляет собой образец, который сравнивается с маскированным ключом. Паттерн записывается заранее через не связанный с сетью конфигурационный интерфейс, что определяет правила фильтрации/коммутации в зависимости от содержания полей пакета. Паттерн записывается первоначально при настройке инициализации брокера сетевых пакетов. Потом в течении всего времени работы брокера сетевых пакетов пакеты обрабатываются в соответствии с паттернами.
В RAM-памяти (107) хранятся паттерны с кодом действия - номером выходного интерфейса (109), на который должен быть направлен пакет при совпадении маскированного ключа и паттерна, или код действия - удаление пакета.
Например
Есть группа правил фильтрации, объединенная единой маской, например маска ip-адреса 0.0.0.255 и правила: 0.0.0.1 - пропустить, 0.0.0.5 - пропустить, 0.0.0.10 - отбросить, 0.0.0.11 - пропустить.
На вход блока поиска совпадений (106) поступает маскированный ключ key (ключ), который накладывает на него маску по функции «И». Паттерн включает в себя маскированный ключ и код действия срабатывания фильтра (filter_result). Получив из RAM-памяти (107) паттерн, блок поиска совпадений (106) сравнивает вычисленный маскированный ключ с полученным в паттерне. Совпадение означает срабатывание фильтра. В этом случае выходному сигналу filter_result присваивается значение результата срабатывания из паттерна. Если паттерн не совпал с маскированным ключом, то применяется преднастроенное действие по умолчанию - удалить пакет или направить его на определённый выходной интерфейс (109).
В предпочтительном варианте осуществления изобретения вышеуказанные логические блоки: блок анализа пакета (102), блок маскирования (105), блок поиска совпадений (106), блок фильтрации (108) могут быть реализованы или выполнены на базе ПЛИС или СБИС. Блоки могут быть реализованы конечным автоматом и несколькими регистрами с соответствующей внутренней логикой и реализуется автоматически, например, из представленного XML-описания сетевого протокола, они управляются микрокодом, хранящимся во встроенной памяти. Специалисту очевидно, что вышеуказанные логические блоки, схемы/алгоритмы обработки могут быть выполнены с помощью элемента памяти, который записывает обрабатываемые данные и процессора обработки, в качестве которых могут применяться процессор общего назначения, машиночитаемый носитель, конечный автомат или другое аппаратно-программируемое логическое устройство, дискретный логический элемент или транзисторная логика, дискретный компонент аппаратных средств или любого их сочетания, чтобы выполнять описанные выше функции.
В качестве конфигурационного интерфейса для настройки, в зависимости от элементной базы может быть использован стандартный цифровой интерфейс, например, PCIe, PCI, SPI и т.д.
Предложенный способ фильтрации сетевого трафика на основе правил с маской при пакетной коммутации ориентирован на применение в устройствах на базе ПЛИС или СБИС, например, в брокерах сетевых пакетов (NPB), которые работают на уровне пакетов, где правила распределения и агрегации трафика в брокерах сетевых пакетов полностью определяются настройками. В NPB нет стандартов построения таблиц пересылки (MAC-таблиц) и протоколов обмена с другими коммутаторами (типа STP), а поэтому диапазон возможных пользовательских настроек и интерпретируемых полей в них гораздо шире. Брокер может равномерно распределить трафик из одного или нескольких входных интерфейсов на заданный диапазон выходных интерфейсов с функцией равномерной нагрузки по выходу. Также можно задать правила на копирование, фильтрацию, классификацию, дедупликацию и модификацию трафика. Данные правила можно применять к разным группам входных/выходных интерфейсов брокера сетевых пакетов, а также применять последовательно друг за другом в самом устройстве. ПЛИС или СБИС может быть запрограммирована для выполнения предложенного способа и размещена в любом месте компьютерной сети центра обработки данных или NPB.
Предложенный по изобретению способ отслеживания сессий в сетевом трафике может выполняться посредством одной или нескольких компьютерных программ, содержащих код компьютерной программы или порции программного обеспечения, исполняющиеся на компьютере или процессоре. Компьютерная программа содержит элементы кода компьютерной программы или порции программного кода, которые побуждают компьютер выполнять предложенный способ.
Варианты осуществления изобретения не являются исчерпывающими и приведены только с целью пояснения и подтверждения промышленной применимости, и специалисты в данной области техники способны создавать альтернативные варианты его осуществления без отрыва от объема формулы, но в пределах сущности изобретения, отраженной в описании.