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



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

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

قبل متابعة الإعداد ، أود أن أذكر باختصار الأنواع الرئيسية للموازنة.

نظرية


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

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

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

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

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

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

إليك كيف تسير الأمور:

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

مخطط أدناه.



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

الآلية هي كما يلي:

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

مخطط أدناه.



ممارسة


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

لنبدأ.

توليد شهادة SSL التي ستستخدم NSX Edge


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

  1. في واجهة vCloud Director ، انتقل إلى إعدادات خدمات Edge.

  2. انتقل إلى علامة التبويب الشهادات. من قائمة الإجراءات ، حدد إضافة CSR جديدة.

  3. املأ الحقول المطلوبة وانقر فوق الاحتفاظ.

  4. حدد CSR المنشأ حديثًا وحدد خيار CSR للتوقيع الذاتي.

  5. حدد فترة صلاحية الشهادة وانقر فوق الاحتفاظ

  6. ظهرت شهادة موقعة ذاتيا في قائمة المتاحة.


تكوين ملف تعريف التطبيق


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

  1. انتقل إلى علامة التبويب Load Balancer وتشغيل الموازن. يسمح خيار التسريع هنا للموازن باستخدام موازنة L4 أسرع بدلاً من L7.

  2. انتقل إلى علامة تبويب ملف تعريف التطبيق لتعيين ملف تعريف التطبيق. انقر فوق +.

  3. قم بتعيين اسم ملف التعريف وحدد نوع حركة المرور التي سيتم تطبيق ملف التعريف عليها. ساوضح بعض المعلمات.

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

    تمكين عبور طبقة المقابس الآمنة - عند تحديد هذا الخيار ، يتوقف NSX Edge عن إنهاء طبقة المقابس الآمنة. بدلاً من ذلك ، يحدث الإنهاء مباشرة على الخوادم التي يتم إجراء موازنة لها.

    إدراج رأس X-Forwarded-For HTTP - يسمح لك بتحديد عنوان IP المصدر للعميل المتصل بخادم الويب من خلال الموازن.

    تمكين Pool Side SSL - يسمح لك بتحديد أن التجمع المختار يتكون من خوادم HTTPS.

  4. نظرًا لأنني سأوازن حركة مرور HTTPS ، فأنا بحاجة إلى تمكين Pool Side SSL وتحديد الشهادة التي تم إنشاؤها مسبقًا في علامة تبويب شهادات الخادم الظاهري -> شهادة الخدمة.

  5. وبالمثل لشهادات تجمع -> شهادة الخدمة.


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


  1. انتقل إلى علامة التبويب تجمعات. انقر فوق +.

  2. عيّن اسم التجمع ، وحدد الخوارزمية (سأستخدم robin round) ونوع المراقبة للتحقق من صحة الواجهة الخلفية. يشير الخيار Transparent إلى ما إذا كانت عملاء IP المصدر الأولي مرئية للخوادم الداخلية.

    • إذا تم تعطيل هذا الخيار ، فإن حركة المرور للخوادم الداخلية تأتي من مصدر IP للموازن.
    • إذا تم تمكين هذا الخيار ، ترى الخوادم الداخلية عملاء IP المصدر. في هذا التكوين ، يجب أن تعمل NSX Edge كبوابة افتراضية لضمان مرور الحزم التي تم إرجاعها عبر NSX Edge.

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

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

  3. في كتلة الأعضاء ، انقر فوق + لإضافة خوادم إلى التجمع.



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

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



    هذا هو الشكل النهائي للمجموعة المكونة من ثلاثة خوادم.


إضافة خادم الظاهري


  1. انتقل إلى علامة التبويب الخوادم الافتراضية. انقر فوق +.

  2. نقوم بتنشيط الخادم الظاهري باستخدام تمكين الخادم الظاهري.

    نعطيها اسمًا ، وحدد "ملف تعريف التطبيق" الذي تم إنشاؤه مسبقًا ، "التجمع" وحدد عنوان IP الذي سيقبله "الملقم الظاهري" الطلبات من الخارج. حدد بروتوكول HTTPS والمنفذ 443.
    المعلمات الاختيارية هنا:

    حد الاتصال - الحد الأقصى لعدد الاتصالات المتزامنة التي يمكن أن يتعامل معها الخادم الظاهري ؛
    حد معدل الاتصال (CPS) - الحد الأقصى لعدد الطلبات الواردة الجديدة في الثانية.



هذا يكمل التكوين الموازن ، يمكنك التحقق من أدائها. خوادم لديها أبسط التكوين ، والذي يسمح لك لفهم أي خادم من التجمع معالجة الطلب. أثناء الإعداد ، اخترنا خوارزمية موازنة Round Robin ، ومعلمة Weight لكل خادم تساوي واحدة ، لذلك سيتم معالجة كل طلب تالي بواسطة الخادم التالي من التجمع.

أدخل العنوان الخارجي للموازن في المتصفح وانظر:



بعد تحديث الصفحة ، سيتم معالجة الطلب بواسطة الخادم التالي:



ومرة أخرى - للتحقق من الخادم الثالث من البركة:



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

تحقق من حالة الموازن من وحدة التحكم في بوابة Edge. للقيام بذلك ، أدخل إظهار خدمة loadbalancer pool .



تكوين مراقب الخدمة للتحقق من حالة الخوادم في التجمع


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

بشكل افتراضي ، يتم تكوين ثلاث طرق تحقق:

  • مراقب TCP
  • رصد HTTP
  • HTTPS رصد.

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

  1. انتقل إلى علامة تبويب Service Service (مراقبة الخدمة) ، انقر فوق +.

  2. اختيار:

    • اسم للطريقة الجديدة ؛
    • الفاصل الزمني الذي سيتم فيه إرسال الطلبات ،
    • مهلة الاستجابة
    • نوع المراقبة هو طلب HTTPS باستخدام طريقة GET ، كود الحالة المتوقع هو 200 (OK) وعنوان URL للطلب.
  3. هذا يكمل تكوين مراقب الخدمة الجديد ، والآن يمكننا استخدامه عند إنشاء تجمع.


تكوين قواعد التطبيق


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

  1. لإنشاء قاعدة ، انتقل إلى علامة تبويب قواعد التطبيق الخاصة بالموازن.

  2. اختر اسمًا ونصًا سيستخدم القاعدة ، ثم انقر فوق الاحتفاظ.

  3. بعد إنشاء القاعدة ، نحتاج إلى تعديل الخادم الظاهري الذي تم تكوينه بالفعل.

  4. في علامة التبويب خيارات متقدمة ، أضف القاعدة التي أنشأناها.



في المثال أعلاه ، قمنا بتضمين دعم 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 

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

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

Source: https://habr.com/ru/post/ar448540/


All Articles