Cloudflare, XDP alt sistemini temel alan bir trafik analizörü olan xdpcap'ı yayınladı

Cloudflare Şirketi sunulan projeyi aç xdpcaptcpdump'a benzer bir ağ paket analizörünün geliştirildiği, alt sistem temelinde inşa edilen XDP (eXpress Veri Yolu). Proje kodu Go'da yazılmıştır ve tarafından dağıtıldı BSD lisansı altındadır. Proje aynı zamanda tarafından hazırlanan Go uygulamalarından eBPF trafik işleyicilerini bağlamak için kitaplık.

xdpcap yardımcı programı, tcpdump/libpcap filtreleme ifadeleriyle uyumludur ve aynı donanım üzerinde önemli ölçüde daha büyük hacimli trafiği işlemenize olanak tanır. Xdpcap ayrıca, paketleri Linux çekirdek ağ yığını (tcpdump) tarafından işlenmeden önce işleyen Linux çekirdek XDP alt sistemini kullanan filtreleme, DoS koruması ve yük dengeleme sistemleri gibi normal tcpdump'ın uygulanamadığı ortamlarda hata ayıklamak için de kullanılabilir. XDP işleyicisi tarafından bırakılan paketleri görmez).

eBPF ve XDP alt sistemlerinin kullanımıyla yüksek performans elde edilir. eBPF, Linux çekirdeğinde yerleşik olarak bulunan ve gelen/giden paketlerin yüksek performanslı işleyicilerini oluşturmanıza ve bunları iletme veya atma kararlarını vermenize olanak tanıyan bir bayt kodu yorumlayıcısıdır. Bir JIT derleyicisi kullanılarak, eBPF bayt kodu anında makine talimatlarına çevrilir ve yerel kodun performansıyla yürütülür. XDP (eXpress Veri Yolu) alt sistemi, eBPF'yi, DMA paket arabelleğine doğrudan erişim desteğiyle ve ağ yığını tarafından skbuff arabelleği tahsis edilmeden önceki aşamada çalışma desteğiyle, BPF programlarını ağ sürücüsü düzeyinde çalıştırma yeteneğiyle tamamlar.

Tcpdump gibi, xdpcap yardımcı programı da önce standart libpcap kitaplığını kullanarak yüksek düzeyli trafik filtreleme kurallarını klasik BPF temsiline (cBPF) dönüştürür ve ardından bunları bir derleyici kullanarak eBPF rutinleri biçimine dönüştürür. cbpfcLLVM/Clang geliştirmelerini kullanarak. Çıkışta, trafik bilgileri standart pcap formatında kaydedilir; bu, xdpcap'ta hazırlanan trafik dökümünü tcpdump ve diğer mevcut trafik analizörlerinde daha sonra çalışmak üzere kullanmanıza olanak tanır. Örneğin, DNS trafik bilgilerini yakalamak için "tcpdump ip and udp port 53" komutunu kullanmak yerine "xdpcap /path/to/hookcapture.pcap 'ip and udp port 53′" komutunu çalıştırabilir ve ardından bir yakalama kullanabilirsiniz. .pcap dosyası, örneğin "tcpdump -r" komutuyla veya Wireshark'ta.

Kaynak: opennet.ru

Yorum ekle