Перейти к поиску
  1. Главная
  2. Продукты
  3. С-Терра Шлюз
  4. Настройка С-Терра Шлюз
  5. Общие настройки шлюза
  6. Возможности протоколирования и статистики для настройки шлюза
  7. Возможности протоколирования и отладки на С-Терра Шлюз DP

Возможности протоколирования и отладки на С-Терра Шлюз DP

Поиск в комплекте Источник

Возможности протоколирования и отладки на С-Терра Шлюз DP

Только для исполнений «С-Терра Шлюз DP ST KC1», «С-Терра Шлюз DP ST KC2», «С-Терра Шлюз DP ST KC3»

На данных исполнений для просмотра статистических данных интерфейсов возможно использование скрипта dpdk-telemetry.py.

Для получения диагностической информации, статистических данных и сообщений об ошибках рекомендуется выполнить следующие действия:

  1. вручную запустить перехватчик ipsm-app из консоли вместо запуска службы /etc/init.d/ipsmapp:

/opt/VPNagent/bin/ipsm-app –f

  1. При этом в консоль будут выводиться диагностические сообщения подсистем DPDK, а также, в зависимости от настроек, статистика по количеству пакетов и их дамп в шестнадцатеричном виде;
  1. просмотреть файл статистики, указанный в параметре stats_file файла ipsm_dpdk.cfg.
  2. Содержимое имеет вид:

Wed 12 Jul 2017 17:28:10 +0300

port: 0 name: 86:00.0 mtu: 9700 link speed: 10000Mbps full-duplex autonegotiation link up

port: 0 sent: 0 / 0 , sent_total: 0 / 0

port: 0 recv: 0 / 0 , recv_total: 0 / 0

port: 0 drop: 0, drop_total: 0

port: 0 rate (Mbps): 0 in 0 out

port: 0 sendq: 0, sq_ovf_cnt: 0

port: 0 ipkts: 0, opkts: 0

port: 0 ipktst: 0, opktst: 27

port: 0

port: 0

port: 0

port: 0

port: 1 name: 85:00.0 mtu: 9600 link speed: 10000Mbps full-duplex autonegotiation link up

port: 1 sent: 0 / 0 , sent_total: 0 / 0

port: 1 recv: 23508 / 12036096, recv_total: 3627936 / 1857503232

port: 1 drop: 23520, drop_total: 3627696

port: 1 rate (Mbps): 91 in 0 out

port: 1 sendq: 0, sq_ovf_cnt: 0

port: 1 ipkts: 23520, opkts: 0

port: 1 ipktst: 3627936, opktst: 0

port: 1

port: 1

port: 1 d8 23520

port: 1 d8t 3627696

  1. Информация обновляется раз в секунду.
  2. По каждому порту отдельно представляется следующая статистика:
  • sent – пакетов/байтов отправлено за секунду, sent_total – пакетов/байтов отправлено всего с момента запуска;
  • recv – пакетов/байтов получено за секунду, recv_total – пакетов/байтов получено всего с момента запуска;
  • drop – отброшено пакетов за секунду, drop_total – отброшено пакетов всего с момента запуска;
  • rate – текущая скорость приема и отправки трафика на данном порту в мегабитах в секунду;
  • sendq – текущая длина очереди исправления пересортировки пакетов (sendqueue);
  • sq_ovf_cnt – количество переполнений очереди исправления пересортировки пакетов (sendqueue);
  • free_pool – количество свободных буферов на данном порту (в DPDK) под пакеты;
  • ipkts/opkts – количество принятых/отправленных пакетов за секунду (из статистики сетевой карты);
  • ipktst/opktst – количество принятых/отправленных пакетов всего с момента запуска (из статистики сетевой карты).
  1. Статистика по типам ошибок (получаемая от сетевой карты). С окончанием “t” – всего с момента запуска, иначе за секунду. Статистика об ошибках выводится только при их наличии:
  • imiss – входящие пакеты, отброшенные из-за переполнения очереди сетевой карты (FIFO);
  • ierr – всего ошибок на входящих пакетах;
  • oerr – всего исходящих пакетов, отброшенных из-за ошибок на передаче;
  • imbuf – входящие пакеты, отброшенные из-за ошибок в выделении памяти.
  1. Статистика по дополнительной информации об ошибках во входящих пакетах (например, ошибка в контрольной сумме ip либо tcp) либо ошибках при их приёме. Эти ошибки учитываются в счётчике ierr/ierrt, но не обязательно приводят к уничтожению пакета. Например, пакет успешно принимается сетевой картой при ошибке в контрольной сумме 3-4 уровней. Отображается только при наличии таких ошибок и включенной опции hw_ip_checksum. Значения с окончанием “t” – всего с момента запуска. Иначе – за секунду.
  • e0 – неправильная контрольная сумма протокола 4 уровня (TCP);
  • e1 – неправильная контрольная сумма IP-заголовка;
  • e2 – неправильная контрольная сумма внешнего IP-заголовка.
  1. Строка, содержащая вывод вида “d8 3 d8t 70” – статистика по отбрасыванию пакетов. Значения с окончанием “t” – всего с момента запуска. Иначе – за секунду. Значения выводятся только для ненулевых счётчиков.
  • d1 – пакеты, отброшенные при ошибках на отправке в сеть (параметр tx_retries). Обычно появляются при приближении к теоретическому пределу пропускной способности сети для данного размера пакетов. Либо при попытке отправить слишком большое количество пакетов подряд (параметр sendq_burst_threshold);
  • d2 – входящие пакеты, отброшенные при невозможности передать их на обработку. Появляются при загруженности обрабатывающих потоков (упёрлись в максимальную производительность по шифрованию/фильтрации);
  • d3 – пакеты, отброшенные. если данный интерфейс имеет состояние (pa_state), отличное от PCAP_PASS (состояние по умолчанию для uncontrolled-интерфейсов) и PCAP_PROCESS (состояние controlled-интерфейсов). Состояние интерфейса устанавливается платформа-независимой частью в зависимости от того, загружена LSP или DDP;
  • d4 – ошибка при получении входящего пакета от DPDK. Это возможно при серьёзной вычислительной перегрузке и нехватке ресурсов;
  • d5 – пакеты, отброшенные при неудаче отправки внутрь tcp/ip стека ОС на интерфейс vEth<N>;
  • d6 – пакеты, отброшенные из-за ошибок в работе с памятью, при подготовке к передаче пакетов в платформа-независимую часть;
  • d7 – пакеты, отброшенные при удалении платформа-независимой частью структуры packet_data_t;
  • d8 – пакеты, отброшенные платформа-независимой частью. Должны, в основном, быть заметны как DROP в klogview (см. «Специализированные команды»);
  • d9 – фреймы, отброшенные при получении из сети или стека ОС, имеющие значение поля ethertype, отличное от IPv4 (0x0800), IPv6 (0x86DD), ARP (0x0806) и не указанное в параметре allowed_ethertypes;
  • d10 – фреймы, отброшенные при получении с виртуального интерфейса vEthN, если ему соответствует порт LAN;
  • d11 – фреймы, полученные на порту WAN либо полученные из стека ОС на виртуальный интерфейс vEthN, отброшенные механизмом фильтрации по vlan id;
  • d12 – не-etherip фреймы, а также etherip-фреймы, не соответствующие rfc на протокол etherip, прошедшие фильтрацию в платформа-независимой части, и предназначенные для отправки в порт, находящийся в L2-режиме.
  1. Информация о текущем статусе порта, включающая mtu, link, link speed, duplex state, autonegotiation state, отображается однократно при отправке в ipsm-app сигнала SIGUSR2:

pkill -SIGUSR2 ipsm-app

port: 1 name: 85:00.0 mtu: 9600 link speed: 10000Mbps full-duplex autonegotiation link up

  1. Вся статистика может быть сброшена отправкой в ipsm-app сигнала SIGUSR1:

pkill -SIGUSR1 ipsm-app

  1. Просмотреть файл дампа кадров ethernet, указанного в параметре frames_file файла ipsm_dpdk.cfg.
  2. Содержимое имеет вид:

22-12-16 19:29:55.922 p1 in [126] 90e2ba4c0271 a8f94bf7d6bb 0800

45040070fd8a40003f119d31c0a81037c0a80f35 01f401f4005c2d7a

22-12-16 19:29:55.922 p1 out* [126] 90e2ba4c0271 a8f94bf7d6bb 0800

45040070fd8a40003f119d31c0a81037c0a80f35 01f401f4005c2d7a

22-12-16 19:29:55.971 p1 in [142] 90e2ba4c0271 a8f94bf7d6bb 0800

4500008000144000fe32db7ac0a81037c0a80f35 e8cd0a4a00000003

22-12-16 19:29:55.972 p0 out [60] ffffffffffff 000c2922b756 0806

0001080006040001000c2922b756aca4de8b000000000000aca4de89

22-12-16 19:29:55.972 p0 in [60] 000c2922b756 000c293fd99f 0806

0001080006040002000c293fd99faca4de89000c2922b756aca4de8b

  1. p<N> – номер порта, на котором получен дамп кадра ethernet.
  2. [NN] - длина кадра ethernet, вместе с заголовком.
  3. Для улучшения восприятия пробелами отделены MAC-адреса, заголовок ethernet, IP‑заголовок (при наличии).
  4. in – входящие (из сети) кадры, out – исходящие (в сеть), in* - входящие (из tcp/ip стека ОС, с интерфейса vEth<N>), out* - исходящие (в tcp/ip стек ОС на интерфейс vEth<N>).
  5. Кадры, отмеченные как in*/out*, можно просмотреть в выводе tcpdump на соответствующем интерфейсе vEth<N>.
  1. Просмотреть файл ошибок и предупреждений /tmp/ipsm-app/error.log.
  2. В данный файл попадают следующие ошибки и предупреждения:
  • ошибки, возникшие при инициализации ipsm-app;
  • ошибки при изменении MTU либо других настроек портов;
  • ошибки в конфигурационном файле ipsm_dpdk.cfg;
  • ошибки в выделении памяти;
  • критические системные ошибки;
  • изменения mtu интерфейсов vEth<N> и соответствующих им физических портов;
  1. Просмотреть файл протоколирования подсистем DPDK, указанный в параметре rte_log_file конфигурационного файла ifaliases.cf.
  2. Использовать стандартные утилиты DPDK для получения дампа кадров Ethernet (фреймов) в формате .pcap при помощи утилит dpdk-pdump и dpdk-dumpcap.
  3. Использование механизма “телеметрии”, т.е. скрипта - dpdk-telemetry.py (стандартный для DPDK интерфейс сбора статистики).
  4. Использование утилиты dpdk-proc-info. Средствами данной утилиты возможно извлекать статистику порта, сбрасывать статистику порта, печатать информацию о памяти DPDK и отображать отладочную информацию для порта.