ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ содСрТимому
ΠœΠ°ΠΊΡΠΈΠΌΠ΅Ρ‚Π΅Ρ€

πŸ‘‹ ΠŸΡ€ΠΈΠ²Π΅Ρ‚, сСтСвой Π΄Ρ€ΡƒΠ³!

πŸ‘‹ ΠŸΡ€ΠΈΠ²Π΅Ρ‚, сСтСвой Π΄Ρ€ΡƒΠ³! БСгодня ΠΏΡ€ΠΎ dropwatch - ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ для случаСв, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π΄ΠΎ сСрвСра доходят, Π° дальшС Π±ΡƒΠ΄Ρ‚ΠΎ ΠΈΡΠΏΠ°Ρ€ΡΡŽΡ‚ΡΡ. πŸŸ£Π’ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ТалуСтся Π½Π° ΠΏΠΎΡ‚Π΅Ρ€ΠΈ, tcpdump Π²ΠΈΠ΄ΠΈΡ‚ входящиС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Π½Π° интСрфСйсС всё спокойно. Но ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‡Π°ΡΡ‚ΡŒ запросов Ρ‚Π°ΠΊ ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚. Π’ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ отбрасываСт само ядро Linux. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈΡΡŒ Π±ΡƒΡ„Π΅Ρ€Ρ‹ ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ TCP. И Π²ΠΎΡ‚ здСсь пригодится dropwatch. Он ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Π² ΠΊΠ°ΠΊΠΈΡ… мСстах сСтСвого стСка происходят сбросы. πŸŸ£Π—Π°ΠΏΡƒΡΠΊΠ°Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ: sudo dropwatch -l kas Π’Π½ΡƒΡ‚Ρ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ сбор статистики: set alertmode summary start ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ адрСса Ρ‚ΠΎΡ‡Π΅ΠΊ сброса ΠΈ счётчики событий. Если доступны символы ядра, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° Π½ΠΈΠΌΠΈ стоят. Π₯ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ события вмСсто сводки? stop set alertmode packet start 🟣А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ интСрСснСС. На соврСмСнных ядрах Π΅ΡΡ‚ΡŒ tracepoint skb:kfree_skb, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ освобоТдСния ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ bpftrace посчитаСм события ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ: sudo bpftrace -e β€˜ tracepoint:skb:kfree_skb { @[args->reason] = count(); }’ Или посмотрим, ΠΈΠ· ΠΊΠ°ΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ядро ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΊ сбросу: sudo bpftrace -e β€˜ tracepoint:skb:kfree_skb { @[kstack(8)] = count(); }’ НапримСр, Ссли ΠΏΠΎΡ‚Π΅Ρ€ΠΈ связаны с ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ сокСта, стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡΡƒΠ·ΠΈΡ‚ΡŒ поиск Π΄ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ участка TCP-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π£ΠΆΠ΅ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π΅Π΅, Ρ‡Π΅ΠΌ просто Π²ΠΈΠ΄Π΅Ρ‚ΡŒ растущий счётчик dropped. 🟣Волько Π½Π΅ стоит ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ kfree_skb ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. НСкоторыС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ ΡˆΡ‚Π°Ρ‚Π½ΠΎ, Π° ΠΏΠΎΡ‚Π΅Ρ€ΠΈ нСпосрСдствСнно Π½Π° сСтСвой ΠΊΠ°Ρ€Ρ‚Π΅ такая трассировка ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ. И Π΅Ρ‰Ρ‘: ΠΏΠΎΠ»Π΅ reason зависит ΠΎΡ‚ вСрсии ядра. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ: sudo bpftrace -lv β€˜tracepoint:skb:kfree_skb’ Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, Ссли tcpdump ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΏΡ€ΠΈΡˆΡ‘Π», Π½ΠΎ дальшС Π΅Π³ΠΎ слСд тСряСтся, dropwatch ΠΈ bpftrace ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ с Π½ΠΈΠΌ сдСлал Linux. πŸ€–Π‘Π΅ΡΠΏΠ»Π°Ρ‚Π½Ρ‹ΠΉ ChatGPT

282 просмотров

Канал Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠœΠ°ΠΊΡΠΈΠΌΠ΅Ρ‚Π΅Ρ€Π°

935 подписчиков Β· IT ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π°

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π°

Π•Ρ‰Ρ‘ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ Β«IT ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΒ»

Π§ΠΈΡ‚Π°Ρ‚ΡŒ дальшС

Π”Π²Π° Ρ€Π°Π·Π° Π² нСдСлю свСТиС посты этого ΠΊΠ°Π½Π°Π»Π° β€” Π½Π° ΠΏΠΎΡ‡Ρ‚Ρƒ ΠΈ Π² Π»ΠΈΡ‡Π½ΡƒΡŽ Π»Π΅Π½Ρ‚Ρƒ. Π‘Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ поиска ΠΊΠ°Π½Π°Π»Π° Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.