Яндэкс апублікаваў 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

Дадаць каментар