Cloudflare şirkəti XDP altsisteminə əsaslanan trafik analizatoru xdpcap nəşr etdi

Cloudflare şirkəti təqdim açıq layihə xdpcap, daxilində tcpdump-a bənzər bir şəbəkə paketi analizatoru hazırlanır, alt sistem əsasında qurulur XDP (eXpress Məlumat Yolu). Layihə kodu Go və dilində yazılmışdır yayılır BSD lisenziyası altında. Layihə də hazırlanmışdır Go proqramlarından eBPF trafik idarəçilərini bağlamaq üçün kitabxana.

Xdpcap yardım proqramı tcpdump/libpcap filtrləmə ifadələri ilə uyğun gəlir və eyni aparatda əhəmiyyətli dərəcədə daha böyük həcmdə trafiki emal etməyə imkan verir. Xdpcap həmçinin Linux nüvəsi şəbəkə yığını (tcpdump) tərəfindən paketləri emal etməzdən əvvəl onları emal edən Linux nüvəsi XDP alt sistemindən istifadə edən filtrləmə, DoS qorunması və yük balanslaşdırma sistemləri kimi müntəzəm tcpdump-ın tətbiq olunmadığı mühitlərdə sazlama üçün istifadə edilə bilər. XDP işləyicisi tərəfindən atılan paketləri görmür).

Yüksək performans eBPF və XDP alt sistemlərindən istifadə etməklə əldə edilir. eBPF Linux nüvəsinə quraşdırılmış bayt kodu tərcüməçisidir ki, bu da daxil olan/gidən paketlərin yönləndirilməsi və ya atılması ilə bağlı qərarlar verən yüksək performanslı işləyicilər yaratmağa imkan verir. JIT kompilyatorundan istifadə edərək, eBPF bayt kodu tez bir zamanda maşın təlimatlarına çevrilir və yerli kodun icrası ilə yerinə yetirilir. XDP (eXpress Data Path) alt sistemi eBPF-ni DMA paket buferinə birbaşa daxil olmaq və skbuff buferinin şəbəkə yığını tərəfindən ayrılmasından əvvəlki mərhələdə işləmək dəstəyi ilə şəbəkə sürücüsü səviyyəsində BPF proqramlarını işə salmaq imkanı ilə tamamlayır.

Tcpdump kimi, xdpcap yardım proqramı əvvəlcə standart libpcap kitabxanasından istifadə edərək yüksək səviyyəli trafik filtrləmə qaydalarını klassik BPF təmsilçiliyinə (cBPF) tərcümə edir və sonra onları kompilyatordan istifadə edərək eBPF rutinləri formasına çevirir. cbpfc, LLVM/Clang inkişaflarından istifadə etməklə. Çıxışda trafik məlumatları standart pcap formatında saxlanılır ki, bu da tcpdump və digər mövcud trafik analizatorlarında sonrakı araşdırma üçün xdpcap-da hazırlanmış trafik zibilindən istifadə etməyə imkan verir. Məsələn, DNS trafik məlumatını tutmaq üçün "tcpdump ip və udp port 53" əmrindən istifadə etmək əvəzinə, "xdpcap /path/to/hook capture.pcap 'ip və udp port 53′" əmrini işlədə və sonra tutma istifadə edə bilərsiniz. .pcap faylı, məsələn, "tcpdump -r" əmri ilə və ya Wireshark-da.

Mənbə: opennet.ru

Добавить комментарий