برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل

برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل

الجزء الأول. استهلالي
الجزء الثاني. تكوين جدار الحماية وقواعد NAT
الجزء الثالث. تكوين DHCP
الجزء الرابع. إعداد التوجيه

تحدثنا في المرة السابقة عن إمكانيات NSX Edge من حيث التوجيه الثابت والديناميكي، واليوم سنتعامل مع موازن التحميل.
قبل أن نبدأ في الإعداد، أود أن أذكرك بإيجاز بالأنواع الرئيسية للموازنة.

نظرية

غالبًا ما يتم تقسيم جميع حلول موازنة الحمولة الصافية اليوم إلى فئتين: الموازنة عند المستوى الرابع (النقل) والسابع (التطبيق) من النموذج OSI. لا يعد نموذج OSI أفضل نقطة مرجعية عند وصف طرق الموازنة. على سبيل المثال، إذا كان موازن L4 يدعم أيضًا إنهاء TLS، فهل يصبح موازن L7؟ لكن هذا ما هو عليه.

  • الموازن L4 غالبًا ما يكون وكيلًا متوسطًا يقف بين العميل ومجموعة من الواجهات الخلفية المتاحة، والذي ينهي اتصالات TCP (أي يستجيب بشكل مستقل لـ SYN)، ويختار الواجهة الخلفية ويبدأ جلسة TCP جديدة في اتجاهه، ويرسل SYN بشكل مستقل. هذا النوع هو أحد الأنواع الأساسية، وهناك خيارات أخرى ممكنة.
  • الموازن L7 يوزع حركة المرور عبر الواجهات الخلفية المتاحة "أكثر تعقيدًا" مما يفعله موازن L4. ويمكنه تحديد الواجهة الخلفية التي سيتم اختيارها بناءً على، على سبيل المثال، محتويات رسالة HTTP (عنوان URL، ملف تعريف الارتباط، وما إلى ذلك).

بغض النظر عن النوع، يمكن للموازن أن يدعم الوظائف التالية:

  • اكتشاف الخدمة هو عملية تحديد مجموعة الواجهات الخلفية المتاحة (Static، DNS، Consul، Etcd، إلخ).
  • التحقق من وظائف الواجهات الخلفية المكتشفة ("ping" النشط للواجهة الخلفية باستخدام طلب HTTP، والكشف السلبي عن المشكلات في اتصالات TCP، ووجود عدة رموز HTTP 503 في الاستجابات، وما إلى ذلك).
  • الموازنة نفسها (جولة روبن، اختيار عشوائي، تجزئة IP المصدر، URI).
  • إنهاء TLS والتحقق من الشهادة.
  • الخيارات المتعلقة بالأمان (المصادقة، ومنع هجمات DoS، وتحديد السرعة) وغير ذلك الكثير.

يوفر NSX Edge الدعم لوضعين لنشر موازن التحميل:

وضع الوكيل، أو ذراع واحدة. في هذا الوضع، يستخدم NSX Edge عنوان IP الخاص به كعنوان المصدر عند إرسال طلب إلى إحدى الواجهات الخلفية. وبالتالي، يؤدي الموازن وظائف المصدر والوجهة NAT في نفس الوقت. ترى الواجهة الخلفية كل حركة المرور مرسلة من الموازن وتستجيب لها مباشرة. في مثل هذا المخطط، يجب أن يكون الموازن في نفس مقطع الشبكة مع الخوادم الداخلية.

إليك كيف ستسير الأمور:
1. يرسل المستخدم طلبًا إلى عنوان VIP (عنوان الموازن) الذي تم تكوينه على Edge.
2. تقوم Edge بتحديد إحدى الواجهات الخلفية وتنفيذ الوجهة NAT، واستبدال عنوان VIP بعنوان الواجهة الخلفية المحددة.
3. تقوم Edge بتنفيذ NAT المصدر، واستبدال عنوان المستخدم الذي أرسل الطلب بعنوانه الخاص.
4. يتم إرسال الحزمة إلى الواجهة الخلفية المحددة.
5. الواجهة الخلفية لا تستجيب مباشرة للمستخدم، بل لـ Edge، حيث تم تغيير العنوان الأصلي للمستخدم إلى عنوان الموازن.
6. ينقل Edge استجابة الخادم إلى المستخدم.
الرسم البياني أدناه.
برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل

الوضع الشفاف أو المضمن. في هذا السيناريو، يكون للموازن واجهات على الشبكات الداخلية والخارجية. وفي الوقت نفسه، لا يوجد وصول مباشر إلى الشبكة الداخلية من الشبكة الخارجية. يعمل موازن التحميل المدمج كبوابة NAT للأجهزة الافتراضية على الشبكة الداخلية.

الآلية هي كما يلي:
1. يرسل المستخدم طلبًا إلى عنوان VIP (عنوان الموازن) الذي تم تكوينه على Edge.
2. تقوم Edge بتحديد إحدى الواجهات الخلفية وتنفيذ الوجهة NAT، واستبدال عنوان VIP بعنوان الواجهة الخلفية المحددة.
3. يتم إرسال الحزمة إلى الواجهة الخلفية المحددة.
4. تتلقى الواجهة الخلفية طلبًا بالعنوان الأصلي للمستخدم (لم يتم تنفيذ NAT المصدر) وتستجيب له مباشرةً.
5. يتم قبول حركة المرور مرة أخرى بواسطة موازن التحميل، حيث إنها تعمل عادةً في النظام المضمّن كبوابة افتراضية لمزرعة الخوادم.
6. يقوم Edge بتنفيذ NAT المصدر لإرسال حركة المرور إلى المستخدم، باستخدام VIP الخاص به كعنوان IP المصدر.
الرسم البياني أدناه.
برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل

ممارسة

يحتوي مقعد الاختبار الخاص بي على 3 خوادم تعمل بنظام Apache، والتي تم تكوينها للعمل عبر HTTPS. ستقوم Edge بإجراء موازنة دائرية لطلبات HTTPS، وتفويض كل طلب جديد إلى خادم جديد.
هيا بنا نبدأ.

إنشاء شهادة SSL سيتم استخدامها بواسطة NSX Edge
يمكنك استيراد شهادة CA صالحة أو استخدام شهادة موقعة ذاتيًا. في هذا الاختبار سأستخدم التوقيع الذاتي.

  1. في واجهة vCloud Director، انتقل إلى إعدادات خدمات Edge.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل
  2. انتقل إلى علامة التبويب الشهادات. من قائمة الإجراءات، حدد إضافة مسؤول خدمة عملاء جديد.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل
  3. املأ الحقول المطلوبة وانقر فوق "احتفاظ".
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل
  4. حدد CSR الذي تم إنشاؤه حديثًا وحدد خيار التوقيع الذاتي CSR.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل
  5. حدد فترة صلاحية الشهادة، ثم انقر فوق "احتفاظ".
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل
  6. تظهر الشهادة الموقعة ذاتيًا في قائمة الشهادات المتوفرة.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل

إعداد ملف تعريف التطبيق
تمنحك ملفات تعريف التطبيقات تحكمًا كاملاً في حركة مرور الشبكة وتجعل إدارتها بسيطة وفعالة. ويمكن استخدامها لتحديد السلوك لأنواع معينة من حركة المرور.

  1. انتقل إلى علامة التبويب Load Balancer وقم بتمكين الموازن. يتيح خيار تمكين التسريع هنا للموازن استخدام موازنة L4 أسرع بدلاً من L7.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل
  2. انتقل إلى علامة التبويب ملف تعريف التطبيق لتعيين ملف تعريف التطبيق. انقر فوق +.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل
  3. قم بتعيين اسم ملف التعريف وحدد نوع حركة المرور التي سيتم تطبيق ملف التعريف عليها. اسمحوا لي أن أشرح بعض المعلمات.
    إصرار – يقوم بتخزين وتتبع بيانات الجلسة، على سبيل المثال: أي خادم محدد في المجمع يخدم طلب المستخدم. يضمن ذلك توجيه طلبات المستخدم إلى نفس عضو التجمع طوال مدة الجلسة أو الجلسات اللاحقة.
    تمكين عبور SSL - عند تحديد هذا الخيار، يتوقف NSX Edge عن إنهاء SSL. بدلاً من ذلك، يحدث الإنهاء مباشرةً على الخوادم التي تتم موازنتها.
    أدخل رأس X-Forwarded-For HTTP - يسمح لك بتحديد عنوان IP المصدر للعميل المتصل بخادم الويب من خلال موازن التحميل.
    تمكين SSL بجانب المسبح - يسمح لك بتحديد أن التجمع المحدد يتكون من خوادم HTTPS.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل
  4. نظرًا لأنني سأقوم بموازنة حركة مرور HTTPS، فأنا بحاجة إلى تمكين Pool Side SSL وتحديد الشهادة التي تم إنشاؤها مسبقًا في شهادات الخادم الظاهري -> علامة التبويب شهادة الخدمة.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل
  5. وبالمثل بالنسبة لشهادات المجمع -> شهادة الخدمة.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل

نقوم بإنشاء مجموعة من الخوادم، والتي ستكون حركة المرور إليها مجمعات متوازنة

  1. انتقل إلى علامة التبويب حمامات السباحة. انقر فوق +.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل
  2. قمنا بتعيين اسم التجمع، وحدد الخوارزمية (سأستخدم round robin) ونوع المراقبة للواجهة الخلفية للتحقق من الصحة. ويشير الخيار الشفاف إلى ما إذا كانت عناوين IP المصدرية الأولية للعملاء مرئية للخوادم الداخلية.
    • إذا تم تعطيل الخيار، فإن حركة المرور للخوادم الداخلية تأتي من عنوان IP المصدر للموازن.
    • إذا تم تمكين الخيار، فسترى الخوادم الداخلية عنوان IP المصدر للعملاء. في هذا التكوين، يجب أن يعمل NSX Edge كبوابة افتراضية لضمان مرور الحزم المرتجعة عبر NSX Edge.

    يدعم NSX خوارزميات التوازن التالية:

    • IP_HASH – اختيار الخادم بناءً على نتائج دالة التجزئة لعنوان IP المصدر والوجهة لكل حزمة.
    • ليستكون - موازنة الاتصالات الواردة، اعتمادًا على العدد المتاح بالفعل على خادم معين. سيتم توجيه الاتصالات الجديدة إلى الخادم بأقل عدد من الاتصالات.
    • ROUND_ROBIN – يتم إرسال الاتصالات الجديدة إلى كل خادم تباعاً، وفقاً للوزن المخصص له.
    • URI – تتم تجزئة الجزء الأيسر من URI (قبل علامة الاستفهام) وتقسيمه على إجمالي وزن الخوادم في المجموعة. تشير النتيجة إلى الخادم الذي يتلقى الطلب، مما يضمن توجيه الطلب دائمًا إلى نفس الخادم، طالما ظلت جميع الخوادم متاحة.
    • HTTPHEADER - الموازنة بناءً على رأس HTTP محدد، والذي يمكن تحديده كمعلمة. إذا كان الرأس مفقودًا أو ليس له أي قيمة، فسيتم تطبيق خوارزمية ROUND_ROBIN.
    • URL - يبحث كل طلب HTTP GET عن معلمة URL المحددة كوسيطة. إذا كانت المعلمة متبوعة بعلامة يساوي وقيمة، فسيتم تجزئة القيمة وتقسيمها على الوزن الإجمالي للخوادم قيد التشغيل. تشير النتيجة إلى الخادم الذي يتلقى الطلب. يتم استخدام هذه العملية لتتبع معرفات المستخدمين في الطلبات والتأكد من إرسال معرف المستخدم نفسه دائمًا إلى نفس الخادم، طالما ظلت جميع الخوادم متاحة.

    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل

  3. في كتلة الأعضاء، انقر فوق + لإضافة خوادم إلى التجمع.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل

    هنا تحتاج إلى تحديد:

    • اسم الخادم؛
    • عنوان IP الخاص بالخادم؛
    • المنفذ الذي سيتلقى الخادم حركة المرور عليه؛
    • منفذ للفحص الصحي (مراقبة الصحة)؛
    • الوزن - باستخدام هذه المعلمة، يمكنك ضبط المقدار المتناسب من حركة المرور المستلمة لعضو معين في المجمع؛
    • الحد الأقصى للاتصالات - الحد الأقصى لعدد الاتصالات بالخادم؛
    • الحد الأدنى من الاتصالات – الحد الأدنى لعدد الاتصالات التي يجب على الخادم معالجتها قبل إعادة توجيه حركة المرور إلى عضو التجمع التالي.

    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل

    هذا هو الشكل الذي تبدو عليه المجموعة النهائية المكونة من ثلاثة خوادم.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل

إضافة خادم افتراضي

  1. انتقل إلى علامة التبويب الخوادم الافتراضية. انقر فوق +.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل
  2. نقوم بتنشيط الخادم الظاهري باستخدام Enable Virtual Server.
    نعطيه اسمًا، ونحدد ملف تعريف التطبيق الذي تم إنشاؤه مسبقًا، والمجمع ونشير إلى عنوان IP الذي سيتلقى الخادم الظاهري الطلبات من الخارج عليه. نحدد بروتوكول HTTPS والمنفذ 443.
    المعلمات الاختيارية هنا:
    حد الاتصال - الحد الأقصى لعدد الاتصالات المتزامنة التي يمكن للخادم الظاهري معالجتها؛
    حد معدل الاتصال (CPS) - الحد الأقصى لعدد الطلبات الواردة الجديدة في الثانية.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل

وبذلك يكتمل تكوين الموازن، ويمكنك التحقق من وظائفه. تحتوي الخوادم على تكوين بسيط يسمح لك بمعرفة أي خادم من المجموعة قام بمعالجة الطلب. أثناء الإعداد، اخترنا خوارزمية موازنة Round Robin، ومعلمة الوزن لكل خادم تساوي واحدًا، لذلك ستتم معالجة كل طلب لاحق بواسطة الخادم التالي من المجموعة.
ندخل العنوان الخارجي للموازن في المتصفح ونرى:
برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل

بعد تحديث الصفحة، ستتم معالجة الطلب عن طريق الخادم التالي:
برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل

ومرة أخرى - للتحقق من الخادم الثالث من التجمع:
برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل

عند التحقق، يمكنك أن ترى أن الشهادة التي يرسلها لنا Edge هي نفس الشهادة التي أنشأناها في البداية.

التحقق من حالة الموازن من وحدة تحكم بوابة Edge. للقيام بذلك، أدخل إظهار تجمع Loadbalancer الخدمة.
برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل

تكوين مراقب الخدمة للتحقق من حالة الخوادم في التجمع
باستخدام Service Monitor يمكننا مراقبة حالة الخوادم في تجمع الواجهة الخلفية. إذا لم تكن الاستجابة للطلب كما هو متوقع، فيمكن إخراج الخادم من التجمع حتى لا يتلقى أي طلبات جديدة.
افتراضيًا، يتم تكوين ثلاث طرق للتحقق:

  • مراقب TCP،
  • مراقبة HTTP,
  • مراقبة HTTPS.

دعونا إنشاء واحدة جديدة.

  1. انتقل إلى علامة التبويب مراقبة الخدمة، وانقر فوق +.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل
  2. أختر:
    • اسم الطريقة الجديدة؛
    • الفاصل الزمني الذي سيتم فيه إرسال الطلبات،
    • مهلة انتظار الرد ،
    • نوع المراقبة - طلب HTTPS باستخدام طريقة GET، ورمز الحالة المتوقعة - 200(OK) وعنوان URL للطلب.
  3. وبذلك يكتمل إعداد مراقب الخدمة الجديد؛ والآن يمكننا استخدامه عند إنشاء تجمع.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل

إعداد قواعد التطبيق

قواعد التطبيق هي وسيلة للتعامل مع حركة المرور بناءً على مشغلات معينة. باستخدام هذه الأداة، يمكننا إنشاء قواعد متقدمة لموازنة التحميل قد لا تكون ممكنة من خلال ملفات تعريف التطبيقات أو الخدمات الأخرى المتوفرة على Edge Gateway.

  1. لإنشاء قاعدة، انتقل إلى علامة التبويب "قواعد التطبيق" في الموازن.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل
  2. حدد اسمًا، وبرنامجًا نصيًا سيستخدم القاعدة، ثم انقر فوق Keep.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل
  3. بعد إنشاء القاعدة، نحتاج إلى تحرير الخادم الظاهري الذي تم تكوينه بالفعل.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل
  4. في علامة التبويب خيارات متقدمة، أضف القاعدة التي أنشأناها.
    برنامج VMware NSX للصغار. الجزء 5: تكوين موازن التحميل

في المثال أعلاه قمنا بتمكين دعم tlsv1.

بضعة أمثلة أخرى:

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

acl pool_down nbsrv(PRIMARY_POOL_NAME) eq 0
use_backend SECONDARY_POOL_NAME if PRIMARY_POOL_NAME

إعادة توجيه حركة المرور إلى مورد خارجي.
نقوم هنا بإعادة توجيه حركة المرور إلى موقع الويب الخارجي إذا كان جميع أعضاء المجموعة الرئيسية معطلين.

acl pool_down nbsrv(NAME_OF_POOL) eq 0
redirect location http://www.example.com if pool_down

المزيد من الأمثلة هنا.

هذا كل شيء بالنسبة لي فيما يتعلق بالموازن. اذا كان لديك أي سؤال اسألني وأنا جاهز للإجابة.

المصدر: www.habr.com

إضافة تعليق