Значения параметров, специфичных для ПК «С-Терра Шлюз DP ST. Версия 4.3», задаются в файле /opt/VPNagent/etc/ipsm_dpdk.cfg.
Во время инициализации были выполнены минимально-необходимые настройки файла ipsm_dpdk.cfg. Изменить сделанные при инициализации настройки можно при помощи скрипта opt/VPNagent/bin/configure_dp.sh.
Для оптимальной работы Шлюза DP может потребоваться ручное редактирование конфигурационного файла ipsm_dpdk.cfg, подробное описание которого приведено ниже.
Конфигурационный файл ipsm_dpdk.cfg разделён на секции. Название секции заключается в квадратные скобки “[]” и пишется заглавными буквами.
Возможные секции: EAL, MISC, PERFORMANCE, PORT<N>. Прочие игнорируются.
Не должны присутствовать две секции с одинаковыми именами. Возможно присутствие нескольких секций PORT<N>, отличающихся порядковым номером, например PORT0, PORT1.
Проверяются и используются только значения известных параметров. Неизвестные параметры, в том числе с ошибкой в имени, либо существующие параметры, ошибочно указанные в другой секции - игнорируются.
В конфигурационном файле допускаются комментарии. Символ комментария - точка с запятой “;“. Всё, стоящее в строке после “;” будет проигнорировано.
Внутри секций перечисляются параметры (по одному на строку) в виде:
имя_параметра = значение_параметра
Секция EAL (Environment Abstraction Layer).
Данная секция содержит параметры, необходимые для инициализации и запуска подсистем DPDK.
Параметр coremask - битовая маска доступных для С-Терра Шлюз ядер процессора, включая ядра HyperThreading. Обычно это все ядра системы. Обязательный параметр (должен присутствовать либо coremask либо cpuset).
coremask = 0xffffffffffffffff; для 64 ядер
Параметр channels - количество каналов памяти. Опциональный параметр. Значение по умолчанию 1. Допустимые значения - от 1 до 8.
Параметр eal_log_level - уровень протоколирования подсистемы DPDK. Чем больше значение параметра, тем подробнее. Опциональный параметр. Значение по умолчанию 4 (RTE_LOG_ERR). Допустимые значения - от 1 (RTE_LOG_EMERG) до 8 (RTE_LOG_DEBUG).
Параметр cpuset даёт возможность задавать детальное соответствие потоков DPDK (т.н. lcore) и ядер процессора. Например, с его помощью можно задать количество потоков, большее, чем количество доступных ядер. Описание синтаксиса:
cpuset = ’<lcore_set>[@cpu_set][,<lcore_set>[@cpu_set],...]’
‘lcore_set’ and ‘cpu_set’ can be a single number, range or a group.
A number is a “digit([0-9]+)”; a range is “<number>-<number>”; a group is “(<number|range>[,<number|range>,...])”.
(Подробнее можно посмотреть по ссылке: http://dpdk.org/doc/guides-16.04/prog_guide/env_abstraction_layer.html#eal-pthread-and-lcore-affinity). Опциональный параметр. По умолчанию отключено.
Пример:
cpuset = ’1,2@(5-7),(3-5)@(0,2),(0,6),7-8’
Параметр rx_pthresh задаёт низкоуровневый параметр сетевой карты “RX prefetch threshold”. Допустимые значения - от 0 до 255. Опциональный параметр. Значение по умолчанию -: 8.
Параметр rx_hthresh задаёт низкоуровневый параметр сетевой карты “RX host threshold”. Допустимые значения - от 0 до 255. Опциональный параметр. Значение по умолчанию -: 8.
Параметр rx_wthresh задаёт низкоуровневый параметр сетевой карты “RX write-back threshold”. Допустимые значения - от 0 до 255. Опциональный параметр. Значение по умолчанию - 4.
Параметр tx_pthresh задаёт низкоуровневый параметр сетевой карты “TX prefetch threshold”. Допустимые значения - от 0 до 255. Опциональный параметр. Значение по умолчанию - 36.
Параметр tx_hthresh задаёт низкоуровневый параметр сетевой карты “TX host threshold”. Допустимые значения - от 0 до 255. Опциональный параметр. Значение по умолчанию - 0.
Параметр tx_wthresh задаёт низкоуровневый параметр сетевой карты “TX write-back threshold”. Допустимые значения - от 0 до 255. Опциональный параметр. Значение по умолчанию - 0.
Секция MISC.
Содержит разнообразные общие параметры, такие как настройки протоколирования, номера портов natt, включение режима mssfix.
Параметр print_stats - вывод статистики ipsm-app - rx/tx/drop, sendqueue size. Опциональный параметр. Возможные значения - “yes”/“no”. По умолчанию отключено (no).
Внимание! |
Если конфигурационный файл создавался с помощью скрипта configure_dp.sh, то в нем будет установлено значение по умолчанию yes. Параметр stats_period задаёт периодичность отображения статистики (в секундах). Работает только при включенном print_stats. Допустимые значения - от 1 до 86400 (сутки). Опциональный параметр. Значение по умолчанию - 1. Параметр stats_file - вывод статистики в файл. Работает только при включенном print_stats. Опциональный параметр. По умолчанию отключено (вывод идёт на консоль при ручном запуске ipsm-app с параметром -f). Файл статистики описан в разделе «Возможности протоколирования и статистики для настройки шлюза». |
Пример:
stats_file = /tmp/stats_gw2
Параметр stats_file_size задаёт максимальный размер файла статистики в мегабайтах. При превышении данного размера файл будет переименован с добавлением расширения “.old”. Если файл с расширением “.old” уже есть, он будет удалён. Для вывода будет создан новый файл с оригинальным именем. Допустимые значения - от 1 до 100. Опциональный параметр. Значение по умолчанию - 10.
Параметр print_frames вывод входящих/отправляемых кадров ethernet в шестнадцатеричном виде. Возможные значения - “yes”/“no”. Опциональный параметр. По умолчанию отключено (no).
Параметр frames_file - выводить печать кадров ethernet в файл. Работает только при включенном print_frames. Опциональный параметр. По-умолчанию отключено (вывод идёт на консоль при ручном запуске ipsm-app с параметром -f).
Пример:
frames_file = /tmp/frames.txt
Параметр frames_file_size задаёт максимальный размер файла дампа кадров в мегабайтах. При превышении данного размера файл будет переименован с добавлением расширения “.old”. Если файл с расширением“.old” уже есть, он будет удалён. Для вывода будет создан новый файл с оригинальным именем. Допустимые значения - от 1 до 200. Опциональный параметр. Значение по умолчанию - 50.
Параметр frames_time включает печать времени вместе с дампом пакета. Формат времени - аналогичен формату, используемому в утилите klogview (см. «Специализированные команды»). Работает только при наличии print_frames. Опциональный параметр. Возможные значения - “yes”/“no”. По умолчанию отключено (no).
Параметр pf_max_bytes - задаёт максимальное количество байт (с начала кадра), которые будут напечатаны. Работает только при наличии print_frames. Опциональный параметр. Допустимые значения - от 14 до 1400. По умолчанию - 42 байта.
Параметр natt_port позволяет задать номер NATT-порта. Опциональный параметр. Допустимые значения - от 1 до 65535. Значение по умолчанию - 4500.
Параметр session_distribution управляет включением механизма распределения входящих IPv4-пакетов по определённым (одним и тем же для сходных пакетов) вычислительным потокам. Возможные значения: src-ip (распределение по source ip), dst-ip (распределение по destination ip), src-port (распределение по source port), dst-port (распределение по destionation port), all (распределение с учётом всех указанных ранее полей). Опциональный параметр. По умолчанию отключено.
Примеры:
session_distribution = dst_ip
либо
session_distribution = all
Параметр rte_log_file задаёт имя файла, в который будут выводиться протоколируемые события dpdk. Подробность вывода зависит от параметра eal_log_level. Опциональный параметр. По умолчанию - отключено.
Пример:
EAL: Detected lcore 0 as core 0 on socket 0
EAL: Detected lcore 1 as core 1 on socket 0
EAL: Support maximum 254 logical core(s) by configuration.
EAL: Setting up physically contiguous memory…
EAL: Creating 4 segment lists: n_segs:32 socket_id:0 hugepage_sz:1073741824
EAL: TSC frequency is ~2000000 KHz
EAL: Master lcore 0 is ready (tid=7f2d5ea33c00;cpuset=[0])
EAL: PCI device 0000:02:00.0 on NUMA socket 0
EAL: probe driver: 8086:1521 net_e1000_igb
EAL: Not managed by a supported kernel driver, skipped
EAL: PCI device 0000:02:00.1 on NUMA socket 0
EAL: probe driver: 8086:1521 net_e1000_igb
EAL: Not managed by a supported kernel driver, skipped
EAL: PCI device 0000:06:00.0 on NUMA socket 0
EAL: probe driver: 8086:1572 net_i40e
EAL: PCI memory mapped at 0x940000000
EAL: PCI memory mapped at 0x940800000
Параметр rte_log_file_size задаёт максимальный размер файла протоколирования событий dpdk в мегабайтах. При превышении данного размера файл будет переименован с добавлением окончания «.old» Если «.old» уже есть, он будет удалён. Для вывода будет создан новый файл с оригинальным именем. Допустимые значения — от 1 до 100. Опциональный параметр. Значение по-умолчанию: 10.
Секция PERFORMANCE.
Содержит настройки, влияющие на производительность (скорость, задержки, пересортировка).
Параметр threads задаёт количество вычислительных потоков. Исходя из него, должно формироваться количество интерфейсов DP<N> и идентификаторов потока для параллельной обработки трафика. Максимальное значение равно количеству ядер, доступных для DPDK (по параметру coremask) минус 3 * <количество контролируемых физических портов> минус 2. Допустимые значения - от 1 до 247. Обязательный параметр.
Параметр threads должен быть одинаковым для партнёров по соединению. При разном значении threads у партнёров будут происходить потери части пакетов, идущих из подсети шлюза с большим значением threads. В логе (syslog) будут сообщения о неудаче при построениии ike (обращать внимание на stream id больший чем threads):
Jan 26 20:44:43 localhost vpnsvc: 10000001 <1:356> Start IKE session, Request: Inbound ISAKMP packet, type Quick, peer 192.168.15.53, sessionId 95F5C1C8131C9E27.619D1956
Jan 26 20:44:43 localhost vpnsvc: 1000001c <1:356> Received notification [STREAM-ID]: Set stream id for IPsec SA, Stream id:6
Jan 26 20:44:43 localhost vpnsvc: 1000000b <1:356> Receive traffic request: (192.168.160.137,,)->(192.168.160.139,,)
Jan 26 20:44:43 localhost vpnsvc: 10000018 <1:356> IKE session stopped at [Quick Mode, Responder, Packets 1,2][Check incom IDs], Reason: Invalid traffic request
Jan 26 20:44:43 localhost vpnsvc: 0010011c <1:356> Incoming connection failed: [Quick Mode, Responder, Packets 1,2] [Check incom IDs] : Invalid traffic request. Peer 192.168.15.53, id "C=RU,CN=Gate53_DP", IKERule ike
Также см. описание параметров thr_start и thr_count секции PORT.
Параметр sendqueue_size - размер (в пакетах) очереди sendqueue. Она служит для исправления пересортировки пакетов. Допустимые значения - от 1000 до 200000. Опциональный параметр. Значение по умолчанию - 64000.
Параметр disable_sendqueue - отключение механизма исправления пересортировки пакетов. Возможные значения - “yes”/“no”. Опциональный параметр. По умолчанию отключено (no).
Параметр tx_retries - задаёт количество попыток отправить обработанный кадр ethernet в физический порт, если его отправка по каким-либо причинам не удалась. При превышении этого значения он будет отброшен. Допустимые значения - от 0 до 1000. Опциональный параметр. Значение по умолчанию - 10.
Параметр tx_delay - задержка (в микросекундах) перед повторной попыткой отправки пакета. Допустимые значения - от 0 до 200. Опциональный параметр. Значение по умолчанию - 20.
Параметр rx_desc - количество RX-дескрипторов (на приём) сетевой карты. Зависит от используемого аппаратного обеспечения. Допустимые значения - от 32 до 4096, значение должно быть степенью 2, значение должно быть кратно 32. Опциональный параметр. Значение по умолчанию - 4096.
Рекомендуемое значение для i40e (семейство Intel X710): 4096.
Рекомендуемое значение для ixgbe (семейство Intel 82599): 4096.
Параметр tx_desc количество TX-дескрипторов (на отправку) сетевой карты. Зависит от используемого аппаратного обеспечения. Допустимые значения - от 32 до 4096, значение должно быть степенью 2, значение должно быть кратно 32. Опциональный параметр. Значение по умолчанию - 4096.
Рекомендуемое значение для i40e (семейство Intel X710): 4096.
Рекомендуемое значение для ixgbe (семейство Intel 82599): 4096.
Параметр no_max_freq - отключение механизма повышения тактовой частоты на используемых ядрах процессора. Можно использовать, если выдаётся диагностика “Power init failed” в файле /tmp/ipsm-app/error.log. Возможные значения - “yes”/“no”. Опциональный параметр. По умолчанию отключено (no).
Параметр sendq_burst_threshold устанавливает отсечение по количеству пакетов из sendqueue, которые могут быть отправлены подряд без задержки. Если при просмотре пакетов из очереди исправления пересортировки (sendqueue) необходимо отправить подряд много пакетов, то при отправке количества пакетов, равного sendq_burst_threshold делается задержка, равная sendq_burst_delay. Это может использоваться для исключения перегрузки сетевой карты и канала связи. Допустимые значения - от 100 до 100000 (но не больше заданного максимального размера очереди, заданного в sendqueue_size). Опциональный параметр. По умолчанию отключено.
Параметр sendq_burst_delay - задаёт задержку в микросекундах при срабатывании sendq_burst_threshold. Допустимые значения - от 1 до 200. Значение по умолчанию - 10.
Параметр pcap_mpool_size - задаёт максимальное количество буферов (mbuf) в пуле памяти перехватчика (ipsm-app). На каждый порт заводится свой пул. Допустимые значения - от 6736 до 4194303. Рекомендуется выставлять значение, равное 2^n - 1 (степень двойки минус единица). Опциональный параметр. Значение по умолчанию выбирается автоматически на основе количества портов (PORT<n>) и параметров threads, sendqueue_size, rx_queue_len, rx_cache_size, rx_desc, tx_desc.
При использовании автоматического размера в лог (/tmp/ipsm-app/error.log) будет выдана информация о подобранном размере пула:
1574323798 Automatically choosen pool size: 161180 mbufs
1574323798 Pool size is affected by: ports number(2), threads(4), sendqueue_size(64000), rx_queue_len(512), rx_cache_size(64000), rx_desc(2048), tx_desc(2048)
Также (при любом значении pcap_mpool_size) в лог будет выдано сообщение о фактическом размере (в мегабайтах) выделяемой памяти:
1574323798 Allocating 2 pools 161180 mbufs each. Total 3297 megabytes
Параметр rx_queue_len устанавливает глубину внутренних очередей при приёме и обработке пакетов. Измеряется в блоках (burst) пакетов (один блок - 32 пакета). Допустимые значения - от 1 до 32. Опциональный параметр. Значение по умолчанию - 16.
Параметр rx_sleep задаёт длину паузы (в микросекундах), которую делает поток приёма пакетов, если отсутствуют входящие пакеты на сетевой карте. Допустимые значения - от 0 до 10000. Опциональный параметр. Значение по умолчанию - 50.
Параметр tx_sleep задаёт длину паузы (в микросекундах), которую делает поток отправки пакетов, если отсутствуют пакеты (из потоков обработки) для отправки на сетевую карту. Допустимые значения - от 0 до 10000. Опциональный параметр. Значение по умолчанию - 50.
Параметр wrk_sleep задаёт длину паузы (в микросекундах), которую делает поток обработки пакетов, если отсутствуют входящие пакеты (от принимающих потоков). Допустимые значения - от 0 до 10000. Опциональный параметр. Значение по умолчанию - 50.
Параметр kni_sleep задаёт длину паузы (в микросекундах), которую делает поток обработки пакетов, предназначенных для ОС, либо исходящих из ОС, если отсутствуют такие пакеты. Допустимые значения - от 0 до 10000. Опциональный параметр. Значение по умолчанию - 50.
Параметр cb_wait задаёт длину ожидания (в микросекундах) в потоке обработки пакетов, если соответствующий поток отправки пакетов занят. Допустимые значения - от 0 до 10000. Опциональный параметр. Значение по умолчанию - 50.
Внимание! |
Задание в параметрах rx_sleep, tx_sleep, wrk_sleep, kni_sleep, cb_wait значений меньше 50 микросекунд изменяет используемый метод ожидания. Это приводит к улучшенной отзывчивости (позволяет не допустить даже единичных потерь пакетов), но вызывает полную загрузку используемых процессорных ядер при отсутствии трафика. |
Параметр rx_cache_size задаёт размер кэша получаемых из сети пакетов в принимающем потоке. Допустимые значения - от 2000 до 200000. Опциональный параметр. Значение по умолчанию - 64000.
Параметр wrk_overload_thresh задаёт порог загрузки обрабатывающего потока (в процентах), при котором в него перестают направляться пакеты. Допустимые значения — от 1 до 100. Опциональный параметр. Значение по умолчанию - 90.
Секция PORT.
Содержит конфигурацию конкретного физического порта (сетевого интерфейса).
Для каждого контролируемого нами физического порта обязательно должна быть своя секция - PORT0, PORT1, etc. Нумерация секций должна начинаться с нуля (т.е. обязательно должен присутствовать PORT0) и не иметь пропусков. Число секций PORT должно быть чётным (см. описание параметра pair_port).
Параметр pci_id - адрес сетевого интерфейса на шине PCI. Этот параметр задаёт соответствие между описанным в данной секции PORT физическим портом и контролируемыми нами (DPDK) физическими портами. Узнать pci id можно выполнив команду lspci:
root@sterragate:~# lspci | grep Eth
02:00.0 Ethernet controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Network Connection (rev 01)
02:00.1 Ethernet controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Network Connection (rev 01)
Связь конкретного физического интерфейса с его представлением в стеке в виде eth<N> можно посмотреть в логе загрузки (dmesg):
[ 2.415089] Intel(R) Gigabit Ethernet Network Driver - version 5.2.17
[ 3.590195] ixgbe 0000:02:00.0: eth2: MAC: 2, PHY: 1, PBA No: E96137-005
[ 3.590204] ixgbe 0000:02:00.0: eth2: Enabled Features: RxQ: 12 TxQ: 12 FdirHash RSC
[ 3.591214] ixgbe 0000:02:00.0: eth2: Intel(R) 10 Gigabit Network Connection
[ 4.740540] ixgbe 0000:02:00.1: eth3: MAC: 2, PHY: 1, PBA No: E96137-005
[ 4.740549] ixgbe 0000:02:00.1: eth3: Enabled Features: RxQ: 12 TxQ: 12 FdirHash RSC
[ 4.741631] ixgbe 0000:02:00.1: eth3: Intel(R) 10 Gigabit Network Connection
Обязательный параметр. Задаётся в формате NN:NN.N
Пример:
pci_id = 02:00.1
Параметр pair_port задаёт парный порт для данного порта. Пакеты (кадры ethernet), приходящие на текущий порт, будут отправлены с pair_port. Пакеты (кадры ethernet), приходящие на pair_port, будут отправлены с текущего порта. Указываемый номер соответствует номеру в названии секции парного порта PORT<N>. Обязательный параметр - для каждого порта должен быть парный ему. Порт не может быть парным самому себе.
Пример:
pair_port = 1
Параметр outer задаёт порт как “внешний”. С него будут отправляться во внешнюю сеть инкапсулированные в l2/IPsec пакеты (кадры ethernet) и IKE-пакеты. Получаемые на этом порту не IPv4 пакеты (кадры ethernet), а также IPv4 не EtherIP пакеты будут пропускаться в tcp/ip стек ОС на соответствующий виртуальный интерфейс vEth<N>. Возможные значения - “yes”/“no“. Опциональный параметр. По умолчанию отключено (no).
Кадры ethernet, с ethertype отличным от IPv4 и ARP подвергаются дополнительной фильтрации. Смотри параметр allowed_ethertypes.
Параметр l2_src_ip задаёт source адрес нового IPv4-пакета, который содержит инкапсулированный в EtherIP кадр ethernet. Работает только для порта в L2-режиме. Параметр обязателен для порта в L2-режиме.
Пример:
l2_src_ip = 192.168.6.2
Параметр l2_dst_ip задаёт destination адрес нового IPv4-пакета, который содержит инкапсулированный в EtherIP кадр ethernet. Работает только для порта в L2-режиме. Параметр обязателен для порта в L2-режиме.
Пример:
l2_dst_ip = 192.168.6.2
Параметр mtu задаёт Maximum Transmission Unit (MTU) данного физического интерфейса. Возможные значения - от 68 байт до 9700 байт (0x25E4). Опциональный параметр. Значение по умолчанию - 9700.
Параметр gw_ip задаёт IPv4 адрес локального шлюза (gateway маршрута до партнёра). Используется для определения destination MAC-адреса исходящих кадров ethernet с данного внешнего порта (за исключением декапсулированных из EtherIP). Обязательный параметр, если не указан next_hop_mac. По умолчанию присутствует со значением, заданным при инициализации Продукта.
Пример:
gw_ip = 192.168.0.1
Параметр next_hop_mac задаёт MAC-адрес, который подставляется как destination в исходящие кадры ethernet (за исключением декапсулированных из EtherIP). Используется, если отсутствует параметр gw_ip, либо не удалось найти соответствующую ему запись в arp-таблице. Опциональный параметр. По умолчанию отсутствует.
Пример:
next_hop_mac = 00:AA:BB:CC:DD:EE
Параметр next_hop_mac_force позволяет принудительно выставлять (не смотря в arp-таблицу) next_hop_mac как destination MAC-адрес исходящих кадров ethernet (за исключением декапсулированных из EtherIP). Работает, если только установлен параметр next_hop_mac. Возможные значения - “yes”/“no“. Опциональный параметр. По умолчанию отключено (no).
Параметр l3_ip задаёт IPv4-адрес, выставляемый на соответствующем данному физическому порту виртуальном интерфейсе vEth<N>. Опциональный параметр. Значение задается при инициализации Продукта, если значение не будет задано, то состояние vEth<N> будет down.
Пример:
l3_ip = 192.168.0.42
Параметр l3_mask задаёт маску подсети, выставляемую на соответствующем данному физическому порту виртуальном интерфейсе vEth<N>. Возможные значения - от 1 до 32. Обязателен, если выставлен l3_ip. Значение по умолчанию - 24.
Параметр no_fc отключает механизм Flow Control на данном физическом интерфейсе. Возможные значения - “yes”/“no”. Опциональный параметр. По умолчанию отключено (no).
Параметр no_promisc отключает режим Promiscuous на данном физическом интерфейсе. Возможные значения - “yes”/“no”. Опциональный параметр. По умолчанию для внешнего порта - включено (yes), для парного ему - отключено (no).
Параметр copy_tos устанавливает режим наследования (копировать/сбросить) байта Type of Service из заголовка оригинального IPv4-пакета в заголовок нового IPv4 пакета, содержащего инкапсулированный в EtherIP кадр ethernet. Работает только для порта в L2-режиме. Возможные значения - “yes”/“no”. Опциональный параметр. По умолчанию отключено (no).
Пример:
copy_tos = yes
Параметр df_handling устанавливает режим наследования (копировать/установить/сбросить) DF-бита из заголовка оригинального IPv4-пакета в заголовок нового IPv4 пакета, содержащего инкапсулированный в EtherIP кадр ethernet. Работает только для порта в L2-режиме. Возможные значения - “copy”/“set”/”clear”. Опциональный параметр. Значение по умолчанию: clear.
Пример:
df_handling = clear
Параметр vlan_identifier включает режим выставления VLAN-тэга (802.1Q) для исходящих с данного порта кадров ethernet, содержащих IPv4 пакеты. Работает только для порта, не находящегося в L2-режиме. При выставлении данного параметра на данном порту осуществляется фильтрация входящих кадров по указанному vlan id. Кадры, содержащие vlan id, отличный от указанного в параметре, либо не содержащие vlan-тэга вообще будут уничтожены с увеличением счётчика d11. Допустимые значения - от 0 до 4094. Значение по умолчанию: 0. Режим активен, если хотя бы один из параметров vlan_identifier или vlan_priority_code_point имеет значение не равное 0. Нельзя, чтобы оба параметра были указаны как “0”.
Пример:
vlan_identifier = 322
Параметр vlan_priority_code_point включает режим выставления поля Priority Code Point (PCP, 802.1p) для исходящих с данного порта кадров ethernet, содержащих IPv4 пакеты. Работает только для порта, не находящегося в L2-режиме. Допустимые значения - от 0 до 7. Значение по умолчанию: 0. Режим активен, если хотя бы один из параметров vlan_identifier или vlan_priority_code_point имеет значение не равное 0. Нельзя, чтобы оба параметра были указаны как “0”.
Пример:
vlan_priority_code_point = 5
Параметр allowed_ethertypes позволяет задать значения поля ethertype (2 байта) заголовка ethernet, которые будут пропускаться в стек ОС и из него через интерфейс vEth. Всегда пропускаются фреймы, содержащие IPv4 (0x0800) и ARP (0x0806). Значения задаются в шестнадцатеричном виде, возможен префикс “0x”. Перечисляются через запятую, без пробелов и иных символов между ними. Максимум 32 значения. Также возможно значение “none“ - использовать настройки по умолчанию.
Параметр multicast_enable включает получение данным портом сетевой карты всех multicast IPv4 пакетов. Также все multicast IPv4 пакеты принимаются при включённом promisc-режиме. Если ни один из двух режимов не включен, данные пакеты будут уничтожены сетевой картой без отражения в статистике. Возможные значения - “yes”/“no”. Опциональный параметр. По умолчанию: для outer-порта включено (yes), для парного ему - отключено (no), так как там (на l2-порту) обычно включен promisc-режим.
Параметр hw_ip_checksum включает получение от сетевой карты дополнительной информации об ошибках во входящих пакетах (например, ошибка в контрольной сумме ip либо tcp) либо ошибках при их приёме. Данные ошибки учитываются в статистике ierr, но не обязательно приводят к уничтожению пакета. При включении данного параметра, и возникновении подобных ошибок, они будут отображаться в статистике как e0-e2. Опциональный параметр. Возможные значения - “yes”/“no”. Опциональный параметр. По умолчанию включено (yes).
Параметр hw_vlan_extend включает на данном порту поддержку сетевой картой double-vlan (q-in-q) фреймов. Включение негативно влияет на производительность (отключает векторный режим приёма/отправки пакетов). Возможные значения - “yes”/“no”. Опциональный параметр. По умолчанию отключено (no).
Параметр pmtud задаёт размер ethernet-кадра, при котором включается отправка сообщений ICMP Fragmentation Needed (Type 3, Code 4). А именно: если приходящий кадр ethernet содержит IPv4 пакет с выставленным DF-битом, и его размер (только IPv4-пакета, включая заголовок) превышает указанное в параметре pmtud значение, то этот кадр отбрасывается, и отправителю посылается сообщение ICMP Fragmentation Needed. Опциональный параметр. Допустимые значения - от 68 до 65535. По умолчанию отключено.
Пример:
pmtud = 1400
Параметр mssfix включает режим MSSFIX на данном порту. В этом режиме просматриваются поля MSS в TCP (TCPv4) SYN пакетах. Если найденный MSS больше значения, указанного в параметре mssfix, в поле MSS прописывается значение параметра mssfix (и пересчитывается контрольная сумма tcp). Опциональный параметр. Допустимые значения - от 536 до 9688 (максимальное значение MTU - 40 байт). По умолчанию отключено.
Пример:
mssfix = 1350
Параметр mssfix_force позволяет проставлять в поле MSS значение параметра mssfix, даже если исходное значение в пакете меньше. Работает только при включенном mssfix. Возможные значения - “yes”/“no”. Опциональный параметр. По умолчанию отключено (no).
Параметр thr_start задаёт номер начального обрабатывающего потока из диапазона от thr_start до thr_start + thr_count. Пакеты, входящие на данный порт, будут распределяться только на обрабатывающие потоки из данного диапазона. Параметр может быть задан только для внутреннего (не outer) порта. Опциональный параметр. Допустимые значения - от 0 до threads 1. Значение по умолчанию - 0.
Если указан параметр thr_start, то также обязательно должен быть указан параметр thr_count.
Параметр thr_count задаёт количество обрабатывающих потоков в диапазоне от thr_start до thr_start + thr_count. Пакеты, входящие на данный порт, будут распределяться только на обрабатывающие потоки из данного диапазона. Может быть задан только для внутреннего (не outer) порта. Опциональный параметр. Значение по умолчанию: threads.
Если указан параметр thr_count, то также обязательно должен быть указан параметр thr_start.
Параметр dp_frag_ip позволяет задать список ip-адресов партнёров, тоже являющихся Шлюзами DP, для данного порта. При задании параметра включается улучшенный механизм сборки (reassemble) пакетов. Максимум 4 адреса, строго через запятую, без пробелов. IP-адрес не может быть нулевым (0.0.0.0). Параметр может быть задан только для внешнего (outer) порта. Опциональный параметр. По умолчанию отключено.
При задании параметра у входящих фрагментированных ipsec-пакетов проверяется source ip адрес. Если он совпадёт с одним из указанных в параметре, применяется улучшенный механизм сборки (reassemble) IPv4 пакетов из фрагментов. Данный механизм работает только, если оба партнёра являются Шлюзами DP и имеют версию 4.3 и новее.
При отключенном параметре Продукт действует как в 4.2 — сборка пакетов работает только для Client SA.
Параметр frag_id_afterward включает режим изменения поля identification в Ipv4-заголовке отправляемых фрагментированных пакетов. Может быть задан только для внешнего (outer) порта. Возможные значения - “yes”/“no”. Опциональный параметр. По умолчанию выключено (no).
Данный режим способствует увеличению пропускной способности для фрагментированного (самим Шлюзом DP) трафика. Однако возможно снижение пропускной способности, если фрагментация осуществляется на устройстве посередине.
Параметр dp_frag_natt включает улучшенный механизм сборки пакетов (dp_frag_ip) для natt-трафика. Может быть задан только для внешнего (outer) порта. Может быть задан только при активном dp_frag_ip. Возможные значения - “yes”/“no”. Опциональный параметр. По умолчанию выключено (no).
При включении данного параметра будет потерян открытый фрагментированный udp-трафик, пришедший с адреса из списка dp_frag_ip.
При включении данного параметра необходимо включить ike fragmentation и использовать main mode.
В Приложении приведен пример конфигурационного файла ipsm_dpdk.cfg.