Для получения диагностической информации, статистических данных и сообщений об ошибках рекомендуется выполнить следующие действия:
/opt/VPNagent/bin/ipsm-app –f
При этом в консоль будут выводиться диагностические сообщения подсистем DPDK, а также, в зависимости от настроек, статистика по количеству пакетов и их дамп в шестнадцатеричном виде.
Содержимое имеет вид:
Wed 12 Jul 2017 17:28:10 +0300
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 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
Информация обновляется раз в секунду.
Статистика, представляемая по каждому порту отдельно:
sent – пакетов/байтов отправлено за секунду, sent_total – пакетов/байтов отправлено всего с момента запуска;
recv – пакетов/байтов получено за секунду, recv_total – пакетов/байтов получено всего с момента запуска;
drop – отброшено пакетов за секунду, drop_total – отброшено пакетов всего с момента запуска;
rate – текущая скорость приема и отправки трафика на данном порту в мегабитах в секунду;
sendq – текущая длина очереди исправления пересортировки пакетов (sendqueue);
sq_ovf_cnt – количество переполнений очереди исправления пересортировки пакетов (sendqueue);
free_pool – количество свободных буферов (в DPDK) под пакеты;
ipkts/opkts – количество принятых/отправленных пакетов за секунду (из статистики сетевой карты);
ipktst/opktst – количество принятых/отправленных пакетов всего с момента запуска (из статистики сетевой карты).
Статистика по типам ошибок (получаемая от сетевой карты). С окончанием “t” – всего с момента запуска, иначе за секунду. Статистика об ошибках выводится только при их наличии.
imiss – входящие пакеты, отброшенные из-за переполнения очереди сетевой карты (FIFO);
icrc – входящие пакеты, отброшенные из-за неверной контрольной суммы CRC;
ibadl – входящие пакеты, отброшенные из-за неверной длины;
ierr – всего ошибок на входящих пакетах;
oerr – всего исходящих пакетов, отброшенных из-за ошибок на передаче;
imbuf – входящие пакеты, отброшенные из-за ошибок в выделении памяти.
Статистика по дополнительной информации об ошибках во входящих пакетах (например, ошибка в контрольной сумме ip либо tcp) либо ошибках при их приёме. Эти ошибки учитываются в счётчике ierr/ierrt, но не обязательно приводят к уничтожению пакета. Например, пакет успешно принимается сетевой картой при ошибке в контрольной сумме 3-4 уровней. Отображается только при наличии таких ошибок и включенной опции hw_ip_checksum. Значения с окончанием “t” – всего с момента запуска. Иначе – за секунду.
e0 – неправильная контрольная сумма протокола 4 уровня (TCP);
e1 – неправильная контрольная сумма IP-заголовка;
e2 – неправильная контрольная сумма внешнего IP-заголовка;
e3 – получен слишком большой пакет;
e4 – переполнение буфера заголовка;
e5 – аппаратная ошибка обработки;
e6 – ошибка MAC.
Строка, содержащая вывод вида “d8 3 d8t 70” – статистика отбрасыванию пакетов. Значения с окончанием “t” – всего с момента запуска. Иначе – за секунду. Значения выводятся только для ненулевых счётчиков.
d1 – пакеты, отброшенные при ошибках на отправке в сеть (параметр tx_retries). Обычно появляются при приближении к теоретическому пределу пропускной способности сети для данного размера пакетов. Либо при попытке отправить слишком большое количество пакетов подряд (параметр sendq_burst_threshold);
d2 – входящие пакеты, отброшенные при невозможности передать их на обработку (параметр rx_retries). Появляются при загруженности обрабатывающих потоков (упёрлись в максимальную производительность по шифрованию/фильтрации);
d3 – пакеты, отброшенные:
d4 – пакеты, отброшенные при коллизии в очереди исправления пересортировки sendqueue. Примечание: их не должно быть, при отличии этого счётчика от нуля обратитесь в отдел разработки;
d5 – пакеты, отброшенные при неудаче отправки внутрь tcp/ip стека ОС на интерфейс vEth<N>;
d6 – пакеты, отброшенные из-за ошибок в работе с памятью, при подготовке к передаче пакетов в платформо-независимую часть;
d7 – пакеты, отброшенные при удалении платформо-независимой частью структуры packet_data_t;
d8 – пакеты, отброшенные платформо-независимой частью. Должны, в основном, быть заметны как DROP в klogview (см. «Специализированные команды»);
d9 – фреймы, отброшенные при получении из сети или стека ОС, имеющие значение поля ethertype, отличное от 0x0800 (IPv4), 0x0806 (ARP) и не указанное в параметре allowed_ethertypes;
d10 – фреймы, отброшенные при получении с виртуального интерфейса vEthN, если ему соответствует порт LAN;
d11 – фреймы, полученные на порту WAN либо полученные из стека ОС на виртуальный интерфейс vEthN, отброшенные механизмом фильтрации по vlan id.
Содержимое имеет вид:
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
p<N> –- номер порта, на котором получен дамп кадра ethernet.
[NN] длина кадра ethernet, вместе с заголовком.
Для улучшения восприятия пробелами отделены MAC-адреса, заголовок ethernet, заголовок IPv4 (при наличии).
in – входящие (из сети) кадры, out – исходящие (в сеть), in* - входящие (из tcp/ip стека ОС, с интерфейса vEth<N>), out* - исходящие (в tcp/ip стек ОС на интерфейс vEth<N>).
Кадры, отмеченные как in*/out*, можно просмотреть в выводе tcpdump на соответствующем интерфейсе vEth<N>.
В данный файл попадают следующие ошибки и предупреждения:
Ошибки, возникшие при инициализации ipsm-app.
Ошибки при изменении MTU либо других настроек портов.
Ошибки в конфигурационном файле ipsm_dpdk.cfg.
Ошибки в выделении памяти.
Критические системные ошибки.
Изменения mtu интерфейсов vEth<N> и соответствующих им физических портов.