Cloudflare нь XDP дэд систем дээр суурилсан хөдөлгөөний анализатор болох xdpcap-ийг нийтлэв

Cloudflare компани танилцуулсан нээлттэй төсөл xdpcap, дэд системийн үндсэн дээр баригдсан tcpdump-тай төстэй сүлжээний пакет анализаторыг боловсруулж байна. XDP (eXpress мэдээллийн зам). Төслийн код нь Go болон дээр бичигдсэн тараасан BSD лицензийн дагуу. Төсөл мөн бэлтгэсэн Go аппликешнүүдийн eBPF замын хөдөлгөөн зохицуулагчийг холбох номын сан.

Xdpcap хэрэгсэл нь tcpdump/libpcap шүүлтүүрийн илэрхийлэлтэй нийцдэг бөгөөд нэг техник хангамж дээр илүү их хэмжээний урсгалыг боловсруулах боломжийг танд олгоно. Xdpcap-ийг мөн Linux цөмийн сүлжээний стекээр (tcpdump) боловсруулахаас өмнө пакетуудыг боловсруулдаг Linux цөмийн XDP дэд системийг ашигладаг шүүлтүүр, DoS хамгаалалт, ачаалал тэнцвэржүүлэх систем зэрэг ердийн tcpdump ашиглах боломжгүй орчинд дибаг хийхэд ашиглаж болно. XDP зохицуулагчийн хаясан пакетуудыг харахгүй байна).

eBPF болон XDP дэд системийг ашигласнаар өндөр гүйцэтгэлд хүрдэг. eBPF нь Линуксийн цөмд суурилуулсан байт код тайлбарлагч бөгөөд ирж буй/гарч буй пакетуудыг дамжуулах, хаях шийдвэр бүхий өндөр гүйцэтгэлтэй зохицуулагчийг үүсгэх боломжийг олгодог. JIT хөрвүүлэгчийг ашиглан eBPF байт кодыг шууд машины заавар болгон хөрвүүлж, эх кодын гүйцэтгэлээр гүйцэтгэдэг. XDP (eXpress Data Path) дэд систем нь eBPF-г нөхөж, сүлжээний драйверын түвшинд BPF программуудыг ажиллуулах, DMA пакет буферт шууд хандах, skbuff буферийг сүлжээний стекээр хуваарилахаас өмнөх үе шатанд ажиллах дэмжлэгтэй.

Tcpdump-ийн нэгэн адил xdpcap хэрэгсэл нь эхлээд стандарт libpcap номын санг ашиглан өндөр түвшний замын хөдөлгөөний шүүлтүүрийн дүрмийг сонгодог BPF дүрслэл (cBPF) болгон хөрвүүлж, дараа нь хөрвүүлэгч ашиглан eBPF горимын хэлбэрт хөрвүүлдэг. cbpfc, LLVM/Clang хөгжүүлэлтийг ашиглан. Гаралтын үед замын хөдөлгөөний мэдээллийг стандарт pcap форматаар хадгалдаг бөгөөд энэ нь xdpcap-д бэлтгэсэн замын хөдөлгөөний овоолгыг tcpdump болон бусад одоо байгаа траффик анализаторууд дээр дараагийн судалгаанд ашиглах боломжийг олгодог. Жишээлбэл, DNS замын хөдөлгөөний мэдээллийг авахын тулд "tcpdump ip болон udp порт 53" командыг ашиглахын оронд "xdpcap /path/to/hook capture.pcap 'ip ба udp порт 53′"-г ажиллуулж, дараа нь capture ашиглаж болно. .pcap файл, жишээ нь "tcpdump -r" тушаалаар эсвэл Wireshark дээр.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх