ะะพะผะฟะฐะฝะธั ะฏะฝะดะตะบั ะพะฟัะฑะปะธะบะพะฒะฐะปะฐ ะธัั ะพะดะฝัะต ัะตะบััั ััะธะปะธัั 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