08.12.2022

Яндекс опубликовал skbtrace, утилиту для трассировки сетевых операций в Linux

Компания Яндекс опубликовала исходные тексты утилиты skbtrace, предоставляющей средства для отслеживания работы сетевого стека и трассировки выполнения сетевых операций в Linux. Утилита реализована в форме надстройки над системой динамической отладки BPFtrace. Код написан на языке Go и распространяется под лицензией MIT. Поддерживается работы с ядрами Linux 4.14+ и с инструментарием BPFTrace 0.9.2+.

В процессе работы утилита skbtrace генерирует скрипты на высокоуровневом языке BPFtrace, осуществляющие динамическую трассировку и анализ времени выполнения операций, связанных с сетевым стеком Linux и сетевыми сокетами. Скрипты затем транслируются в форме eBPF-приложений и выполняются на уровне ядра. Из специфичных возможностей skbtrace отмечается изменение времени пересылки пакетов сетевым стеком и выявление повторной передачи TCP-пакетов, даже если они инкапсулированы в другие пакеты. Skbtrace также может применяться в качестве простого аналога утилиты tcpdump, способного анализировать выполнение некоторых процедур ядра, таких как вызов kfree_skb для освобождения памяти при отбрасывании пакетов.

Источник.