حرف B

مرشح حزم بيركلي (Berkeley Packet Filter)

BPF

آخر تحديث: 2026-10-14
مستوى الشرح اختر المستوى التقني المناسب لك

الشرح المبسط

تخيل أن نظام التشغيل لينكس (Linux) يشبه مدينة مزدحمة، والبيانات التي تمر عبر الشبكة هي السيارات. مرشح حزم بيركلي (Berkeley Packet Filter) يعمل كشرطي مرور ذكي يقف عند مداخل ومخارج المدينة. بدلاً من أن يضطر النظام لإيقاف كل سيارة وتفتيشها ليعرف وجهتها (مما يبطئ الحركة جداً)، يقوم هذا الشرطي (BPF) بوضع قواعد صارمة تحدد بالضبط أي السيارات يمكنها الدخول أو الخروج، وأيها يتم إيقافها، وأيها يتم تسجيل بياناتها. في عالم الشبكات، هذا يسمح للبرامج بمراقبة البيانات التي تحتاجها فقط بسرعة هائلة دون إرهاق النظام بأكمله.

الشرح التقني المتقدم

تقنية مرشح حزم بيركلي (Berkeley Packet Filter) أو اختصاراً BPF، هي تقنية متقدمة في نظام لينكس (Linux) تم تصميمها أساساً لتصفية حزم الشبكة (Network Packets) بكفاءة عالية جداً. مع مرور الوقت، تطورت هذه التقنية بشكل هائل لتصبح eBPF (Extended BPF)، والتي تسمح بتشغيل برامج مصغرة داخل نواة (Kernel) النظام في بيئة معزولة وآمنة.

كيف يعمل BPF داخل نواة النظام؟

تقليدياً، عندما تصل حزمة بيانات (Packet) إلى بطاقة الشبكة، يقوم النظام بنسخها من مساحة النواة (Kernel Space) إلى مساحة المستخدم (User Space) لكي تتمكن برامج المراقبة من تحليلها. هذه العملية تستهلك موارد كبيرة وتقلل الأداء. هنا يأتي دور BPF؛ فهو يعمل كآلة افتراضية (Virtual Machine) داخل النواة نفسها، مما يسمح بتصفية الحزم قبل أن يتم نسخها إلى مساحة المستخدم، مما يوفر سرعة استثنائية في تحليل البيانات والمراقبة.

استخدامات BPF العملية

يُستخدم BPF بشكل واسع في أدوات مراقبة الشبكة وتحليل النظام، من أشهرها أداة tcpdump. عندما تستخدم هذه الأداة، فإنها تعتمد على BPF في الخلفية لتحديد الحزم التي يجب التقاطها بناءً على القواعد التي تحددها.

مثال لاستخدام tcpdump مع قواعد BPF:

sudo tcpdump -i eth0 port 80

هذا الأمر يقوم بمراقبة واجهة الشبكة (Network Interface) المسماة eth0 ويلتقط فقط الحزم التي تمر عبر المنفذ 80 (الخاص ببروتوكول HTTP).

التطور إلى eBPF وتوسيع الإمكانيات

لم يعد BPF مقتصراً على الشبكات فقط. مع ظهور eBPF، أصبحت هذه التقنية ثورة حقيقية في عالم لينكس، حيث مكنت المطورين من التفاعل مع النواة بطرق غير مسبوقة دون الحاجة لكتابة وحدات نواة (Kernel Modules) معقدة وخطيرة.

  • المراقبة والأداء (Observability): يمكن استخدام أدوات مثل bcc لتتبع أداء النظام بدقة متناهية ومعرفة أين تكمن اختناقات الأداء (Bottlenecks) في التطبيقات أو في النواة نفسها.
  • الأمان (Security): توفر eBPF إمكانيات قوية لإنشاء جدران حماية متقدمة ومراقبة سلوك التطبيقات لاكتشاف التهديدات بشكل فوري، مثل منع تنفيذ استدعاءات نظام (System Calls) معينة.
  • الشبكات (Networking): مشاريع مثل Cilium تعتمد بشكل أساسي على eBPF لتوفير توجيه عالي الأداء وتطبيق سياسات أمان متقدمة في بيئات الحاويات (Containers) ومجموعة أدوات Kubernetes.

ملاحظة ختامية: الصورة الكبرى (نصيحة احترافية)

تعتبر eBPF من أهم التقنيات الحديثة في بيئة لينكس. إذا كنت تعمل في مجالات إدارة النظم، الأمن السيبراني، أو تطوير السحابة (Cloud Computing)، فإن فهم كيفية عمل eBPF وأدواته يعتبر ميزة تنافسية هائلة لك، حيث يمنحك رؤية غير مسبوقة لما يحدث في عمق النظام.