Podjetje Cloudflare je objavilo xdpcap, analizator prometa, ki temelji na XDP podsystems.

Firma Cloudflare je predstavilo odprti projekt xdpcap, v okviru katerega se razvija analizator omrežnih paketov, podoben tcpdump, ki temelji na podvizijah XDP (eXpress Data Path). Koda projekta je napisana v jeziku Go in se distribuira pod licenco BSD. Projekt vključuje je bila pripravljena knjižnico za vezavo eBPF obdelovalcev prometa iz aplikacij v jeziku Go.

Orodje xdpcap je združljivo z izraznimi filtri tcpdump/libpcap in omogoča obdelavo znatno večjih količin prometa na istem omrežju. Xdpcap se lahko uporablja tudi za odpravljanje napak v pogojih, kjer običajni tcpdump ni mogoč, na primer, ko delujejo sisteme filtriranja, zaščite pred napadi DoS in uravnoteženja obremenitev, ki uporabljajo podvizijo jedra Linux XDP, ki obravnava pakete pred obdelavo v omrežnem skladu jedra Linux (tcpdump ne vidi paketov, ki jih je zavrnil obdelovalec XDP).

Visoka zmogljivost se doseže s uporabo podvizij eBPF in XDP. eBPF je v jedro Linux vgrajen interpreter bajtne kode, ki omogoča ustvarjanje visoko zmogljivih obdelovalcev prihodnjih/odhodnih paketov z odločitvami o njihovi preusmeritvi ali zavrnitvi. Z uporabo JIT prevajalnika se bajtna koda eBPF v realnem času prevaja v strojne ukaze in izvaja s hitrostjo nativne kode. Podvizija XDP (eXpress Data Path) dopolnjuje eBPF z možnostjo izvajanja BPF programov na ravni omrežnega gonilnika, z neposrednim dostopom do DMA pomnilnika paketov in deluje pred dodeljevanjem pomnilnika skbuff omrežnemu skladu.

Podobno kot tcpdump, orodje xdpcap na začetku prevaža visoko nivojska pravila filtriranja prometa v klasično predstavitev BPF (cBPF) s pomočjo standardne knjižnice libpcap, nato pa jih pretvori v obliko eBPF podprogramov z uporabo prevajalnika cbpfc, ki izkorišča orodja LLVM/Clang. Rezultati o prometu se shranijo v standardni obliki pcap, kar omogoča uporabo pripravljenega v xdpcap zajema prometa za poznejšo analizo v tcpdumpu in drugih obstoječih analizatorjih prometa. Na primer, za zajem podatkov o DNS prometu namesto ukaza „tcpdump ip and udp port 53“ lahko zaženete „xdpcap /pot/do/hook capture.pcap ‘ip and udp port 53’“, nato pa uporabite datoteko capture.pcap, na primer z ukazom „tcpdump -r“ ali v Wiresharku.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster