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

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

У процесі роботи утиліта skbtrace генерує скрипти на високорівневій мові BPFtrace, що здійснюють динамічне трасування та аналіз часу виконання операцій, пов'язаних із мережним стеком Linux та мережевими сокетами. Скрипти потім транслюються у форму eBPF-додатків і виконуються лише на рівні ядра.

Зі специфічних можливостей skbtrace відзначається вимірювання часу пересилання пакетів між вхідним та вихідним мережевим інтерфейсом, часу життя TCP-з'єднання від отримання SYN до приходу FIN/RST, затримок між різними подіями обробки пакетів, часу на погодження TCP-з'єднання. Skbtrace також може застосовуватися для виявлення повторної передачі TCP-пакетів, навіть якщо вони інкапсульовані в інші пакети, і бути простим аналогом утиліти tcpdump, здатним аналізувати виконання деяких процедур ядра, таких як виклик kfree_skb для звільнення пам'яті при відкиданні пакетів.

Джерело: opennet.ru

Додати коментар або відгук