RU2854059C1 - Method for obtaining network information regarding a physical network port taken out of the operating system kernel control and managed by an application in user space - Google Patents
Method for obtaining network information regarding a physical network port taken out of the operating system kernel control and managed by an application in user spaceInfo
- Publication number
- RU2854059C1 RU2854059C1 RU2025123287A RU2025123287A RU2854059C1 RU 2854059 C1 RU2854059 C1 RU 2854059C1 RU 2025123287 A RU2025123287 A RU 2025123287A RU 2025123287 A RU2025123287 A RU 2025123287A RU 2854059 C1 RU2854059 C1 RU 2854059C1
- Authority
- RU
- Russia
- Prior art keywords
- network
- interface
- operating system
- virtual
- port
- Prior art date
Links
Abstract
Description
Группа изобретений относится к области вычислительной техники, а более конкретно – к технологиям управления и обработки сетевого трафика в высокопроизводительных системах, таких как межсетевые экраны нового поколения (Next-Generation Firewall, NGFW), системы предотвращения вторжений (IPS) и другие устройства глубокого анализа пакетов (DPI).The group of inventions relates to the field of computing technology, and more specifically to technologies for managing and processing network traffic in high-performance systems, such as next-generation firewalls (NGFW), intrusion prevention systems (IPS) and other deep packet inspection (DPI) devices.
В традиционных сетевых архитектурах обработка пакетов выполняется ядром операционной системы, что сопряжено со значительными накладными расходами из-за переключений контекста и многократного копирования данных. Для преодоления этих ограничений были разработаны технологии прямого доступа к сетевому оборудованию из пространства пользователя, такие как DPDK (Data Plane Development Kit). Данные технологии позволяют приложению в пространстве пользователя управлять физическим сетевым портом, выводя его из-под контроля ядра операционной системы, что обеспечивает увеличение производительности. Однако такой подход приводит к полной изоляции порта и проходящего через него трафика от стандартных средств мониторинга и управления операционной системы.In traditional network architectures, packet processing is performed by the operating system kernel, which incurs significant overhead due to context switches and multiple data copies. To overcome these limitations, technologies for direct access to network hardware from user space, such as DPDK (Data Plane Development Kit), have been developed. These technologies allow a user-space application to control a physical network port, removing it from the control of the operating system kernel, thereby improving performance. However, this approach completely isolates the port and the traffic passing through it from standard operating system monitoring and management tools.
Также известны решения, направленные на виртуализацию сетевых ресурсов в многопользовательских или многозадачных средах, таких как серверы с несколькими разделами операционных систем.Solutions are also known that aim to virtualize network resources in multi-user or multi-tasking environments, such as servers with multiple operating system partitions.
В качестве примера такого решения представлен выбранный в качестве прототипа способ получения сетевой информации относительно физического сетевого порта, выведенного из-под управления ядра операционной системы и управляемого приложением в пространстве пользователя, при выполнении которого для каждого раздела операционной системы создаются логические порты, которые являются проекцией физических портов сетевого адаптера, при этом маршрутизация трафика между физическими портами, подключенными к внешней сети, и логическими портами, ассоциированными с разделами операционной системы (ОС), реализуется внутри самого сетевого адаптера посредством аппаратного логического коммутатора, кроме того, направление трафика выполнено напрямую между разными разделами ОС по внутреннему пути, минуя внешнюю сеть, при этом управление потоками данных в адаптере выполнено посредством системы очередей, позволяющей направлять пакеты либо напрямую в приложения в пространстве пользователя, либо в ядро соответствующего раздела ОС [US20060221975A1, дата публикации: 03.01.2012 г.].As an example of such a solution, a method for obtaining network information regarding a physical network port taken out from the control of the operating system kernel and controlled by an application in user space is presented, selected as a prototype, during the execution of which logical ports are created for each section of the operating system, which are a projection of the physical ports of the network adapter, while routing traffic between the physical ports connected to the external network and the logical ports associated with the sections of the operating system (OS) is implemented inside the network adapter itself by means of a hardware logical switch, in addition, the direction of traffic is carried out directly between different sections of the OS along an internal path, bypassing the external network, while data flow management in the adapter is carried out by means of a queuing system that allows packets to be directed either directly to applications in user space, or to the kernel of the corresponding section of the OS [US20060221975A1, publication date: 03.01.2012].
Недостатком прототипа является ограниченная гибкость и универсальность способа. Основной причиной является то, что все функции способа реализованы в специализированном аппаратном обеспечении, что приводит к ряду следующих недостатков:A disadvantage of the prototype is the limited flexibility and versatility of the method. The main reason is that all of the method's functions are implemented in specialized hardware, which leads to a number of disadvantages:
– отсутствие возможности модификации аппаратно-реализованной логики приводит к необходимости полной замены оборудования или сложного обновления программного обеспечения при изменении требований к обработке трафика, добавлении новых протоколов или функций управления;– the lack of the ability to modify hardware-implemented logic leads to the need for a complete replacement of equipment or a complex software update when traffic processing requirements change, new protocols or control functions are added;
– отсутствие возможности использования стандартных сетевых адаптеров приводит к значительному увеличению затрат на специализированное оборудование и созданию критической зависимости от конкретного поставщика, его технологической экосистемы и графика выпуска обновлений;– the inability to use standard network adapters leads to a significant increase in the cost of specialized equipment and the creation of a critical dependence on a specific supplier, its technological ecosystem and update release schedule;
– отсутствие возможности интеграции со стандартными системными утилитами и сервисами ядра приводит к невозможности использования привычных инструментов администрирования и стандартных доменов маршрутизации, превращая систему в «черный ящик» для операционной системы.– the lack of integration with standard system utilities and kernel services makes it impossible to use familiar administration tools and standard routing domains, turning the system into a “black box” for the operating system.
Таким образом, требуется разработка решения, которое сочетало бы в себе высокую производительность обработки пакетов, достигаемую за счет технологий прямого доступа к аппаратуре, с гибкостью, расширяемостью и полной интегрируемостью со стандартными средствами управления и мониторинга операционной системы, используя при этом стандартное, широкодоступное сетевое оборудование.Therefore, a solution is required that combines the high packet processing performance achieved through direct hardware access technologies with flexibility, extensibility, and full integration with standard operating system management and monitoring tools, all while using standard, readily available network equipment.
Техническая проблема, на решение которой направлена группа изобретений, заключается в устранении существующих недостатков прототипа.The technical problem that this group of inventions aims to solve is to eliminate the existing shortcomings of the prototype.
Технический результат, на достижение которого направлена группа изобретений, заключается в повышении гибкости управления и расширении функциональных возможностей системы для получения сетевой информации.The technical result, which the group of inventions is aimed at achieving, consists in increasing the flexibility of control and expanding the functional capabilities of the system for obtaining network information.
Сущность первого изобретения из группы изобретений заключается в следующем.The essence of the first invention from the group of inventions is as follows.
Способ получения сетевой информации относительно физического сетевого порта, выведенного из-под управления ядра операционной системы и управляемого приложением в пространстве пользователя, включает:A method for obtaining network information regarding a physical network port that is removed from the control of the operating system kernel and controlled by an application in user space includes:
– создание средствами ядра операционной системы виртуального сетевого интерфейса;– creation of a virtual network interface using the operating system kernel;
– выполнение зеркалирования, по меньшей мере, входящих сетевых пакетов с упомянутого физического сетевого порта на упомянутый виртуальный сетевой интерфейс;– performing mirroring of at least incoming network packets from said physical network port to said virtual network interface;
– обработку сетевых пакетов, поступивших на виртуальный сетевой интерфейс, для получения сетевой информации.– processing network packets received on a virtual network interface to obtain network information.
Сущность второго изобретения из группы изобретений заключается в следующем.The essence of the second invention from the group of inventions is as follows.
Система для получения сетевой информации способом по первому изобретению содержит, по меньшей мере, один физический сетевой порт, процессор и связанную с ним память, при этом процессор сконфигурирован с возможностью:A system for obtaining network information by the method of the first invention comprises at least one physical network port, a processor and memory associated therewith, wherein the processor is configured with the ability to:
– управления физическим сетевым портом посредством приложения в пространстве пользователя, выводящего данный порт из-под управления ядра операционной системы;– control of a physical network port by an application in user space, which takes the port out of the control of the operating system kernel;
– создания средствами ядра операционной системы виртуального сетевого интерфейса;– creation of a virtual network interface using the operating system kernel;
– выполнения зеркалирования, по меньшей мере, входящих сетевых пакетов с упомянутого физического сетевого порта на упомянутый виртуальный сетевой интерфейс;– performing mirroring of at least incoming network packets from said physical network port to said virtual network interface;
– обработки сетевых пакетов, поступивших на виртуальный сетевой интерфейс, для получения сетевой информации.– processing network packets received on a virtual network interface to obtain network information.
Разработанный способ может быть осуществлен посредством различных систем и устройств, предназначенных для обработки сетевого трафика. К таким системам относятся универсальные серверы с установленными сетевыми картами (NIC), специализированные сетевые устройства (аппаратные шлюзы, NGFW, DPI-системы), программные маршрутизаторы и виртуальные сетевые функции (VNFs), работающие на платформах с архитектурой NUMA, а также сетевые ускорители и интегрированные решения, основанные на FPGA или специализированных ASIC. The developed method can be implemented using various systems and devices designed to process network traffic. These systems include general-purpose servers with integrated network interface cards (NICs), specialized network devices (hardware gateways, NGFWs, and DPI systems), software routers and virtual network functions (VNFs) running on NUMA platforms, as well as network accelerators and integrated solutions based on FPGAs or specialized ASICs.
Выведение физического сетевого порта из-под управления ядра операционной системы и управление им посредством приложения в пространстве пользователя обеспечивает возможность повышения производительности обработки сетевых пакетов за счет исключения накладных расходов ядра операционной системы. Это может быть реализовано посредством использования специализированных технологий, таких как DPDK, где управляющее приложение инициализирует среду выполнения и получает эксклюзивный прямой доступ к аппаратуре сетевого адаптера через драйверы режима опроса. Таким образом создается необходимая предпосылка для высокопроизводительной обработки пакетов, что является фундаментом для последующего повышения гибкости управления и расширения функциональных возможностей системы.Removing the physical network port from the control of the operating system kernel and managing it through a user-space application improves network packet processing performance by eliminating the operating system kernel's overhead. This can be achieved through specialized technologies such as DPDK, where the management application initializes the runtime environment and gains exclusive direct access to the network adapter hardware via polling mode drivers. This creates the necessary prerequisite for high-performance packet processing, which lays the foundation for subsequent increased management flexibility and expanded system functionality.
Создание виртуального сетевого интерфейса средствами ядра операционной системы реализует восстановление взаимодействия с упомянутым ядром, которое было утеряно из-за вывода физического порта из-под его управления. Это может быть достигнуто путем создания TAP-интерфейса, который эмулирует устройство канального уровня и предоставляет файловый дескриптор в пространство пользователя для обмена Ethernet-кадрами. Таким образом обеспечивается ключевой механизм для взаимодействия между изолированным высокопроизводительным контуром и ядром операционной системы, что напрямую способствует повышению гибкости управления за счет предоставления ядру и его утилитам точки входа для наблюдения за трафиком.Creating a virtual network interface using the operating system kernel restores communication with the kernel that was lost due to the removal of a physical port from its control. This can be achieved by creating a TAP interface, which emulates a data link device and provides a file descriptor to user space for exchanging Ethernet frames. This provides a key mechanism for interaction between the isolated high-performance circuit and the operating system kernel, directly contributing to increased management flexibility by providing the kernel and its utilities with an entry point for monitoring traffic.
Выполнение зеркалирования, по меньшей мере, входящих сетевых пакетов с физического сетевого порта на виртуальный сетевой интерфейс обеспечивает возможность создания копий сетевых пакетов и направления этих копий в виртуальный интерфейс без замедления основного пути обработки. Выполнение зеркалирования может быть представлено процессом, при котором управляющее приложение в пространстве пользователя считывает пакет с физического порта, создает его копию и записывает ее в файловый дескриптор TAP-интерфейса. Таким образом реализуется механизм моста между высокопроизводительным контуром обработки и ядром операционной системы, что обеспечивает фактическое взаимодействие и позволяет повысить гибкость управления системой за счет предоставления системным сервисам доступа к информации о трафике.Mirroring at least incoming network packets from a physical network port to a virtual network interface enables the creation of copies of network packets and forwarding these copies to the virtual interface without slowing down the primary processing path. Mirroring can be implemented as a process in which a user-space management application reads a packet from the physical port, creates a copy of it, and writes it to the TAP interface file descriptor. This implements a bridge between the high-performance processing loop and the operating system kernel, enabling effective interaction and increasing system management flexibility by providing system services with access to traffic information.
Обработка сетевых пакетов, поступивших на виртуальный сетевой интерфейс, обеспечивает возможность анализа и модификации сетевого трафика как стандартными средствами ядра операционной системы, так и специализированными алгоритмами управляющего приложения. Обработка сетевых пакетов может быть выполнена через операции анализа, добавления, изменения или удаления тегов виртуальной локальной сети (VLAN), а также другие виды обработки сетевой информации. Таким образом обеспечивается возможность обработки пакетов одновременно на стороне ядра для целей управления и на стороне высокопроизводительного приложения для модификации, что напрямую реализует расширение функциональных возможностей и повышение гибкости управления всей системой.Processing network packets received on a virtual network interface enables analysis and modification of network traffic using both standard operating system kernel tools and specialized algorithms of the control application. Network packet processing can be performed through operations such as analysis, adding, modifying, or deleting virtual local area network (VLAN) tags, as well as other types of network information processing. This enables packet processing simultaneously on the kernel side for management purposes and on the high-performance application side for modification, directly enhancing the functionality and flexibility of the entire system.
В качестве виртуального сетевого интерфейса может быть создан TAP-интерфейс, что обеспечивает возможность работы на канальном уровне с передачей в ядро операционной системы полных Ethernet-кадров, включая все заголовки и теги VLAN. Создание TAP-интерфейса может быть реализовано с использованием стандартных средств операционной системы для создания TAP-устройств. Таким образом обеспечивается максимально полное и точное взаимодействие, передавая в ядро неискаженную информацию о пакете, что критично для гибкости управления и корректной работы системных анализаторов трафика.A TAP interface can be created as a virtual network interface, enabling data link layer operation with the transmission of complete Ethernet frames, including all headers and VLAN tags, to the operating system kernel. The TAP interface can be created using standard operating system tools for creating TAP devices. This ensures the most complete and accurate interaction, transmitting undistorted packet information to the kernel, which is critical for management flexibility and the correct operation of system traffic analyzers.
Зеркалирование могут осуществлять как для входящих, так и для исходящих сетевых пакетов физического сетевого порта, тем самым реализуя полную видимость двустороннего обмена данными через физический порт для ядра операционной системы. Выполнение зеркалирования может быть осуществлено путем дублирования процесса зеркалирования для обоих направлений трафика. Таким образом достигается дальнейшее повышение гибкости управления и расширение функциональных возможностей мониторинга, позволяя отслеживать полные сессии передачи данных, а не только однонаправленный трафик.Mirroring can be performed for both incoming and outgoing network packets on a physical network port, thereby providing the operating system kernel with full visibility into bidirectional data exchange via the physical port. Mirroring can be implemented by duplicating the mirroring process for both traffic directions. This further increases management flexibility and expands monitoring capabilities, allowing for the tracking of complete data transfer sessions, not just unidirectional traffic.
Зеркалирование могут осуществлять посредством приложения, работающего в пространстве пользователя, обеспечивая возможность выполнения функции зеркалирования наиболее эффективным способом, поскольку все данные уже находятся в адресном пространстве управляющего приложения. Выполнение зеркалирования может быть представлено алгоритмом, при котором само приложение, получившее доступ к пакетам, создает их копии и направляет в виртуальный интерфейс. Таким образом обеспечивается взаимодействие с минимальными накладными расходами, сохраняя высокую производительность основного пути обработки, что является необходимым условием для практического применения группы изобретений и достижения заявленного результата без деградации скорости.Mirroring can be implemented by an application running in user space, enabling the mirroring function to be performed most efficiently, since all data is already in the address space of the controlling application. Mirroring can be implemented using an algorithm in which the application itself, having accessed the packets, creates copies of them and forwards them to the virtual interface. This ensures interaction with minimal overhead while maintaining high performance of the primary processing path, a prerequisite for the practical application of this group of inventions and achieving the claimed result without speed degradation.
Физический сетевой порт может быть выведен из-под управления ядра операционной системы с использованием набора библиотек и драйверов для быстрой обработки пакетов, такого как DPDK, что реализует конкретный и предпочтительный способ технологии обхода ядра с использованием готового и стандартизированного набора инструментов. Вывод физического сетевого порта может быть выполнен посредством инициализации среды DPDK, связывания сетевых портов с драйверами пользовательского пространства и настройки соответствующих библиотек. Таким образом обеспечивается техническая осуществимость высокопроизводительного контура, расширяющего функциональность способа и повышение гибкости управления с помощью группы изобретений.A physical network port can be removed from the operating system kernel's control using a set of libraries and drivers for fast packet processing, such as DPDK, which implements a specific and preferred method for kernel bypass technology using a ready-made and standardized toolkit. Removing a physical network port can be accomplished by initializing the DPDK environment, linking network ports to user-space drivers, and configuring the appropriate libraries. This ensures the technical feasibility of a high-performance circuit that expands the functionality of the method and increases control flexibility using the inventions.
Обработка сетевых пакетов может быть выполнена посредством одной операции из группы, состоящей из анализа информации о теге VLAN, добавления тега VLAN, изменения тега VLAN, удаления тега VLAN, обеспечивает возможность получения и использования сетевой информации для реализации сложных сетевых сценариев без обращения к ядру операционной системы. Это может быть представлено набором алгоритмов парсинга и модификации заголовков Ethernet-кадров в части обработки тегов виртуальных локальных сетей. Таким образом достигается прямая демонстрация расширения функциональных возможностей системы, которая получает способность выполнять сложные манипуляции с трафиком, ранее недоступные в изолированном высокопроизводительном контуре.Network packet processing can be performed using a single operation from a group consisting of VLAN tag information analysis, adding a VLAN tag, changing a VLAN tag, and deleting a VLAN tag. This enables the acquisition and use of network information to implement complex network scenarios without accessing the operating system kernel. This can be represented by a set of algorithms for parsing and modifying Ethernet frame headers in terms of processing VLAN tags. This directly demonstrates the expanded functionality of the system, which gains the ability to perform complex traffic manipulations previously unavailable in an isolated high-performance environment.
Дополнительно в разделяемой памяти может создаваться и сохраняться структура данных, устанавливающая соответствие между идентификатором физического сетевого порта, идентификатором созданного для него виртуального сетевого интерфейса и, по меньшей мере, одним логическим идентификатором интерфейса, используемым для маршрутизации. Данный процесс реализует возможность сопоставления различных пространств имен для интерфейсов в системе. Создание структур данных может быть выполнено посредством создания общей структуры данных в разделяемой памяти, доступной различным компонентам системы. Таким образом обеспечивается быстрое и эффективное взаимодействие между различными компонентами системы, а также между контурами высокопроизводительной обработки и ядра операционной системы, что напрямую способствует повышению гибкости управления за счет возможности корректной трансляции управляющих команд в конкретные действия с аппаратными и виртуальными интерфейсами. Additionally, a data structure can be created and stored in shared memory, establishing a mapping between the physical network port identifier, the identifier of the virtual network interface created for it, and at least one logical interface identifier used for routing. This process enables the mapping of various interface namespaces within the system. Creation of data structures can be accomplished by creating a common data structure in shared memory accessible to various system components. This ensures fast and efficient interaction between various system components, as well as between high-performance processing circuits and the operating system kernel, directly contributing to increased control flexibility by enabling the correct translation of control commands into specific actions with hardware and virtual interfaces.
Группа изобретений характеризуется ранее неизвестной из уровня техники совокупностью существенных признаков, отличающейся тем, что:The group of inventions is characterized by a previously unknown set of essential features from the state of the art, distinguished in that:
– физический сетевой порт, выведенный из-под управления ядра операционной системы и управляемый приложением в пространстве пользователя, обеспечивает создание высокопроизводительного контура обработки сетевых пакетов, функционирующего в пространстве пользователя за счет прямого доступа к аппаратуре сетевого адаптера, минуя ресурсоемкие механизмы ядра операционной системы, тем самым формируется технически изолированная среда обработки, которая, обладая высокой производительностью, лишена возможности прямого взаимодействия со стандартными службами операционной системы, что обеспечивает возможность создания высокопроизводительного контура обработки;- a physical network port, removed from the control of the operating system kernel and controlled by an application in user space, ensures the creation of a high-performance network packet processing circuit that operates in user space through direct access to the network adapter hardware, bypassing the resource-intensive mechanisms of the operating system kernel, thereby creating a technically isolated processing environment that, while possessing high performance, lacks the ability to directly interact with standard operating system services, which makes it possible to create a high-performance processing circuit;
– создание средствами ядра операционной системы виртуального сетевого интерфейса обеспечивает наличие в ядре операционной системы стандартного, управляемого им сетевого объекта, который распознается всеми системными службами и утилитами как обычный сетевой интерфейс, тем самым создается логическая точка взаимодействия в пространстве ядра, что обеспечивает возможность создания моста между изолированным контуром и ядром, необходимого для последующего обеспечения взаимодействия и повышения гибкости управления;– the creation of a virtual network interface by means of the operating system kernel ensures the presence in the operating system kernel of a standard, controlled network object, which is recognized by all system services and utilities as a normal network interface, thereby creating a logical point of interaction in the kernel space, which makes it possible to create a bridge between the isolated circuit and the kernel, which is necessary for subsequent interaction and increased control flexibility;
– выполнение зеркалирования, по меньшей мере, входящих сетевых пакетов с физического сетевого порта на виртуальный сетевой интерфейс обеспечивает установление активного информационного потока от высокопроизводительного контура к стандартному контуру ядра операционной системы, при котором управляющее приложение направляет копию пакета в созданный виртуальный интерфейс без ущерба для производительности обработки оригинала, тем самым ядро операционной системы получает возможность анализировать реальный трафик, проходящий через изолированный физический порт, что напрямую обеспечивает взаимодействие между двумя контурами и повышает гибкость управления за счет возможности применения стандартных средств мониторинга к ранее недоступному трафику;– mirroring of at least incoming network packets from a physical network port to a virtual network interface ensures the establishment of an active information flow from the high-performance circuit to the standard circuit of the operating system kernel, in which the control application sends a copy of the packet to the created virtual interface without compromising the processing performance of the original, thereby allowing the operating system kernel to analyze the actual traffic passing through the isolated physical port, which directly ensures interaction between the two circuits and increases management flexibility due to the ability to apply standard monitoring tools to previously inaccessible traffic;
– обработка сетевых пакетов, поступивших на виртуальный сетевой интерфейс, для получения сетевой информации обеспечивает возможность использования информации, передаваемой через созданный механизм зеркалирования, позволяя сетевому стеку ядра и работающим с ним приложениям анализировать состав и содержимое зеркалированных пакетов для целей мониторинга, сбора статистики и принятия управляющих решений, тем самым реализуется синергетический эффект, при котором информация из одного контура используется для управления другим, что обеспечивает достижение технического результата за счет повышения гибкости управления и расширения функциональных возможностей всей системы.– processing of network packets received on the virtual network interface to obtain network information provides the ability to use information transmitted through the created mirroring mechanism, allowing the kernel network stack and applications working with it to analyze the composition and content of mirrored packets for the purposes of monitoring, collecting statistics and making control decisions, thereby realizing a synergistic effect in which information from one circuit is used to control another, which ensures the achievement of a technical result by increasing control flexibility and expanding the functionality of the entire system.
Совокупность существенных признаков группы изобретений позволяет создать новую системную архитектуру, в которой скоростные преимущества прямого доступа к аппаратным ресурсам сочетаются с управляемостью и функциональностью стандартного сетевого стека ядра, что ранее являлось взаимоисключающими подходами.The combination of the essential features of this group of inventions makes it possible to create a new system architecture in which the high-speed advantages of direct access to hardware resources are combined with the manageability and functionality of a standard kernel network stack, which were previously mutually exclusive approaches.
Благодаря этому обеспечивается достижение технического результата, заключающегося в повышении гибкости управления и расширении функциональных возможностей системы для получения сетевой информации.This ensures the achievement of a technical result consisting of increasing control flexibility and expanding the functional capabilities of the system for obtaining network information.
Группа изобретений обладает ранее неизвестной из уровня техники совокупностью существенных признаков, что свидетельствует о ее соответствии критерию патентоспособности «новизна».The group of inventions possesses a set of essential features previously unknown in the state of the art, which indicates its compliance with the patentability criterion of “novelty”.
Группа изобретений неизвестна из предшествующего уровня техники и явным образом не следует из него. Ввиду этого группа изобретений соответствует критерию патентоспособности «изобретательский уровень».This group of inventions is unknown in the prior art and does not clearly follow from it. Therefore, this group of inventions meets the patentability criterion of "inventive step."
Изобретения из группы изобретений связаны между собой и образуют единый изобретательский замысел, что свидетельствует о соответствии группы изобретений критерию патентоспособности «единство изобретения».The inventions from a group of inventions are interconnected and form a single inventive concept, which indicates that the group of inventions meets the patentability criterion of “unity of invention”.
Группа изобретений поясняется следующими фигурами.The group of inventions is illustrated by the following figures.
Фиг. 1 - функциональная схема системы для получения сетевой информации, иллюстрирующая ее основные компоненты и их взаимосвязи.Fig. 1 is a functional diagram of the system for obtaining network information, illustrating its main components and their interrelations.
Фиг. 2 - блок–схема алгоритма инициализации и конфигурации системы для получения сетевой информации.Fig. 2 - block diagram of the algorithm for initialization and configuration of the system for obtaining network information.
Фиг. 3 - блок–схема алгоритма рабочего цикла обработки пакета системы для получения сетевой информации.Fig. 3 - block diagram of the algorithm of the working cycle of processing a system packet for obtaining network information.
Для иллюстрации возможности реализации и более полного понимания сути группы изобретений ниже представлен вариант ее осуществления, который может быть любым образом изменен или дополнен, при этом настоящая группа изобретений ни в коем случае не ограничивается представленным вариантом.To illustrate the possibility of implementation and a more complete understanding of the essence of the group of inventions, a variant of its implementation is presented below, which can be changed or supplemented in any way, while the present group of inventions is in no way limited to the variant presented.
Для осуществления способа используется система 100 для получения сетевой информации, реализованная в виде программно-аппаратного комплекса, например межсетевого экрана нового поколения. Система 100 включает в себя процессор 110, управляющее приложение 120, память 130, физический сетевой порт 140 и виртуальный сетевой интерфейс 150.To implement the method, a system 100 for obtaining network information is used, implemented as a hardware and software system, such as a next-generation firewall. System 100 includes a processor 110, a control application 120, memory 130, a physical network port 140, and a virtual network interface 150.
Процессор 110 управляется приложением 120 в пространстве пользователя. Управляющее приложение 120 представляет собой основной компонент, реализующий быструю обработку пакетов и связанные с ним модули обработки. Приложение 120 использует технологии обхода ядра, такие как набор библиотек для быстрой обработки пакетов, для получения прямого контроля над физическими сетевыми портами. При этом управляющее приложение 120 включает:Processor 110 is controlled by user-space application 120. Control application 120 is the core component implementing fast packet processing and associated processing modules. Application 120 utilizes kernel bypass technologies, such as a set of fast packet processing libraries, to gain direct control over physical network ports. Control application 120 includes:
– модуль 122 выполнения зеркалирования, являющийся логическим блоком внутри управляющего приложения 120, ответственным за считывание сетевых пакетов с физического порта и направление их копий в связанный с ним виртуальный сетевой интерфейс 150.– a mirroring execution module 122, which is a logical block within the control application 120, responsible for reading network packets from the physical port and directing copies of them to the virtual network interface 150 associated with it.
– модуль 124 обработки сетевой информации, представляющий собой набор компонентов внутри управляющего приложения 120, включающий блок парсинга канального уровня, блок маршрутизации и блок формирования заголовков, которые выполняют анализ и модификацию пакетов, включая операции с тегами виртуальных локальных сетей, на основе информации, полученной из пакета и конфигурации системы.– a network information processing module 124, which is a set of components within the control application 120, including a link layer parsing unit, a routing unit and a header generation unit, which perform packet analysis and modification, including operations with virtual local area network tags, based on information obtained from the packet and the system configuration.
Физический сетевой порт 140 является аппаратным сетевым интерфейсом, выведенным из-под управления стандартных драйверов ядра операционной системы и управляемым напрямую приложением 120.Physical network port 140 is a hardware network interface, removed from the control of standard operating system kernel drivers and controlled directly by application 120.
Виртуальный сетевой интерфейс 150 в ядре операционной системы представляет собой виртуальное сетевое устройство, создаваемый средствами ядра операционной системы и в предпочтительном варианте представленный виртуальным интерфейсом канального уровня. Данный интерфейс является зеркалом физического порта 140 для операционной системы, делая трафик видимым для стандартных утилит и сетевого стека ядра.Virtual network interface 150 in the operating system kernel is a virtual network device created by the operating system kernel and, in the preferred embodiment, represented by a virtual data link layer interface. This interface mirrors physical port 140 for the operating system, making traffic visible to standard utilities and the kernel network stack.
Структура 132 данных для сопоставления интерфейсов хранится в разделяемой памяти 130 и устанавливает однозначное соответствие между различными идентификаторами: аппаратным идентификатором физического порта 140, его идентификатором в среде быстрой обработки пакетов, идентификатором зеркального виртуального интерфейса 150 в ядре операционной системы и логическим идентификатором, используемым для маршрутизации.The interface mapping data structure 132 is stored in the shared memory 130 and establishes a one-to-one correspondence between various identifiers: the hardware identifier of the physical port 140, its identifier in the fast packet processing environment, the identifier of the mirrored virtual interface 150 in the operating system kernel, and the logical identifier used for routing.
Способ осуществляется в два основных этапа: этап инициализации и конфигурации системы и этап рабочего цикла обработки пакета.The method is carried out in two main stages: the initialization and configuration stage of the system and the stage of the working cycle of packet processing.
Этап инициализации и конфигурации системы.System initialization and configuration stage.
Данный подготовительный этап выполняется однократно при запуске системы 100 для настройки окружения и создания необходимых связей между компонентами.This preparatory stage is performed once when the system 100 is started to set up the environment and create the necessary connections between components.
Шаг 200. Вывод физического порта 140 из-под управления ядра. Управляющее приложение 120 инициализирует абстракцию окружения. С помощью специализированных драйверов оно привязывает к себе целевые физические сетевые порты 140, выводя их из-под контроля ядра операционной системы. Приложение 120 выделяет память на больших страницах и создает пулы буферов для приема пакетов.Step 200. Releasing physical port 140 from kernel control. Control application 120 initializes the environment abstraction. Using specialized drivers, it binds target physical network ports 140 to itself, releasing them from the control of the operating system kernel. Application 120 allocates memory in large pages and creates buffer pools for receiving packets.
Шаг 202. Создание виртуального зеркального интерфейса 150. В процессе инициализации среды быстрой обработки пакетов управляющее приложение 120 дает команду на создание виртуального интерфейса 150 канального уровня для каждого управляемого физического порта 140. В системе появляется новый сетевой интерфейс, полностью управляемый ядром операционной системы, но связанный с управляющим приложением 120.Step 202. Creating a virtual mirror interface 150. During the initialization of the fast packet processing environment, the control application 120 issues a command to create a virtual interface 150 of the data link layer for each controlled physical port 140. A new network interface appears in the system, completely controlled by the operating system kernel, but associated with the control application 120.
Шаг 204. Создание и заполнение структуры 132 сопоставления. Структура данных 132 инициализируется и размещается в разделяемой памяти 130 и заполняется информацией о соответствии между физическим портом 140, его идентификатором в среде быстрой обработки пакетов и созданным для него зеркальным виртуальным интерфейсом 150.Step 204. Creating and filling the mapping structure 132. The data structure 132 is initialized and placed in the shared memory 130 and filled with information about the mapping between the physical port 140, its identifier in the fast packet processing environment, and the mirrored virtual interface 150 created for it.
Шаг 206. Запуск модуля 124 обработки. Запускаются все компоненты управляющего приложения 120, которые начинают обращение к очередям приема физических портов 140 в режиме постоянного опроса.Step 206. Launching processing module 124. All components of control application 120 are launched, which begin accessing the receive queues of physical ports 140 in constant polling mode.
Этап рабочего цикла обработки пакета.A stage of the batch processing work cycle.
Данный этап выполняется для каждого входящего пакета в реальном времени.This stage is performed for each incoming packet in real time.
Шаг 300. Прием пакета на физический порт 140. Управляющее приложение 120 считывает входящий сетевой пакет из очереди приема физического порта 140 в буфер, минуя сетевой стек ядра операционной системы.Step 300. Receiving a packet on physical port 140. Control application 120 reads the incoming network packet from the receive queue of physical port 140 into the buffer, bypassing the operating system kernel network stack.
Шаг 302. Выполнение зеркалирования. Сразу после считывания управляющее приложение 120 создает копию пакета и направляет ее в связанный виртуальный интерфейс 150 канального уровня. С этого момента копия пакета становится видна в ядре операционной системы и может быть проанализирована стандартными утилитами.Step 302. Mirroring. Immediately after reading, control application 120 creates a copy of the packet and forwards it to the associated virtual data link layer interface 150. From this point on, the packet copy becomes visible in the operating system kernel and can be analyzed using standard utilities.
Шаг 304. Обработка сетевой информации на основном пути. Оригинал пакета продолжает обрабатываться на высокопроизводительном пути в пространстве пользователя. Этот этап может включать обработку тега виртуальной локальной сети (VLAN): анализ, при котором модуль парсинга канального уровня определяет наличие тега стандарта виртуальных локальных сетей и извлекает идентификатор из заголовка, сохраняя его в метаданных пакета; принятие решения, при котором модуль маршрутизации на основе политик безопасности и маршрутизации определяет исходящий интерфейс и требуемый для него идентификатор виртуальной локальной сети, записывая это решение в метаданные сессии; модификацию, при которой модуль формирования заголовков на основе метаданных формирует конечный заголовок канального уровня, добавляя тег при его отсутствии, удаляя при ненадобности или изменяя значение идентификатора виртуальной локальной сети при необходимости.Step 304. Network Information Processing on the Primary Path. The original packet continues to be processed on the high-performance user-space path. This step may include virtual local area network (VLAN) tag processing: analysis, in which the data link parsing module determines the presence of a VLAN tag and extracts the identifier from the header, storing it in the packet's metadata; decision, in which the policy-based routing module determines the outgoing interface and the required VLAN identifier for it, storing this decision in the session metadata; modification, in which the metadata-based header generation module generates the final data link header, adding the tag if it does not exist, removing it if it is not needed, or changing the VLAN identifier value if necessary.
Шаг 306. Отправка пакета. Модифицированный пакет помещается в очередь передачи физического порта 140 для отправки в сеть. После отправки пакета происходит переход в начало рабочего цикла обработки пакета и его повтор.Step 306. Sending the packet. The modified packet is placed in the transmit queue on physical port 140 for transmission to the network. After sending the packet, the packet processing cycle begins again and is repeated.
Конкретный пример осуществления группы изобретений.A specific example of the implementation of a group of inventions.
Для иллюстрации работы группы изобретений представлен конкретный пример его осуществления на системе 100 для получения сетевой информации, реализованной в виде межсетевого экрана нового поколения (NGFW).To illustrate the operation of the group of inventions, a specific example of its implementation on a system 100 for obtaining network information, implemented in the form of a next-generation firewall (NGFW), is presented.
Исходные условия:Initial conditions:
Система 100 имеет физический сетевой порт 140 с PCI-адресом “0000:31:00.0”, выведенный из-под управления ядра операционной системы посредством технологии DPDK.System 100 has a physical network port 140 with a PCI address of “0000:31:00.0”, which is taken out of the control of the operating system kernel via DPDK technology.
Управляющее приложение 120 включает компоненты обработки тегированного трафика:The control application 120 includes tagged traffic processing components:
o Parser-L2 в составе модуля 124 обработки сетевой информации для парсинга заголовков 802.1qo Parser-L2 as part of the 124 network information processing module for parsing 802.1q headers
o SmartBalancer для формирования метаданных FlowMetao SmartBalancer for generating FlowMeta metadata
o Router для определения исходящего интерфейсаo Router to define the outgoing interface
o Stacker-L2 для формирования заголовков исходящих пакетовo Stacker-L2 for generating outgoing packet headers
Для физического порта 140 создан виртуальный сетевой интерфейс 150 типа TAP с именем “ng_eth0”.For physical port 140, a virtual network interface 150 of type TAP with the name “ng_eth0” was created.
В разделяемой памяти 130 размещена структура 132 данных для сопоставления интерфейсов, содержащая:In the shared memory 130, a data structure 132 is located for mapping interfaces, containing:
o rte_id = 0 (идентификатор физического порта в среде DPDK)o rte_id = 0 (physical port identifier in the DPDK environment)
o kernel_id = “ng_eth0” (идентификатор виртуального интерфейса в ядре ОС)o kernel_id = “ng_eth0” (virtual interface identifier in the OS kernel)
o mirror_rte_id = 5 (идентификатор TAP-интерфейса в среде DPDK)o mirror_rte_id = 5 (TAP interface identifier in the DPDK environment)
Конфигурация обработки реализует сценарий “Tag → Tag”: входящий трафик с тегом VlanID_A должен быть перенаправлен с измененным тегом VlanID_B через тот же физический порт 140.The processing configuration implements the “Tag → Tag” scenario: incoming traffic with the VlanID_A tag must be redirected with the modified VlanID_B tag through the same physical port 140.
Реализация на этапе 1: Инициализация и конфигурация.Implementation in Stage 1: Initialization and Configuration.
Вывод физического порта из-под управления ядра:Removing a physical port from kernel control:
– Управляющее приложение 120 инициализирует среду DPDK с параметрами – allow=0000:31:00.0– Control application 120 initializes the DPDK environment with parameters – allow=0000:31:00.0
– Физический порт 140 привязывается к драйверу vfio-pci и получает rte_id = 0– Physical port 140 is bound to the vfio-pci driver and receives rte_id = 0
– Создается mempool для буферов mbuf с размером элементов согласно спецификации– A mempool is created for mbuf buffers with element sizes according to the specification
Создание виртуального зеркального интерфейса:Creating a virtual mirror interface:
– Управляющее приложение 120 создает TAP-интерфейс с параметром --vdev=net_tap0,iface=ng_eth0,persist– Control application 120 creates a TAP interface with the parameter --vdev=net_tap0,iface=ng_eth0,persist
– Виртуальный интерфейс 150 “ng_eth0” появляется в ядре операционной системы и получает mirror_rte_id = 5– Virtual interface 150 “ng_eth0” appears in the operating system kernel and receives mirror_rte_id = 5
Инициализация структуры сопоставления:Initializing the mapping structure:
– В разделяемой памяти 130 создается структура 132 данных iflayout– In shared memory 130, the iflayout data structure 132 is created
– Структура 132 заполняется соответствием: физический порт (rte_id=0) ↔ зеркальный интерфейс (mirror_rte_id=5, kernel_id=“ng_eth0”)– Structure 132 is filled with the following mapping: physical port (rte_id=0) ↔ mirror interface (mirror_rte_id=5, kernel_id=“ng_eth0”)
Запуск компонентов обработки:Launching processing components:
– Запускается модуль 124 обработки с компонентами Parser-L2, SmartBalancer, Router, Stacker-L2– The 124 processing module is launched with the Parser-L2, SmartBalancer, Router, Stacker-L2 components
– Активируется модуль 122 выполнения зеркалирования– The mirroring execution module 122 is activated
Реализация на этапе 2: рабочий цикл (обработка конкретного пакета)Implementation in stage 2: work cycle (processing a specific packet)
Сценарий: На систему 100 поступает сетевой пакет.Scenario: A network packet arrives at system 100.
• Порт поступления: физический порт 140 (rte_id=0)• Receiving port: physical port 140 (rte_id=0)
• Очередь поступления: queue 0• Receipt queue: queue 0
• Тег VLAN: VlanID_A• VLAN tag: VlanID_A
Действия системы:System actions:
Прием пакета: Управляющее приложение 120 считывает пакет из RX-очереди физического порта 140 в буфер mbuf. Пакет содержит заголовок Ethernet с полем EtherType=0x8100 и значением VlanID_A.Packet reception: Control application 120 reads the packet from the RX queue of physical port 140 into the mbuf buffer. The packet contains an Ethernet header with the EtherType field set to 0x8100 and the VlanID_A value.
Выполнение зеркалирования: Модуль 122 зеркалирования создает копию входящего пакета и направляет ее в виртуальный интерфейс 150 “ng_eth0” (mirror_rte_id=5). С этого момента копия пакета становится видна в ядре операционной системы и может быть проанализирована стандартными утилитами.Mirroring execution: Mirroring module 122 creates a copy of the incoming packet and forwards it to virtual interface 150 "ng_eth0" (mirror_rte_id=5). From this point on, the packet copy becomes visible in the operating system kernel and can be analyzed using standard utilities.
Обработка сетевой информации на основном пути:Processing network information on the main path:
Parser-L2: Компонент определяет наличие тега VLAN по значению EtherType=0x8100, парсит структуру заголовка 802.1q и записывает VlanID_A в структуру PacketMeta.Parser-L2: The component detects the presence of a VLAN tag based on the EtherType=0x8100 value, parses the 802.1q header structure, and writes VlanID_A to the PacketMeta structure.
SmartBalancer: Создает FlowMeta с записью значения VlanID_A в секцию session-ingress/branch/mac-ingress/mac/vlan и добавляет запись в системный журнал journald посредством библиотеки libngj.SmartBalancer: Creates a FlowMeta with a record of the VlanID_A value in the session-ingress/branch/mac-ingress/mac/vlan section and adds a record to the journald system log using the libngj library.
Router: Определяет egress интерфейс как тот же физический порт 140 с требуемым значением VlanID_B и записывает его в секцию session-egress/branch/mac-ingress/mac/vlan FlowMeta, добавляя запись в journald.Router: Defines the egress interface as the same physical port 140 with the required VlanID_B value and writes it to the session-egress/branch/mac-ingress/mac/vlan FlowMeta section, adding an entry to journald.
Stacker-L2: Обнаруживает различие между ingress VlanID_A и egress VlanID_B, изменяет значение поля VlanID в структуре Stack PacketMeta с VlanID_A на VlanID_B и формирует заголовок 802.1q с новым значением.Stacker-L2: Detects the difference between ingress VlanID_A and egress VlanID_B, changes the value of the VlanID field in the Stack PacketMeta structure from VlanID_A to VlanID_B, and generates an 802.1q header with the new value.
Отправка пакета: Модифицированный пакет с тегом VlanID_B помещается в TX-очередь физического порта 140 для отправки в сеть. После отправки пакета система переходит к обработке следующего пакета.Packet transmission: The modified packet with the VlanID_B tag is placed in the TX queue of physical port 140 for transmission to the network. After the packet is transmitted, the system moves on to processing the next packet.
Таким образом, пакет был маршрутизирован с изменением тега VLAN с минимально возможной задержкой благодаря высокопроизводительной обработке в пространстве пользователя. При этом благодаря механизму зеркалирования через виртуальный интерфейс 150 система 100 сохранила функцию мониторинга трафика со стороны ядра операционной системы и возможность применения стандартных утилит управления.Thus, the packet was routed with a VLAN tag change and minimal latency thanks to high-performance user-space processing. At the same time, thanks to the mirroring mechanism via virtual interface 150, system 100 retained the traffic monitoring function of the operating system kernel and the ability to use standard management utilities.
Данный пример демонстрирует, как создание виртуального зеркального интерфейса и выполнение зеркалирования позволяют достичь технического результата – повышения гибкости управления и расширения функциональных возможностей системы для получения сетевой информации.This example demonstrates how the creation of a virtual mirror interface and the implementation of mirroring can achieve a technical result – increased management flexibility and expanded system functionality for obtaining network information.
Claims (21)
Publications (1)
| Publication Number | Publication Date |
|---|---|
| RU2854059C1 true RU2854059C1 (en) | 2025-12-29 |
Family
ID=
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060221975A1 (en) * | 2005-04-05 | 2006-10-05 | Alton Lo | Transporting multicast over MPLS backbone using virtual interfaces to perform reverse-path forwarding checks |
| CN115834448A (en) * | 2022-11-24 | 2023-03-21 | 上海交通大学 | Host-side lightweight container traffic monitoring system and method based on eBPF |
| US11706109B2 (en) * | 2021-09-17 | 2023-07-18 | Vmware, Inc. | Performance of traffic monitoring actions |
| US20230370346A1 (en) * | 2022-05-11 | 2023-11-16 | Vmware, Inc. | Packet flow monitoring with attribute-to-identifier mapping |
| RU2844281C1 (en) * | 2025-04-04 | 2025-07-28 | Общество с ограниченной ответственностью "Облачные технологии" (ООО "Облачные технологии") | Method of connecting a physical network controller to a soft switch using vdpa (virtio) for connecting to an external network |
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060221975A1 (en) * | 2005-04-05 | 2006-10-05 | Alton Lo | Transporting multicast over MPLS backbone using virtual interfaces to perform reverse-path forwarding checks |
| US11706109B2 (en) * | 2021-09-17 | 2023-07-18 | Vmware, Inc. | Performance of traffic monitoring actions |
| US20230370346A1 (en) * | 2022-05-11 | 2023-11-16 | Vmware, Inc. | Packet flow monitoring with attribute-to-identifier mapping |
| CN115834448A (en) * | 2022-11-24 | 2023-03-21 | 上海交通大学 | Host-side lightweight container traffic monitoring system and method based on eBPF |
| RU2844281C1 (en) * | 2025-04-04 | 2025-07-28 | Общество с ограниченной ответственностью "Облачные технологии" (ООО "Облачные технологии") | Method of connecting a physical network controller to a soft switch using vdpa (virtio) for connecting to an external network |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11221972B1 (en) | Methods and systems for increasing fairness for small vs large NVMe IO commands | |
| US7983257B2 (en) | Hardware switch for hypervisors and blade servers | |
| JP7034187B2 (en) | Data processing methods, network interface cards, and servers | |
| He et al. | MasQ: RDMA for virtual private cloud | |
| US7895601B2 (en) | Collective send operations on a system area network | |
| US7093024B2 (en) | End node partitioning using virtualization | |
| US8150981B2 (en) | Flexible and extensible receive side scaling | |
| EP2830270A1 (en) | Network interface card with virtual switch and traffic flow policy enforcement | |
| CN107431666B (en) | Method, apparatus and medium for achieving low latency in a data center environment | |
| US20130191547A1 (en) | Processing STREAMS Messages Over a System Area Network | |
| Kaufmann et al. | {FlexNIC}: Rethinking Network {DMA} | |
| US11995004B2 (en) | Methods and systems for using a packet processing pipeline to accelerate InfiniBand administrative operations | |
| CN112165435A (en) | A bidirectional flow control method and system based on virtual machine network quality of service | |
| RU2854059C1 (en) | Method for obtaining network information regarding a physical network port taken out of the operating system kernel control and managed by an application in user space | |
| US20090198483A1 (en) | Apparatus and method for network emulation by using hardware accelerated network interface cards | |
| Pantuza et al. | eQUIC gateway: Maximizing QUIC throughput using a gateway service based on eBPF+ XDP | |
| JP5107570B2 (en) | Network architecture, method, and computer program for network protocol stack isolation | |
| US11888737B1 (en) | Implementing network function logic in a virtual switch | |
| Baker et al. | Via communication performance on a gigabit ethernet cluster | |
| KR102812648B1 (en) | Method for processing packets using network stack, device for processing packets using network stack | |
| Miano et al. | Partial offloading of OpenFlow rules on a traditional hardware switch ASIC | |
| Perez et al. | Building distributed embedded systems with RTLinux-GPL | |
| Herrin | Linux IP Networking | |
| Bradford et al. | Packet reading for network emulation | |
| CN105827468B (en) | Real-time Monitoring Method of Network Performance |