كيفية إنشاء وتكوين مزرعة L4xNAT باستخدام ZAPI v1

16 أكتوبر 2015 | خدمات

مرحباً بكم أيها الأساتذة Zen، تقدم هذه المقالة كيفية إنشاء وتكوين مزرعة L4 (الطبقة 4)، وعدد من الخوادم الخلفية (خوادم الويب) وحارس المزرعة من خلال واجهة برمجة تطبيقات Zen Load Balancer (ZAPI).

ملف تعريف L4xNAT
يتيح لك ملف تعريف مزرعة L4xNAT إنشاء مزرعة L4 بأداء عالٍ جدًا واتصالات متزامنة أكثر بكثير من نوى موازن الأحمال في الطبقة 7، مثل ملفات تعريف مزرعة TCP أو UDP أو HTTP. يُعيق هذا التحسين في أداء الطبقة 4 التعامل المتقدم مع المحتوى الذي تُديره ملفات تعريف الطبقة 7.

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

تهيئة ZAPI
كما ناقشنا في المقال السابق، يجب عليك تمكين مستخدم Zapi وتعيين مفتاح وكلمة مرور لبدء استخدام ZAPI الخاص بنا.
بالنسبة للأمثلة التالية، سيتم استخدام المعلمات التالية:

المفتاح: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5 كلمة المرور: admin عنوان IP لموازن تحميل Zen: 192.168.101.25 منفذ ويب Zen: 444

بمجرد تكوين ZAPI… فلنبدأ!

كيفية إنشاء مزرعة L4xNAT باستخدام ZAPI
في المقام الأول، يجب عليك إنشاء مزرعة ملف تعريف L4xNAT باستخدام الأمر المقابل:

curl --tlsv1 -k -X POST -H 'نوع المحتوى: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"interface":"eth0","vip":"192.168.101.25","profile":"L4xNAT"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM

الفعل HTTP: POST، يستخدم لإنشاء المزارع والواجهات الخلفية والخدمات...
معلمات JSON: الواجهة وvip والملف الشخصي (vport ليس ضروريًا في ملف تعريف L4xNAT).
معلمات URI: farmname -> L4FARM، هذا هو الاسم المحدد للمزرعة.

بمجرد تشغيل هذا الأمر، سيتم عرض الاستجابة التالية:

{ "الوصف" : "مزرعة جديدة L4FARM"، "المعلمات" : [ { "الواجهة" : "eth0"، "الاسم" : "L4FARM"، "الملف الشخصي" : "L4xNAT"، "vip" : "192.168.101.25"، "vport" : 0 } ] }

تُظهر هذه الاستجابة معلمات المزرعة الرئيسية. ماذا يعني vport: 0؟ عند إنشاء مزرعة L4xNAT، تُنصت افتراضيًا على جميع المنافذ من عنوان IP الافتراضي، وسيظهر ذلك بالقيمة 0 أو *.

كيفية تكوين مزرعة L4xNAT باستخدام ZAPI

بمجرد إنشاء مزرعة L4xNAT، ستتمكن من تعديل معلماتها. يمكنك تغيير جميع المعلمات، أو بعضها، أو معلمة واحدة فقط.
أولاً، دعنا نحصل على معلمات المزرعة باستخدام طلب GET:

curl --tlsv1 -k -X GET -H 'نوع المحتوى: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM

فعل HTTP: GET، يستخدم للحصول على معلمات المزارع والخلفيات والخدمات...
معلمات JSON: لا شيء.
معلمات URI: farmname -> L4FARM.

بمجرد تشغيل هذا الأمر، سيتم عرض الاستجابة التالية:

{ "backends" : [], "description" : "قائمة المزرعة L4FARM", "params" : [ { "algorithm" : "weight", "fgenabled" : null, "fglog" : null, "fgscript" : null, "fgtimecheck" : 0, "nattype" : "dnat", "persistence" : "none", "protocol" : "all", "ttl" : 120, "vip" : "192.168.101.25", "vport" : 0 } ] }

تُظهر هذه الاستجابة معلمات المزرعة المتقدمة. يمكن تعديل هذه المعلمات باستخدام ZAPI. لنُغيّر بعض المعلمات:

curl --tlsv1 -k -X PUT -H 'نوع المحتوى: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"protocol":"tcp","nattype":"nat" ,"port":"80"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM

الفعل HTTP: PUT، يستخدم لتعديل معلمات المزارع والخلفيات والخدمات...
معلمات JSON: البروتوكول، والنوع الطبيعي، والمنفذ.
معلمات URI: farmname -> L4FARM.

بمجرد تشغيل هذا الأمر، سيتم عرض الاستجابة التالية:

{ "الوصف" : "تعديل المزرعة L4FARM"، "المعلمات" : [ { "البروتوكول" : "tcp" }، { "المنفذ" : "80" }، { "nattype" : "nat" } ] }

إذا أطلقنا طلب GET آخر، فستعرض الاستجابة جميع المعلمات مع التغييرات الجديدة:

{ "backends" : [], "description" : "قائمة المزرعة L4FARM", "params" : [ { "algorithm" : "weight", "fgenabled" : null, "fglog" : null, "fgscript" : null, "fgtimecheck" : 0, "nattype" : "nat", "persistence" : "none", "protocol" : "tcp", "ttl" : 120, "vip" : "192.168.101.25", "vport" : 80 } ] }

تم تغيير معلمات nattype وport وprotocol بنجاح!

كيفية إنشاء وتعديل الواجهة الخلفية
كيف يُمكننا إنشاء وتكوين واجهة خلفية لمزرعة L4xNAT عبر ZAPI؟ ما عليك سوى اتباع نفس الخطوات المذكورة أعلاه باستخدام عدة أوامر باستخدام curl:

curl --tlsv1 -k -X POST -H 'نوع المحتوى: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"ip":"46.120.34.160","port":"80","priority":"1","weight":"1"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM/backends

الفعل HTTP: POST، يستخدم لإنشاء المزارع والواجهات الخلفية والخدمات...
معلمات JSON: ip، والمنفذ، والأولوية، والوزن (كل المعلمات مطلوبة).
معلمات URI: farmname -> L4FARM، هذا هو الاسم المحدد للمزرعة.

بمجرد تشغيل هذا الأمر، سيتم عرض الاستجابة التالية:

{ "الوصف" : "الواجهة الخلفية الجديدة 0"، "المعلمات" : [ { "المعرف" : 0، "عنوان IP" : "46.120.34.160"، "المنفذ" : 80، "الأولوية" : 1، "الوزن" : 1 } ] }

تُظهر هذه الاستجابة معلمات الواجهة الخلفية ومعرفها.
كيف يُمكننا تعديل واجهة خلفية لمزرعة L4xNAT؟ باستخدام أمر PUT HTTP مع curl:

curl --tlsv1 -k -X PUT -H 'نوع المحتوى: نص/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"ip":"46.120.101.65","port":"25","priority":"2","weight":"3"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM/backends/0

الفعل HTTP: PUT، يستخدم لتعديل معلمات المزارع والخلفيات والخدمات...
معلمات JSON: ip.port، والأولوية والوزن.
معلمات URI:
اسم المزرعة -> L4FARM.
معرف الواجهة الخلفية -> 0.

بمجرد تشغيل هذا الأمر، سيتم عرض الاستجابة التالية:

{ "الوصف" : "تعديل الواجهة الخلفية 0 في المزرعة L4FARM"، "المعلمات" : [ { "عنوان IP" : "46.120.101.65" }، { "الوزن" : "3" }، { "الأولوية" : "2" }، { "المنفذ" : "25" } ] }

إذا أطلقنا طلب GET آخر، فستعرض الاستجابة جميع المعلمات مع التغييرات الجديدة:

{ "backends" : [ { "id" : 0, "ip" : "46.120.101.65", "port" : 25, "priority" : 2, "weight" : 3 } ], "description" : "List farm L4FARM", "params" : [ { "algorithm" : "weight", "fgenabled" : null, "fglog" : null, "fgscript" : null, "fgtimecheck" : 0, "nattype" : "nat", "persistence" : "none", "protocol" : "tcp", "ttl" : 120, "vip" : "192.168.101.25", "vport" : 80 } ] }

لقد تم تغيير معلمات الوزن والأولوية والمنفذ بنجاح!

كيفية تكوين حارس المزرعة
للإغلاق، لنُهيئ خادم مزرعة L4xNAT. علينا استخدام الطلب التالي مع curl:

curl --tlsv1 -k -X PUT -H 'نوع المحتوى: نص/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"fgenabled":"true","fgscript":"check_tcp -w 10 -c 10 -H HOST -p PORT","fgtimecheck":"15","fglog":"false"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM/fg

الفعل HTTP: PUT، يستخدم لتعديل معلمات المزارع والخلفيات والخدمات...
معلمات JSON: fgenabled، وfgscript، وfgtimecheck، وfglog.
معلمات URI: farmname -> L4FARM.

بمجرد تشغيل هذا الأمر، سيتم عرض الاستجابة التالية:

{ "الوصف" : "تعديل المزرعة L4FARM"، "المعلمات" : [ { "fglog" : "خطأ" }، { "fgenabled" : "صحيح" }، { "fgscript" : "check_tcp -w 10 -c 10 -H HOST -p PORT" }، { "fgtimecheck" : "15" } ] }

ماذا تفعل هذه المعلمات؟ تعمل المعلمة 'fgenabled' على تمكين حارس المزرعة، والمعلمة 'fgtimecheck' هي الوقت بين الفحوصات (بالثواني)، وتعمل 'fglog' على تمكين سجلات حارس المزرعة، و'fgscript' هو الأمر الذي يتم التحقق منه.

بالنيابة عن فريق زين، نأمل أن تكونوا قد استمتعتم بهذه المقالة. نراكم في مقالات قادمة!

مصطلحات البحث
, , ,

مدونات ذات صلة

نُشر بواسطة reluser | 13 أغسطس 2025
يوليو 2025 – أصدرت شركة Microsoft تنبيهًا أمنيًا عاجلاً بشأن الاستغلال النشط لأربع ثغرات أمنية تؤثر على خوادم SharePoint المحلية: CVE-2025-49706 – انتحال الهوية CVE-2025-49704 – تنفيذ التعليمات البرمجية عن بُعد CVE-2025-53770 –…
1.61 ألف إعجابالتعليقات مغلقة حول الثغرات الأمنية الجديدة في SharePoint: كيف RELIANOID يساعدك على البقاء محميًا
أرسلت بواسطة reluser | 22 يناير 2025
يجب على مستخدمي Ubuntu 22.04 LTS التصرف فورًا لتأمين أنظمتهم بعد أن أصدرت Canonical تصحيحًا أمنيًا بالغ الأهمية لمعالجة العديد من الثغرات الأمنية داخل نواة Linux لمعالجات Xilinx ZynqMP.…
1.24 ألف إعجابالتعليقات مغلقة حول الثغرات الأمنية التي تم اكتشافها مؤخرًا في نواة Linux
أرسلت بواسطة reluser | 03 يناير 2025
في مشهد الأمن السيبراني سريع التطور اليوم، يعد ضمان السماح بتشغيل البرامج الموثوقة فقط في البنية التحتية لتكنولوجيا المعلومات أمرًا بالغ الأهمية. إحدى الآليات الأساسية لتحقيق ذلك على مستوى الأجهزة...
1.24 ألف إعجابالتعليقات مغلقة حول تعزيز أمان البنية التحتية من خلال تنفيذ موازنات التحميل مع التمهيد الآمن