شرکت Cloudflare
ابزار xdpcap با عبارات فیلتر tcpdump/libpcap سازگار است و به شما امکان می دهد حجم قابل توجهی از ترافیک را روی همان سخت افزار پردازش کنید. Xdpcap همچنین میتواند برای اشکالزدایی در محیطهایی استفاده شود که tcpdump معمولی قابل اجرا نیست، مانند فیلتر کردن، حفاظت از DoS، و سیستمهای متعادل کننده بار که از زیرسیستم XDP هسته لینوکس استفاده میکنند، که بستهها را قبل از پردازش توسط پشته شبکه هسته لینوکس پردازش میکند (tcpdump بسته هایی را که توسط کنترل کننده XDP رها شده اند نمی بیند.
عملکرد بالا با استفاده از زیرسیستم های eBPF و XDP به دست می آید. eBPF یک مفسر بایت کد است که در هسته لینوکس تعبیه شده است که به شما امکان می دهد کنترل کننده های با کارایی بالا بسته های ورودی/خروجی را با تصمیم گیری در مورد ارسال یا دور انداختن آنها ایجاد کنید. با استفاده از یک کامپایلر JIT، بایت کد eBPF به سرعت به دستورالعمل های ماشین ترجمه شده و با عملکرد کد اصلی اجرا می شود. زیرسیستم XDP (eXpress Data Path) مکمل eBPF با قابلیت اجرای برنامه های BPF در سطح درایور شبکه، با پشتیبانی از دسترسی مستقیم به بافر بسته DMA و کار در مرحله قبل از تخصیص بافر skbuff توسط پشته شبکه است.
مانند tcpdump، ابزار xdpcap ابتدا قوانین فیلترینگ ترافیک سطح بالا را با استفاده از کتابخانه استاندارد libpcap به نمایش کلاسیک BPF (cBPF) ترجمه می کند و سپس با استفاده از یک کامپایلر آنها را به شکل روتین های eBPF تبدیل می کند.
منبع: opennet.ru