Yandex on avaldanud skbtrace utiliidi lähtekoodi, mis pakub tööriistu võrgupinu töö jälgimiseks ja võrguoperatsioonide täitmise jälgimiseks Linuxis. Utiliit on rakendatud BPFtrace'i dünaamilise silumissüsteemi lisandmoodulina. Kood on kirjutatud Go-s ja seda levitatakse MIT-i litsentsi all. Toetab tööd Linuxi tuumadega 4.14+ ja BPFTrace 0.9.2+ tööriistakomplektiga.
Töötamise ajal genereerib skbtrace'i utiliit kõrgetasemelises BPFtrace'i keeles skripte, mis dünaamiliselt jälgivad ja analüüsivad Linuxi võrgupinu ja võrgupistikupesadega seotud toimingute täitmisaega. Seejärel tõlgitakse skriptid eBPF-i taotlusvormiks ja käivitatakse kerneli tasemel.
Skbtrace'i spetsiifiliste võimaluste hulgas on pakettide saatmise aja mõõtmine sissetulevate ja väljaminevate võrguliideste vahel, TCP-ühenduse eluiga SYN-i vastuvõtmisest FIN/RST saabumiseni, viivitused erinevate pakettide töötlemise sündmuste vahel ja aeg. TCP-ühenduse üle läbirääkimiste pidamiseks on märgitud. Skbtrace'i saab kasutada ka TCP-pakettide kordusedastuse tuvastamiseks, isegi kui need on kapseldatud teistesse pakettidesse, ja toimida utiliidi tcpdump lihtsa analoogina, mis on võimeline analüüsima teatud kerneli rutiinide täitmist, nagu näiteks kfree_skb kutsumine mälu vabastamiseks. pakettide äraviskamisel.
Allikas: opennet.ru