Cloudflare je objavio xdpcap, analizator prometa temeljen na XDP podsustavu

Tvrtka Cloudflare predstavio otvoreni projekt xdpcap, unutar kojeg se razvija analizator mrežnih paketa sličan tcpdumpu, izgrađen na temelju podsustava XDP (eXpress Data Path). Kod projekta je napisan u Go i distribuira pod BSD licencom. Projekt također pripremljeno biblioteka za vezanje eBPF rukovatelja prometom iz Go aplikacija.

Uslužni program xdpcap kompatibilan je s tcpdump/libpcap izrazima za filtriranje i omogućuje vam obradu znatno veće količine prometa na istom hardveru. Xdpcap se također može koristiti za otklanjanje pogrešaka u okruženjima gdje regularni tcpdump nije primjenjiv, kao što su sustavi za filtriranje, DoS zaštitu i balansiranje opterećenja koji koriste XDP podsustav jezgre Linuxa, koji obrađuje pakete prije nego ih obradi mrežni stog jezgre Linuxa (tcpdump ne vidi pakete koje je ispustio XDP rukovatelj).

Visoke performanse postižu se upotrebom eBPF i XDP podsustava. eBPF je interpreter bajt koda ugrađen u Linux kernel koji vam omogućuje stvaranje visokoučinkovitih rukovatelja dolaznim/odlaznim paketima s odlukama o njihovom prosljeđivanju ili odbacivanju. Pomoću JIT kompajlera, eBPF bajt kod se u hodu prevodi u strojne instrukcije i izvršava s izvedbom izvornog koda. Podsustav XDP (eXpress Data Path) nadopunjuje eBPF s mogućnošću pokretanja BPF programa na razini mrežnog upravljačkog programa, uz podršku za izravan pristup međuspremniku DMA paketa i rad u fazi prije nego što skbuff međuspremnik dodijeli mrežni stog.

Poput tcpdumpa, uslužni program xdpcap prvo prevodi pravila filtriranja prometa visoke razine u klasični BPF prikaz (cBPF) pomoću standardne biblioteke libpcap, a zatim ih pretvara u oblik eBPF rutina pomoću kompajlera cbpfc, koristeći LLVM/Clang razvoj. Na izlazu se informacije o prometu spremaju u standardnom pcap formatu, koji vam omogućuje da koristite ispis prometa pripremljen u xdpcap-u za naknadno proučavanje u tcpdump-u i drugim postojećim analizatorima prometa. Na primjer, za snimanje informacija o DNS prometu, umjesto korištenja naredbe "tcpdump ip and udp port 53", možete pokrenuti "xdpcap /path/to/hook capture.pcap 'ip and udp port 53′" i zatim koristiti snimanje .pcap datoteku, npr. s naredbom "tcpdump -r" ili u Wiresharku.

Izvor: opennet.ru

Dodajte komentar