1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openeuler-gazelle

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
user-guide_en.md 39 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 10.03.2025 17:01 5c2f3c0

Пользовательское руководство Gazelle

Установка

Настройте репозиторий yum OpenEuler и установите непосредственно с помощью команды yum:

# dpdk >= 21.11-2
yum install dpdk
yum install libconfig
yum install numactl
yum install libboundscheck
yum install libpcap
yum install gazelle

Использование

Настройте рабочую среду. Шаги для ускорения приложений с использованием Gazelle следующие:

1. Установите ko с правами root

Выберите ko для использования в зависимости от实际情况。Он предоставляет виртуальные сетевые порты и привязывает сетевые карты к функциям пользователя.

Если вы используете функцию виртуальных сетевых портов, используйте rte_kni.ko:

modprobe rte_kni carrier="on"

Конфигурирование NetworkManager для управления kni сетевой картой

[root@localhost ~]# cat /etc/NetworkManager/conf.d/99-unmanaged-devices.conf
[keyfile]
unmanaged-devices=interface-name:kni
[root@localhost ~]# systemctl reload NetworkManager

Привязка сетевой карты к пользовательским модулям из ядра. Выберите один из них в зависимости от ситуации. Для сетевых карт mlx4 и mlx5 не требуется привязка к vfio или uio драйверам.

# Если можно использовать IOMMU
modprobe vfio-pci
# Если нельзя использовать IOMMU, но есть поддержка noiommu
modprobe vfio enable_unsafe_noiommu_mode=1
modprobe vfio-pci
# Другие случаи
modprobe igb_uio

2. Привязка сетевой карты к DPDK

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

# При использовании vfio-pci
dpdk-devbind -b vfio-pci enp3s0
# При использовании igb_uio
dpdk-devbind -b igb_uio enp3s0

3. Настройка большого страницного памяти

Gazelle использует большие страницы для повышения эффективности. Настройте систему для хранения больших страниц с использованием прав root. Можно выбрать любой размер страницы. Поскольку каждая страница памяти требует одного файла-дескриптора (fd), рекомендуется использовать страницы размером 1 ГБ при работе с большим объемом памяти, чтобы избежать использования слишком многих fd. Выберите размер страницы в зависимости от ситуации и настройте достаточное количество больших страниц. Шаги для настройки больших страниц следующие:

# Настройка 2МБ большой страницы: на узле 0 настроено 2МБ * 1024 = 2ГБ
echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
# Настройка 1ГБ большой страницы: на узле 0 настроено 1ГБ * 5 = 5ГБ
```bash
echo 5 > /sys/devices/system/node/node0/hugepages/hugepages-1048576kB/nr_hugepages
# Проверьте результат конфигурации
```sh
grep Huge /proc/meminfo
```### 4. Монтирование huge страниц
Создайте два каталога для процесса lstack и процесса ltran для доступа к huge страницам. Шаги операции следующие:

```sh
mkdir -p /mnt/hugepages-ltran
mkdir -p /mnt/hugepages-lstack
chmod -R 700 /mnt/hugepages-ltran
chmod -R 700 /mnt/hugepages-lstack
# Примечание: /mnt/hugepages-ltran и /mnt/hugepages-lstack должны быть монтированы huge страницами одного размера.
mount -t hugetlbfs none /mnt/hugepages-ltran -o pagesize=2M
mount -t hugetlbfs none /mnt/hugepages-lstack -o pagesize=2M

5. Приложение использует Gazelle

Есть два способа использования Gazelle, выберите один в зависимости от ваших потребностей

  • Перекомпилировать приложение и связать библиотеку Gazelle Измените файл Makefile приложения для связи с liblstack.so, как показано ниже:
# Добавьте Makefile Gazelle в Makefile
-includefile /etc/gazelle/lstack.Makefile
# Скомпилируйте и добавьте переменную LSTACK_LIBS
gcc test.c -o test ${LSTACK_LIBS}
  • Используйте LD_PRELOAD для загрузки библиотеки Gazelle Переменная окружения GAZELLE_BIND_PROCNAME указывает имя процесса, а LD_PRELOAD указывает путь к библиотеке Gazelle
GAZELLE_BIND_PROCNAME=test LD_PRELOAD=/usr/lib6

6. Конфигурационный файл

  • Файл конфигурации lstack.conf используется для указания параметров запуска lstack, с путём по умолчанию /etc/gazelle/lstack.conf. Параметры конфигурационного файла следующие:| Опция | Формат параметра | Описание | |:---|:---|:---| | dpdk_args | --socket-mem (обязательно)
    --huge-dir (обязательно)
    --proc-type (обязательно)
    --legacy-mem
    --map-perfect
    -d
    --iova-mode и т.д. | Параметры инициализации DPDK, см. документацию DPDK.
    Для PMD, не связанных с liblstack.so, используйте -d для загрузки, например libnet_mlx5.so.
    Если Gazelle запускается как обычный пользователь root, нам нужно указать iova-mode как va, например --iova-mode va | | use_ltran | 0/1 | Нужно ли использовать ltran. | | listen_shadow | 0/1 | Нужно ли использовать слушание shadow FD. Используется, когда есть несколько потоков протокола стека для одного слушательного потока. | | num_cpus | "0,2,4 ... " | Число ЦПУ, к которым привязываются потоки lstack. Количество ID соответствует количеству потоков lstack (что меньше или равно количеству очередей на каждом NIC). ЦПУ могут быть выбраны согласно NUMA. | | app_bind_numa | 0/1 | Нужно ли привязывать потоки epoll и poll приложения к NUMA, где находится стек протокола. | По умолчанию равно 1, что означает привязку. | | app_exclude_cpus | "7,8,9 ... " | Номера процессоров, к которым не будут привязаны потоки epoll и poll приложения. Эффективно только при app_bind_numa = 1. | | low_power_mode | 0/1 | Включено ли режим экономии энергии. В настоящее время не поддерживается. | | kni_switch | 0/1 | Переключатель rte_kni, значение по умолчанию — 0. Может быть включен только при отсутствии использования ltran. | | unix_prefix | "строка" | Префиксная строка для межпроцессного взаимодействия с использованием UNIX-сокетов. |По умолчанию пустое значение и должно совпадать с unix_prefix в конфигурационном файле ltan.conf или параметром -u командной строки gazellectl. Не может содержать специальные символы, максимальная длина — 128 символов. | host_addr | "192.168.xx.yy" | IP-адрес протокольной стековой машины, должен совпадать со значением поля "bind" в конфигурационном файле redis-server. | mask_addr | "255.255.xx.yy" | Маска адреса. | gateway_addr | "192.168.xx.1" | Адрес шлюза. | devices | "aa:bb:cc:dd:ee:ff" | MAC-адрес для связи через сетевой адаптер, должен совпадать с конфигурацией bond_macs в ltan.conf; в режиме lstack bond1 указывает основной интерфейс bond1, выбирается один из значений bond_slave_mac. | send_connect_number | 4 | Положительное целое число, указывающее количество соединений, обрабатываемых за цикл протокольной стековой машины для передачи пакетов. | read_connect_number | 4 | Положительное целое число, указывающее количество соединений, обрабатываемых за цикл протокольной стековой машины для приема пакетов. | rpc_number | 4 | Положительное целое число, указывающее количество сообщений RPC, обрабатываемых за цикл протокольной стековой машины. | nic_read_num | 128 | Положительное целое число, указывающее количество данных, считываемых с NIC за цикл работы протокольной стековой машины. | tcp_conn_count | 1500 | Максимальное количество TCP-соединений. Этот параметр, умноженный на mbuf_count_per_conn, представляет собой размер пула mbuf, выделенного при инициализации.При слишком маленьком значении запуск может завершиться ошибкой. tcp_conn_count * mbuf_count_per_conn * 2048 байт не должны превышать размер большой страницы.

| mbuf_count_per_conn | 170 | Количество mbuf, необходимых для каждого TCP-соединения. Этот параметр, умноженный на tcp_conn_count, представляет собой размер пула адресов mbuf, выделенного при инициализации. При слишком маленьком значении запуск может завершиться ошибкой. tcp_conn_count * mbuf_count_per_conn * 2048 байт не должны превышать размер большой страницы.

| nic_rxqueue_size | 4096 | Глубина очереди приема NIC, диапазон — 512-8192, значение по умолчанию — 4096.

| nic_txqueue_size | 2048 | Глубина очереди передачи сетевой карты, диапазон значений от 512 до 8192, значение по умолчанию — 2048.

| nic_vlan_mode | -1 | Переключатель режима VLAN, допустимое значение — номер VLAN, диапазон значений от -1 до 4094, -1 означает отключен, значение по умолчанию — -1.

| bond_mode | n | Режим объединения, поддерживает ACTIVE_BACKUP/8023AD/ALB, соответствующие значения равны 1/4/6; при установке в -1 или NULL указывает на то, что объединение не настроено.

| bond_slave_mac | "aa:bb:cc:dd:ee:ff;dd:aa:cc:dd:ee:ff" | Адреса MAC двух подинтерфейсов, используемых для создания объединения.

| bond_miimon | n | Время мониторинга соединения в миллисекундах, диапазон значений от 1 до 2^31 - 1, значение по умолчанию — 10 мс.

| flow_bifurcation | 0/1 | Переключатель разделения потока (альтернатива схеме KNI), который направляет неподдерживаемые пакеты в ядро через Gazelle.Значение по умолчанию — 0, что означает выключенное состояние.

Пример конфигурационного файла lstack.conf:
```conf
dpdk_args=["--socket-mem", "2048,0,0,0", "--huge-dir", "/mnt/hugepages-lstack", "--proc-type", "primary", "--legacy-mem", "--map-perfect"]use_ltran=1
kni_switch=0

low_power_mode=0

num_cpus="2, 22"

host_addr="192.168.1.10"
mask_addr="255.255.255.0"
gateway_addr="192.168.1.1"
devices="aa:bb:cc:dd:ee:ff"

send_connect_number=4
read_connect_number=4
rpc_number=4
nic_read_num=128
tcp_conn_count=1500
mbuf_count_per_conn=170
```Файл конфигурации `ltran.conf` используется для указания параметров запуска `ltran`, с путём по умолчанию `/etc/gazelle/ltran.conf`. При использовании `ltran` установите `use_ltran=1` в `lstack.conf` и настройте параметры следующим образом:

```markdown
| Категория функциональности | Опция            | Формат параметра | Описание                                                                                   |
|:---------------------------|:-----------------|:------------------|:-------------------------------------------------------------------------------------------|
| kit                         | forward_kit      | "dpdk"            | Указывает модуль передачи/приёма сетевой карты.                                            |
|                              | forward_kit_args | "-l<br>--socket-mem (обязательно)<br>--huge-dir (обязательно)<br>--proc-type (обязательно)<br>--legacy-mem (обязательно)<br>--map-perfect (обязательно)<br>-d<br>и т. д." | Параметры инициализации DPDK, см. документацию DPDK.                                           |
|                              |                  |                   | Примечание: --map-perfect — расширенная функция, используемая для предотвращения захвата DPDK лишнего адресного пространства, что обеспечивает выделение дополнительного адресного пространства для lstack. |
|                              |                  |                   | Для PMD, не связанных с ltran, -d обязательно для загрузки, например librte_net_mlx5.so.    |
|                              |                  |                   | -l привязывает ядра процессора, отличные от тех, которые привязаны к lstack, иначе производительность может значительно упасть.                           |
| kni                         | kni_switch       | 0/1               | Переключатель rte_kni, значение по умолчанию равно 0                                       |
| unix                        | unix_prefix      | "строка"         | Префикс строки файла Unix-сокета, используемый для связи между процессами gazelle, значение по умолчанию пустое, согласуется с unix_prefix в конфигурационном файле lstack. |
| Category of functionality | Option             | Parameter format | Description                                                                                   |
|:--------------------------|:-------------------|:-----------------|:---------------------------------------------------------------------------------------------|
| kit                         | forward_kit        | "dpdk"           | Specifies the module for network card transmission/reception.                             |
|                              | forward_kit_args   | "-l<br>--socket-mem (required)<br>--huge-dir (required)<br>--proc-type (required)<br>--legacy-mem (required)<br>--map-perfect (required)<br>-d<br>and so on." | Initialization parameters for DPDK, see DPDK documentation.                                      |
|                              |                    |                  | Note: --map-perfect — an extended feature used to prevent DPDK from capturing unnecessary address space, ensuring additional address space allocation for lstack. |
|                              |                    |                  | For PMDs not associated with ltran, -d is required for loading, e.g., librte_net_mlx5.so.   |
|                              |                    |                  | -l binds processor cores different from those bound to lstack; otherwise performance may drop significantly.                                          |
| kni                         | kni_switch         | 0/1              | Switch for rte_kni, default value is 0                                                      |
| unix                        | unix_prefix        | "string"         | Prefix string for the Unix socket file used for communication between gazelle processes, default value is empty, matches unix_prefix in the lstack configuration file. |
```conf или параметром `-u` командной строки `gazellectl` |

| Параметр          | Настройка                 | Значение по умолчанию | Описание                                                                                                                                                                                                                   |
|-------------------|---------------------------|-----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| dispatcher        | dispatch_max_clients      | n                     | Максимальное количество клиентов, поддерживаемых ltran.<br>1. В многопроцессорной однониточной сценарии число поддерживаемых экземпляров lstack не должно превышать 32, при этом каждый экземпляр lstack имеет одну сетевую нить.<br>2. В однопроцессорной многониточной сценарии поддерживается только один экземпляр lstack, при этом число сетевых нитей каждого экземпляра lstack не должно превышать 32. |
|                   | dispatch_subnet           | 192.168.xx.xx        | Подсетевая маска, указывающая на сегмент подсети, где ltran может распознавать IP-адреса. Параметр является примером; настройте подсеть в соответствии со значением факта.                                                                                           |
|                   | dispatch_subnet_length    | n                     | Длина подсети, указывающая на длину подсети, которую ltran может распознавать. Например, когда длина равна 4, она охватывает IP-адреса от 192.168.1.1 до 192.168.1.16.                                                                                             |
| bond              | bond_mode                 | n                     | Режим объединения, в настоящее время поддерживаются только активное резервное копирование (Режим 1), значение равно 1.                                                                                                             |
|                   | bond_miimon               | n                     | Время мониторинга соединения объединения, в миллисекундах, диапазон от 1 до 2<sup>64</sup> - 1 - (1000 * 1000).                                                                                                                   |
|                   | bond_ports                | `"0xaa"`              | Используемые сетевые адаптеры DPDK, где 0x1 представляет первый адаптер.                                                                                                                                                       |
|                   | bond_macs                 | `"aa:bb:cc:dd:ee:ff"` | MAC-адреса, привязанные к сетевым адаптерам, должны совпадать с MAC-адресом KNI.                                                                                                                                               ||| bond_mtu                | n                    | Максимальный размер передачи данных, значение по умолчанию равно 1500, не может превышать 1500, минимальное значение равно 68, не может быть ниже 68 | Пример конфигурационного файла ltran.conf:
```conf
forward_kit_args="-l 0,1 --socket-mem 1024,0,0,0 --huge-dir /mnt/hugepages-ltran --proc-type primary --legacy-mem --map-perfect --syslog daemon"
forward_kit="dpdk"
```kni_switch=0

dispatch_max_clients=30
dispatch_subnet="192.168.1.0"
dispatch_subnet_length=8

bond_mode=1
bond_mtu=1500
bond_miimon=100
bond_macs="aa:bb:cc:dd:ee:ff"
bond_ports="0x1"

tcp_conn_scan_interval=10

7. Запуск приложения

  • Запуск процесса ltran
    Если это одиночный процесс и сетевая карта поддерживает несколько очередей, то можно использовать сразу несколько очередей сетевой карты для распределения пакетов между каждым потоком, не запуская отдельно процесс ltran. Установите use_ltran=0 в lstack.conf.
    Если при запуске ltran не указывается конфигурационный файл с помощью параметра -config-file, используется значение по умолчанию /etc/gazelle/ltran.conf.
ltran --config-file ./ltran.conf
  • Запуск приложения
    Перед запуском приложения, если переменной окружения LSTACK_CONF_PATH не указан конфигурационный файл, используется значение по умолчанию /etc/gazelle/lstack.conf.
export LSTACK_CONF_PATH=./lstack.conf
LD_PRELOAD=/usr/lib64/liblstack.so GAZELLE_BIND_PROCNAME=redis-server redis-server redis.conf

8. API

Gazelle оборачивает POSIX интерфейсы приложений, поэтому для приложений не требуется никаких модификаций кода.### 9. Команды отладки

  • Команда gazellectl ltran недоступна при отсутствии режима ltran.
  • Параметр -u указывает префикс Unix сокета для межпроцессного взаимодействия Gazelle, который должен совпадать со значением параметра unix_prefix в конфигурационном файле ltran.conf или lstack.conf.
  • Для соединений UDP в настоящее время команда gazellectl lstack поддерживается только без параметров LSTACK_OPTIONS.
Использование: gazellectl [-h | help]
или: gazellectl ltran {quit | show} [LTRAN_OPTIONS] [time] [-u UNIX_PREFIX]
или: gazellectl lstack show {ip | pid} [LSTACK_OPTIONS] [time] [-u UNIX_PREFIX]
```quit            завершает процесс ltran

где LTRAN_OPTIONS := 
                      показывает все статистики ltran
-r, rate        показывает статистику ltran каждую секунду
-i, instance    показывает информацию о регистрации экземпляра ltran
-b, burst       показывает длину пакета NIC ltran каждую секунду
-t, table       {socktable | conntable}  показывает таблицу сокетов или соединений ltran
-l, latency     показывает задержку ltran

где LSTACK_OPTIONS := показывает все статистики lstack -r, rate показывает статистику lstack каждую секунду -s, snmp показывает SNMP lstack -c, connect показывает соединение lstack -l, latency показывает задержку lstack -x, xstats показывает расширенные статистики lstack -k, nic-features показывает состояние отключения протокола и других возможностей -a, aggregation [время] показывает агрегацию отправки/приёма lstack установка: уровень журналирования {ошибка | информация | отладка} установить уровень журналирования lstack низковольтный режим {0 | 1} установить низковольтный режим [время] измеряет время задержки, по умолчанию 1 с


Сетевые карты, используемые Gazelle, управляются DPDK, поэтому традиционный `tcpdump` не может захватывать пакеты с Gazelle. Вместо этого Gazelle использует инструмент `gazelle-pdump` из пакета `dpdk-tools` для захвата пакетов. Этот инструмент использует многопроцессный режим DPDK и делится памятью с процессами `lstack/ltran`. В режиме `ltran` инструмент `gazelle-pdump` может захватывать только те пакеты, которые прямым образом взаимодействуют с сетевой картой. Используя фильтрацию пакетов `tcpdump`, можно фильтровать пакеты, специфичные для `lstack`.

[Подробное использование](https://gitee.com/openeuler/gazelle/blob/master/doc/pdump.md)### 10. Примечания по использованию
#### 1. Расположение конфигурационного файла DPDK
Расположение конфигурационного файла DPDK зависит от привилегий пользователя:
- Если запущено от имени root пользователя, конфигурационный файл DPDK будет размещен в директории `/var/run/dpdk` после запуска DPDK.
- Если запущено от имени некоего другого пользователя, расположение конфигурационного файла DPDK определяется переменной окружения `XDG_RUNTIME_DIR`:
  - Если `XDG_RUNTIME_DIR` пустая, конфигурационный файл DPDK будет размещен в директории `/tmp/dpdk`.
  - Если `XDG_RUNTIME_DIR` не пустая, конфигурационный файл DPDK будет размещен в директории, указанной переменной `XDG_RUNTIME_DIR`.
  - Обратите внимание, что некоторые машины могут иметь `XDG_RUNTIME_DIR` установленной по умолчанию.

#### 2. Влияние исправления уязвимости retbleed на производительность gazelle
- Версия ядра 5.10.0-60.57.0.85 включает исправление уязвимости retbleed, что приводит к снижению производительности gazelle на архитектуре x86. Для смягчения потери производительности, вызванной этой уязвимостью (CVE), пользователи могут добавить **retbleed=off mitigations=off** в параметры загрузки. Пользователи могут выбрать, следует ли смягчать эту уязвимость в зависимости от характеристик своего продукта, но она не смягчается по умолчанию по соображениям безопасности.- В тестовом сценарии, где отправитель находится в режиме ядра, а получатель — в режиме пользователя при использовании `ltran`, с пакетами размером 1024 байта, производительность упала с 17000 Мбит/с до 5000 Мбит/с.
- Аффективные версии включают openEuler-22.03-LTS (версия ядра равна или выше 5.10.0-60.57.0.85) и последующие версии SP.
- Дополнительные детали можно найти здесь: <https://gitee.com/openeuler/kernel/pulls/110> ## ОграниченияПри использовании Gazelle существуют определенные ограничения:

#### Функциональные ограничения
- Блокирующие режимы для принятия или установки соединения не поддерживаются.
- Поддерживается максимум 1500 TCP-соединений.
- В настоящее время поддерживаются протоколы TCP, ICMP, ARP и IPv4.
- При пинге Gazelle от соседнего устройства длина пакета должна быть меньше или равна 14792 байтам.
- Прозрачные огромные страницы не поддерживаются.
- ltran не поддерживает смешивание нескольких типов объединённых сетевых карт.
- В режиме активного-резервного объединения bond1 в ltran поддерживаются только сбои уровня канала (например, отключение кабеля), а не уровней физической среды (например, выключение питания NIC, отключение NIC).
- Нет поддержки многоконечников для сетевых адаптеров виртуальных машин.

#### Операционные ограничения
- Предоставленные командные строки и конфигурационные файлы по умолчанию требуют привилегий root. Пользователи без прав root должны повышать свои привилегии и менять владельца файла перед использованием.
- Для возврата сетевой карты пользователя обратно в драйвер ядра требуется завершение работы Gazelle.
- Огромные страницы нельзя создавать в подкаталогах монтирования для повторной монтировки.
- ltran требует минимум 1064 МБ огромных страниц памяти.
- Каждый поток протокольной стековой программы требует минимум 800 МБ огромных страниц памяти.- Поддерживаются только 64-битные системы.
- Создание версии x86 Gazelle использует опцию `-march=native`, что оптимизирует для архитектуры процессора окружения сборки (инструкции набора команд Intel® Xeon® Gold 5118 CPU @ 2.30 GHz). Процессор среды выполнения должен поддерживать инструкции SSE4.2, AVX, AVX2 и AVX-512.
- Максимальное количество фрагментов IP для переассемблирования IP-datagram составляет 10 (максимальная длина пакета при пинге 14792 байта), и протокол TCP не использует фрагментацию IP.
- Убедитесь, что конфигурация sysctl настраивает параметр `rp_filter` сетевой карты на значение 1; в противном случае, стек протоколов Gazelle может не работать так, как ожидалось, и стек протоколов ядра всё ещё будет использоваться.
- Без использования режима `ltran` интерфейсы KNI не могут быть настроены для поддержки только локальной связи и требуют настройки NetworkManager для того, чтобы он не управлял интерфейсами KNI до запуска.
- IP-адреса и адреса MAC виртуальных интерфейсов KNI должны совпадать с теми, которые указаны в конфигурационном файле `lstack.conf`.
- При отправке UDP-пакетов длиннее 45952 (32 * 1436) байтов размер `send_ring_size` следует увеличить до минимум 64.

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

**Общая память**

- **Текущий статус**
  Огромные страницы монтируются в директорию `/mnt/hugepages-lstack`, а процессы, связанные с `liblstack.so`, создают файлы в директории `/mnt/hugepages-lstack` во время инициализации. Каждый файл соответствует одной огромной странице размером 2МБ и mmap-ируется. При получении информации о регистрации от `lstask`, `ltran` также mmap-ирует файлы в этой директории на основе конфигурации огромной страницы памяти, обеспечивая общую память огромных страниц.
  `ltran` работает аналогично с огромными страницами памяти в директории `/mnt/hugepages-ltran`.

- **Текущие меры защиты**
  Файлы огромных страниц имеют права доступа 600, доступны только пользователю `OWNER`, по умолчанию это пользователь `root`, и могут быть настроены для других пользователей.
  Файлы огромных страниц имеют блокировки файлов DPDK, что препятствует прямой записи или отображению.

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

**Имитация процессов**  
Зарегистрированные легально процессы `lstack` с `ltran` могут имитировать друг друга (Процесс A может имитировать Процесс B) для отправки фальшивых сообщений `ltran`, изменяя информацию управления пересылкой `ltran`, что может вызывать аномалии в связи в Процессе B и потенциально утечки информации из Процесса B в Процесс A. Рекомендуется, чтобы все процессы `lstack` были доверенными процессами.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/openeuler-gazelle.git
git@api.gitlife.ru:oschina-mirror/openeuler-gazelle.git
oschina-mirror
openeuler-gazelle
openeuler-gazelle
master