Das Unternehmen Yandex hat den Quellcode des Tools skbtrace veröffentlicht, das Möglichkeiten zur Verfolgung der Netzwerk-Stack-Aktivitäten und zur Nachverfolgung der Ausführung von Netzwerkoperationen in Linux bereitstellt. Das Tool ist als Erweiterung des dynamischen Debugging-Systems BPFtrace implementiert. Der Code ist in der Programmiersprache Go geschrieben und wird unter der MIT-Lizenz veröffentlicht. Es wird mit Linux-Kernen ab Version 4.14+ und mit dem BPFTrace-Toolset ab Version 0.9.2+ unterstützt.
Während der Nutzung generiert das Tool skbtrace Skripte in der Hochsprache BPFtrace, die eine dynamische Nachverfolgung und Analyse der Ausführungszeit von Operationen im Zusammenhang mit dem Linux-Netzwerk-Stack und Netzwerk-Sockets ermöglichen. Diese Skripte werden dann in eBPF-Anwendungen übersetzt und im Kernel ausgeführt.
Besondere Funktionen von skbtrace umfassen die Messung der Übertragungszeiten von Paketen zwischen dem eingehenden und dem ausgehenden Netzwerkinterface, die Lebensdauer von TCP-Verbindungen vom Empfang des SYN bis zum Eingang des FIN/RST, Verzögerungen zwischen verschiedenen Ereignissen bei der Verarbeitung von Paketen und die Zeit, die für die Aushandlung von TCP-Verbindungen benötigt wird. Skbtrace kann auch verwendet werden, um die erneute Übertragung von TCP-Paketen zu erkennen, selbst wenn sie in andere Pakete eingekapselt sind, und fungiert als einfache Alternative zu tcpdump, die die Ausführung einiger Kernel-Prozeduren wie den Aufruf von kfree_skb zur Freigabe von Speicherplatz beim Verwerfen von Paketen analysieren kann.
Quelle: opennet.ru
