شركة Cloudflare
تتوافق الأداة المساعدة xdpcap مع تعبيرات التصفية tcpdump/libpcap وتسمح لك بمعالجة كميات أكبر بكثير من حركة المرور على نفس الجهاز. يمكن أيضًا استخدام Xdpcap لتصحيح الأخطاء في البيئات التي لا ينطبق فيها tcpdump العادي، مثل التصفية وحماية DoS وأنظمة موازنة التحميل التي تستخدم نظام Linux kernel XDP الفرعي، الذي يعالج الحزم قبل معالجتها بواسطة مكدس شبكة Linux kernel (tcpdump). لا يرى الحزم التي تم إسقاطها بواسطة معالج XDP).
يتم تحقيق الأداء العالي من خلال استخدام الأنظمة الفرعية eBPF وXDP. eBPF هو مترجم بايت كود مدمج في Linux kernel والذي يسمح لك بإنشاء معالجات عالية الأداء للحزم الواردة/الصادرة مع اتخاذ قرارات بشأن إعادة توجيهها أو التخلص منها. باستخدام مترجم JIT، تتم ترجمة كود eBPF الثانوي بسرعة إلى تعليمات الجهاز ويتم تنفيذه بأداء التعليمات البرمجية الأصلية. يكمل النظام الفرعي XDP (eXpress Data Path) eBPF مع القدرة على تشغيل برامج BPF على مستوى برنامج تشغيل الشبكة، مع دعم الوصول المباشر إلى المخزن المؤقت لحزمة DMA والعمل في المرحلة قبل تخصيص المخزن المؤقت skbuff بواسطة مكدس الشبكة.
مثل tcpdump، تقوم الأداة المساعدة xdpcap أولاً بترجمة قواعد تصفية حركة المرور عالية المستوى إلى تمثيل BPF الكلاسيكي (cBPF) باستخدام مكتبة libpcap القياسية، ثم تقوم بتحويلها إلى شكل إجراءات eBPF باستخدام مترجم
المصدر: opennet.ru