→ العودة إلى القائمة

شرح موسّع لموازنة الأحمال (Load Balance): المعروف أيضاً باسم F5، مع تقديم حالات عملية واقعية

itadol5j

لا يكاد أحد يعمل في التشغيل والصيانة أو الأمن دون أن يمر بمصطلح — موازنة الأحمال. وعند ذكر موازنة الأحمال، أوّل جهاز يخطر ببال كثيرين هو «F5». والمثير للاهتمام أن F5 في الحقيقة اسم شركة (F5 Networks)، لكن لأن منتجاتها اشتُهرت جداً، تحولت تدريجياً إلى مرادف لموازن الأحمال، تماماً كما أصبحت عبارة «ابحث في Baidu» مرادفاً للبحث.

موازنة الأحمال F5

في هذا المقال سنشرحه شرحاً وافياً: ما هو F5 بالضبط، وأين يكمن الفرق بين الطبقة الرابعة والسابعة، وكيف تتم عملية الإعداد في السيناريوهات الواقعية.

أولاً: ما المشكلة التي تحلها موازنة الأحمال فعلاً

موازنة الأحمال (Load Balance) هي في جوهرها توزيع مهام العمل على عدة وحدات تشغيل للتنفيذ — مثل خوادم الويب وخوادم FTP وخوادم التطبيقات الحيوية للمؤسسة — بحيث تنجز العمل معاً.

من الناحية التقنية، يظهر للخارج على شكلعنوان خادم افتراضي. وعند اتصال المستخدمين، يقوم عبر ترجمة عناوين الشبكة الثنائية الاتجاه (NAT) بتحويل الاتصال إلى الخادم الحقيقي الأنسب. ما يراه المستخدم هو المدخل نفسه دائماً، بينما تحمل العبء في الخلف مجموعة من الآلات.

وتسعى لحل ثلاث مشكلات:الخوف من التوقف(نقطة فشل مفردة)،الخوف من عدم تحمّل الحمل(عنق زجاجة في الأداء)،الخوف من تعذر التوسع(عدم القدرة على التوسع الأفقي).

ثانياً: الطبقة الرابعة مقابل السابعة — أكثر ما يُخطئ فيه الناس

جوهر الفرق يتلخص في عبارة واحدة:هل نحلل بروتوكول طبقة التطبيقات أم لا. وهذا الفرق يحدد مباشرة حدود القدرات ومستوى الأداء.

موازنة الأحمال في الطبقة الرابعة (طبقة النقل)

  • مستوى العمل: الطبقة الرابعة في نموذج OSI، بروتوكولا TCP/UDP
  • أساس إعادة التوجيه: عنوان IP المصدر وعنوان IP الهدف ورقم المنفذ — دون المساس ببيانات التطبيقات
  • القدرات الأساسية: إعادة توجيه المنافذ، وإعادة استخدام اتصالات TCP، والفحص الصحي في الطبقة الرابعة (مصافحة TCP)، والحماية الأساسية من DDoS
  • الأداء: كفاءة إعادة توجيه عالية جداً تقترب من حدود العتاد، وزمن استجابة بمستوى الميكروثانية
  • السيناريوهات النموذجية: قواعد البيانات (MySQL/Redis)، وخدمات TCP (خوادم الألعاب وخدمات Netty)، وموازنة الروابط عبر مراكز البيانات
  • المنتجات الممثلة: LVS وF5 (وضع الطبقة الرابعة) وHAProxy (وضع الطبقة الرابعة) وNginx (وحدة stream)

موازنة الأحمال في الطبقة السابعة (طبقة التطبيقات)

  • مستوى العمل: الطبقة السابعة في نموذج OSI، بروتوكولات التطبيقات مثل HTTP/HTTPS وDNS وFTP
  • أساس إعادة التوجيه: الرابط URL وملفات Cookie وترويسات HTTP ومعاملات الطلب ومحتوى JSON
  • القدرات الأساسية: التوجيه القائم على المحتوى، وتفريغ SSL، والتخزين المؤقت، وتحديد المعدل وقواطع الدائرة، والتكامل مع WAF، وتثبيت الجلسات، والإطلاق التدريجي
  • الأداء: وظائف غنية، لكنها تتطلب تحليل بروتوكولات التطبيقات فترتفع زمن الاستجابة قليلاً (مستوى الملّيثانية)، ويُعوَّض ذلك بالتوسع عبر العناقيد
  • السيناريوهات النموذجية: تطبيقات الويب، وواجهات API للخدمات الدقيقة، وخدمات HTTPS، والإطلاق التدريجي، وبوابات API
  • المنتجات الممثلة: Nginx وHAProxy (وضع الطبقة السابعة) وF5 (وحدة الطبقة السابعة) وKong وSpring Cloud Gateway

قاعدة للحفظ بجملة واحدة: الطبقة الرابعة تُوجّه بمجرد النظر إلى «لوحة الطريق» (عنوان IP والمنفذ)، بينما الطبقة السابعة يجب أن «تفتح الطرد» (تفحص المحتوى) قبل أن تقرر إلى أين يُرسل. للأداء اختر الرابعة، وللميزات الغنية اختر السابعة.

ثالثاً: في ماذا يتفوق F5 BIG-IP فعلاً

المنتج الرئيسي من F5 هو BIG-IP LTM، واسمه الرسميمدير حركة البيانات المحلية (Local Traffic Manager)، وهو قادر على موازنة الأحمال من الطبقة الرابعة إلى السابعة. وهو ليس مجرد مُوجِّه، فقائمة وظائفه طويلة جداً: تبديل التطبيقات، وتبديل الجلسات، ومراقبة الحالة، وNAT الذكي، والاستمرارية العامة، ومعالجة أخطاء الاستجابة، وبوابة IPv6، والتوجيه المتقدم، وتسريع SSL، وضغط HTTP الذكي، وتحسين TCP، وتخزين المحتوى مؤقتاً، وتشفير Cookie، وتصفية هجمات التطبيقات، والحماية من DoS وSYN Flood، وتصفية حزم الجدار الناري…

ونستعرض أكثرها عملية:

1. موازنة الأحمال عبر روابط متعددة والتكرار الاحتياطي

غالباً ما تحتاج الأعمال الحيوية إلى الاتصال بعدة خطوط من مزودي خدمة الإنترنت (ISP) لضمان الجودة وإزالة نقطة الفشل المفردة. وهنا اتجاهان:

  • حركة البيانات الصادرة (OUTBOUND)(الشبكة الداخلية تصل إلى الخارج): يوزع BIG-IP LC حركة البيانات بذكاء على واجهات إنترنت مختلفة وينفذ NAT لعنوان المصدر
  • حركة البيانات الواردة (INBOUND)(الخارج يصل إلى الشبكة الداخلية): ربط العناوين العامة لمزودي ISP معاً، والاستجابة لطلبات DNS لكلا المزودين، والرد بذكاء وفق الحالة الصحية للخوادم وزمن RTT

2. موازنة أحمال الخوادم

يقدم الخدمة للخارج عبر VIP (عنوان IP افتراضي يتكون من عنوان IP ومنفذ TCP/UDP)، ويجري باستمرار فحوصاً صحية من L4 إلى L7 للخوادم المستهدفة. وبمجرد اكتشاف خادم معطوب يُستبعد من مجموعة الموازنة. كما يمكن بالتنسيق مع iRules فتح حزم TCP/UDP ومعالجتها بقواعد وفق خصائص المحتوى — مثل توجيه حركة البيانات إلى خوادم مختلفة بحسب الـ URL.

3. الإتاحة العالية للنظام

هذا أكثر ما يتباهى به F5. في وضع التكرار الاحتياطي بجهازينتبديل بمستوى الملّيثانية(في أسرع الحالات خلال 200ms)، مع إتاحة مدعاة بنسبة 99.999%. المبدأ: عند مرور جميع الجلسات عبر الجهاز النشط (Active)، تُزامَن معلومات الجلسة عبر كابل مزامنة البيانات إلى الجهاز الاحتياطي (Backup) — لذلك لا ينقطع وصول المستخدم عند التبديل. وتراقب شريحة watchdog داخل الجهاز نبض الجهاز الآخر عبر كابل نبض القلب (heartbeat)، وإذا تعطل الجهاز النشط أبلغ فوراً الجهاز الاحتياطي ليتولى Shared IP وVIP.

4. الأمان

يعتمد BIG-IP مبادئ تصميم الجدران النارية،الرفض افتراضياً. يستطيع فك الاتصالات الخاملة لصد DoS، وتنفيذ تتبع مسار المصدر لصد انتحال IP، ورفض SYN دون ACK لصد هجمات SYN. كما تتيح ميزة Dynamic Reaping حذف الاتصالات الخاملة أثناء هجمات DoS بكفاءة، علاوة على أنسرعة قطع الاتصالات تزداد مع تنامي حجم الهجوم— وهذه نقطة قوية جداً. أما تقنية Delay Binding فتوفر حماية شاملة للخوادم الخلفية من SYN Flood.

5. تسريع SSL

كل جهاز BIG-IP يحتوي على شريحة تسريع SSL عتادية، ويأتي مع ترخيص بسعة 100 TPS دون رسوم إضافية. وإذا احتجت للتوسع لاحقاً يكفي ترقية الترخيص.

موازن أحمال F5 BIG-IP

رابعاً: F5 أم Nginx؟ مقارنة للاختيار

هذا أكثر سؤال يطرح في العمل الفعلي. العلاقة بينهما ليست تنافسية بل تتكاملان أكثر.

F5 BIG-IP (عتاد)

  • شكل النشر: جهاز عتادي مخصص (يشمل شرائح مصممة خصيصاً)
  • الأداء: ملايين اتصالات TCP وزمن إعادة توجيه بمستوى الميكروثانية
  • الوظائف: شامل — الطبقتان الرابعة والسابعة معاً، وتفريغ SSL، والحماية من DDoS، وWAF، وVPN، وموازنة الروابط
  • الموثوقية: تكرار عتادي (احتياط ساخن بجهازين)، إتاحة 99.999%
  • التكلفة: باهظة (من مئات الآلاف إلى الملايين)، وتتطلب مهندسين متخصصين للصيانة
  • قابلية التوسع: تعتمد على ترقية العتاد، ومرونتها منخفضة
  • التشغيل والصيانة: معقدة، وتتطلب إلماماً بواجهة الإعداد الخاصة وواجهة سطر الأوامر CLI

Nginx (برمجيات)

  • شكل النشر: برمجيات تعمل على خوادم عامة أو أجهزة سحابية
  • الأداء: مئات الآلاف من اتصالات TCP وزمن استجابة بمستوى الملّيثانية، مع إمكانية التوسع عبر العناقيد
  • الوظائف: خفيفة وفعالة — الطبقة السابعة هي النواة، مع دعم الطبقة الرابعة وتفريغ SSL والتخزين المؤقت وتحديد المعدل والوكيل العكسي
  • الموثوقية: تتطلب إعداد الاحتياط الساخن بجهازين يدوياً (Keepalived)، وتعتمد على ثبات عتاد الخادم
  • التكلفة: مجانية مفتوحة المصدر، ورسوم Nginx Plus منخفضة نسبياً
  • قابلية التوسع: تدعم النشر العنقودي، ويمكن التوسع بمرونة في البيئات السحابية
  • التشغيل والصيانة: بسيطة، وملفات الإعداد سهلة القراءة، ويستطيع مهندسو الخلفية إتقانها بسرعة

نقاط مفترق الاختيار، اتبعها كما هي:

  • خدمات TCP عالية التزامن (الألعاب والأوراق المالية) + إتاحة قصوى → F5 في الطبقة الرابعة
  • مدخل الأعمال الأساسية + متطلبات أمنية (WAF/DDoS) → F5 في الطبقة السابعة
  • بوابة API للخدمات الدقيقة + نشر في بيئة سحابية → Nginx في الطبقة السابعة
  • أحمال قواعد البيانات/Redis + قيمة مقابل التكلفة عالية → Nginx في الطبقة الرابعة
  • أعمال متوسطة وصغيرة + تكرار سريع → Nginx (الطبقة الرابعة/السابعة)
  • مركز بيانات على مستوى المؤسسات + روابط متعددة → F5 للمدخل وNginx لموازنة أحمال الخدمات الداخلية

المزيج الأخير شائع جداً في الشركات الكبرى فعلياً — F5 يحرس البوابة الخارجية وNginx يدير الداخل.

خامساً: حالة عملية — ما مدى تعقيد إعداد F5

ردة فعل كثيرين عند أول استخدام لـ F5 هي:هذا نهج مختلف تماماً عن عقلية المبدلات (Switch)، ولا أعرف من أين أبدأ. فمنطق إعداده يعتمد منظومة مختلفة كلياً.

السيناريو: خادما ويب يقدمان الخدمة للخارج بعنواني IP هما 192.168.192.10-20/24، والمطلوب تنفيذ موازنة الأحمال عبر المنفذ 80 للعنوان الخارجي 192.168.27.100.

أبسط موازنة أحمال تحتاج ثلاثة معاملات فقط، وتسري علاقاتها تدرجياً:

  • Node (العقدة): أبسط تعريف، فكل خادم يمثل Node واحداً
  • Pool (مجموعة الموارد): مجموعة من العقد Node التي تستقبل حركة البيانات وتعالجها، مثل عنقود خوادم الويب
  • Virtual Server (الخادم الافتراضي): المدخل الخارجي، ويرتبط بـ Pool

مسار البيانات: طلب العميل → Virtual Server → Pool → Node.

خطوات التنفيذ (واجهة إدارة BIG-IP):

  • الخطوة الأولى: تفعيل الجهاز. عند استلام F5 فعّله أولاً، والمعالج بسيط، لكن تذكّرضرورة الاتصال بالإنترنت، ويُفضل إكمال ذلك قبل ركّبه في الرف— وهذه خبرة يكلفك تجاهلها غالياً
  • الخطوة الثانية: تسجيل الدخول. افتح في المتصفح https://IP-الإدارة، واسم المستخدم وكلمة المرور الافتراضيان كلاهما admin
  • الخطوة الثالثة: إنشاء VLAN. من Network → VLANs، أنشئ VLAN وأضف الواجهات إليه (اختر Untagged)
  • الخطوة الرابعة: إعداد IP. من Networks → Self IPs، عيّن عنواناً لكل VLAN
  • الخطوة الخامسة: إعداد التوجيه. من Networks → Routes، اضبط البوابة الافتراضية أو مسارات ثابتة
  • الخطوة السادسة: إعداد Pool. من Local Traffic → Virtual Servers → Pools، عيّن الاسم والفحص الصحي (مثل TCP) وخوارزمية موازنة الحمل (مثل أسلوب المراقبة observed-member) وعناوين IP الحقيقية للخوادم والمنافذ
  • الخطوة السابعة: إعداد Virtual Server. من Local Traffic → Virtual Servers، اربط الـ Pool أعلاه واختر أسلوب التوزيع الدوري (الشائع هو RoundRobin)
  • الخطوة الثامنة: إعداد Monitor. من Local Traffic → Monitors، افحص الحالة الصحية للخوادم واربطها بـ Pool
  • الخطوة التاسعة: إعداد Redundant، لتنفيذ التكرار الاحتياطي بجهازين

سادساً: معاملات مفتاحية في Virtual Server

نواة F5 هي Virtual Server، وإهمال بعض المعاملات سيؤدي إلى مشاكل.

VS Type (النوع)، وثلاثة أنواع شائعة:

  • Performance L4: إعادة توجيه صرفة في الطبقة الرابعة، حيث يتولى TMM توزيع الاتصالات فقط دون تغيير معاملات TCP، واتصال العميل بالخادم هو 1:1. معدل إعادة التوجيه سريع، وهو شائع الاستخدام في المؤسسات. وللحد من تأثيره على التطبيقات،اختر هذا النوع أولاً متى أمكن
  • Standard VS: اتصال TCP بين العميل والخادم مستقل تماماً. يُستخدم عند الحاجة لوظائف الطبقة السابعة (تثبيت الجلسة عبر Cookie، وتثبيت Session ID، وتثبيت Header، وتقسيم الاتصالات الطويلة القائم على المعاملات، والحماية من هجمات SYN). وانتبه لخاصية:منافذه مفتوحة للخارج دائماً— فحتى إذا تعطلت جميع عقد Node الخلفية، يظل منفذ 80 على الـ VIP قابلاً للوصول عبر telnet، لكن صفحة الويب لا تفتح. تذكّر ذلك عند استكشاف الأخطاء
  • Forwarding IP: يُستخدم لربط الشبكتين الداخلية والخارجية، وليس له أعضاء Pool، وإعادة التوجيه تعتمد على التوجيه المحلي. افتراضياً لا يملك F5 وظيفة توجيه، وتحتاج إلى إنشاء VS بقناع 0.0.0.0 لتفعيل وظيفة التوجيه

يجب مزامنة قيم Timeout(وهذه مصيبة حقيقية). إذا ضُبط TCP Profile على الـ VS فلن تُقبل اتصالات UDP. وانتبه أكثر لقيمة Idle Timeout ضمن tcp —يجب أن تتوافق مع الخادم. فإذا ضُبطت على F5 بـ150 ثانية بينما خادم IIS على 300 ثانية، ستظهر أخطاء كثيرة. يجب الاتفاق على الزمن بين الطرفين.

Address/Port Translation: كلاهما ممكّن (enabled) افتراضياً. فعّل Address Translation عندما يختلف عنوان IP الخاص بالـ VS عن عنوان الجهاز الحقيقي؛ وفعّل Port Translation عندما يقابل منفذ 8080 في الـ VS المنفذ 80 في العنوان الحقيقي.

SNAT AutoMap: المصدر في SNAT هو الـ Self IP الموجود على الـ VLAN الذي يخرج منه الطلب. وعندما يوجد عدة عناوين Self IP على الـ VLAN نفسه تُستخدم بالتناوب.

سابعاً: لماذا لا بد من فهم «تثبيت الجلسة»

هذا المفهوم هو الأسهل إغفالاً والأكثر سبباً للمشاكل في موازنة الأحمال.

في أنظمة التجارة الإلكترونية والمصادقة عبر الإنترنت ونحوها، يحتاج العميل إلى عدة تفاعلات لإتمام معاملة واحدة. وهذه التفاعلاتمترابطة فيما بينها ارتباطاً وثيقاً— فعندما يعالج الخادم الخطوة الثانية يحتاج غالباً إلى معرفة نتيجة الخطوة الأولى. وهذا يتطلب أن تُنجز كل هذه التفاعلاتعلى الخادم نفسه حتماً، ولا يجوز أن يوزعها موازن الأحمال على آلات مختلفة.

هذا هو سبب وجود تثبيت الجلسة (Persistence). يحققه F5 عبر Connectivity، والأوضاع المتاحة تشمل:

  • تثبيت عنوان المصدر: الربط بحسب عنوان IP المصدر للعميل
  • تثبيت Cookie: يدرج F5 تلقائياً Cookie للجلسة، وهو الأكثر استخداماً في الطبقة السابعة
  • تثبيت SSL Session ID: إعادة استخدام جلسة SSL
  • جدول تثبيت الجلسات: يدعم قواعد مهلة ومطابقة متعددة

ماذا لو أُعدَّ خطأ؟ يضيف المستخدم منتجات إلى سلة الشراء، وعند تحديث الصفحة تختفي — لأن الطلب وُزع على خادم آخر. مثل هذه الأعطال في بيئة الإنتاج يستغرق استكشافها جهداً كبيراً.

ثامناً: تفاصيل عملية لا يمكن تجاوزها

وفي الختام نختار بعض المصاعب التي وقع فيها الآخرون ونقدم الاستنتاج مباشرة:

  • اختر المستوى الصحيح للفحص الصحي: الاكتفاء بمصافحة TCP يعني أن منفذ الخادم حي لكن التطبيق معطل وستظل الطلبات تُوجَّه؛ لفحص طبقة التطبيقات استخدم Monitor من نوع HTTP لاستكشاف واجهات مثل /actuator/health
  • الجدران النارية تحتاج ترتيب «الساندويتش»: جدار ناري واحد لا يصل غالباً إلا إلى 30% من معدل نقل الخط، ولرفع الأداء لا بد من إضافة عدة أجهزة. لكن الجدار الناري يشترط دخول البيانات والخروج عبره نفسه وإلا رُفض الاتصال — وحل موازنة أحمال الجدران النارية في F5 يعالج هذه المشكلة ويحقق استمرارية شفافة للأجهزة
  • تفريغ SSL هو أكبر ما يوفر من موارد المعالج CPU: دع F5 يتولى مصافحة HTTPS والتشفير وفك التشفير، بينما يتولى تطبيق Java الخلفي معالجة HTTP فقط، فيتحسن الأداء تحسناً واضحاً
  • أجرِ اختبار التحميل قبل الوصول إلى بيئة الإنتاج: الطبقة الرابعة سريعة، لكن إذا فعّلت تثبيت الجلسة على VS من الطبقة الرابعة فقد أدخلت حالة (state)، فلا بد من إعادة حساب توقعات الأداء
  • راقب ثلاثة مؤشرات: حالة الـ Pool، ومعدل نقل الخادم الافتراضي، والحالة الصحية للعقد
  • أوامر استكشاف الأخطاء: الأمر tmsh show ltm pool <pool-name> لعرض حالة الـ Pool، والأمر tmsh show ltm virtual <vs-name> لعرض حالة الخادم الافتراضي
موازنة الأحمال في الطبقة الرابعة والسابعة

في الختام

تبدو موازنة الأحمال مجرد «جهاز إعادة توجيه»، لكنها في الواقع تقف في أخطر موقع في البنية كلها — فكل حركة البيانات تمر عبرها. إذا أُعدَّت جيداً لن يشعر المستخدم بوجودها؛ وإذا أُعدَّت بشكل سيئ سيتصل بك الهاتف في منتصف الليل.

في ظل موجة الحوسبة السحابية الأصلية اليوم، تكفي الحلول البرمجية مثل LVS وNginx وHAProxy تماماً في السيناريوهات الصغيرة والمتوسطة، وميزة التكلفة واضحة. لكن في المداخل الحيوية للقطاع المالي والأوراق المالية والتجارة الإلكترونية الكبرى، ما زالت قيمة موازنة الأحمال العتادية في الاستقرار والتبديل بمستوى الملّيثانية والقدرات الأمنية المتكاملة يصعب استبدالها على المدى القريب.

أما اسم «F5» فإن تحوله من اسم شركة إلى اسم فئة يشرح الأمر بذاته — فحين يُستخدم منتج ما كفعل، يكون قد انتصر في هذا السوق.

الطبقة الرابعة تقرأ لوحة الطريق، والسابعة تفتح الطرد؛ للأداء اختر الرابعة، وللميزات اختر السابعة.

مراجع: المواد الرسمية لـ F5 BIG-IP LTM، وحالة موازنة أحمال F5 في مجلة «إدارة وتشغيل الشبكات»، ومقارنة تقنيات موازنة الأحمال بين الطبقة الرابعة/السابعة