مرحبًا Zen Masters ، تقدم هذه المقالة كيفية إنشاء مزرعة L4 (طبقة 4) وتكوينها ، وعدد من الوصلات الخلفية (خوادم الويب) وصي المزرعة من خلال Zen Load Balancer API (ZAPI).
الملف الشخصي L4xNAT
يتيح لك ملف تعريف مزرعة L4xNAT إنشاء مزرعة L4 ذات أداء عالٍ للغاية واتصالات متزامنة أكثر بكثير من نوى موازن التحميل في الطبقة 7 مثل ملفات تعريف TCP أو UDP أو HTTP. تلك الطبقة لتحسين أداء 4 تعوق معالجة المحتوى المتقدمة التي يمكن أن تديرها ملفات تخصيص طبقة 7.
بالإضافة إلى ذلك ، يمكن لمزارع L4xNAT ربط مجموعة من المنافذ ، وليس منفذًا افتراضيًا واحدًا فقط كما هو مستخدم مع ملفات تعريف الطبقة 7 الأخرى. لكي تتمكن من تحديد مجموعة من المنافذ الافتراضية أو منفذ افتراضي معين في مزارع L4xNAT ، من الضروري تحديد نوع البروتوكول. في حالة أخرى ، ستستمع المزرعة إلى جميع المنافذ من IP الظاهري.
تهيئة ZAPI
كما ناقشنا في المقالة الأخيرة ، يجب تمكين مستخدم zapi وتعيين مفتاح وكلمة مرور لبدء استخدام ZAPI لدينا.
بالنسبة إلى الأمثلة التالية ، سيتم استخدام هذه المعلمات:
Key: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5 Password: admin Zen Load Balancer IP: 192.168.101.25 Zen Web Port: 444
بمجرد تكوين ZAPI ... فلنبدأ!
كيفية إنشاء مزرعة L4xNAT مع ZAPI
في المقام الأول ، يجب عليك إنشاء مزرعة ملف تعريف L4xNAT باستخدام الأمر المقابل:
curl --tlsv1 -k -X POST -H 'Content-Type: 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: واجهة ، وكبار الشخصيات وملف التعريف (vport ليس ضروريًا في ملف تعريف L4xNAT).
معلمات URI: اسم المزرعة -> L4FARM ، هذا هو الاسم المحدد للمزرعة.
بمجرد إطلاق هذا الأمر ، سيتم عرض الرد التالي:
{ "description" : "New farm L4FARM", "params" : [ { "interface" : "eth0", "name" : "L4FARM", "profile" : "L4xNAT", "vip" : "192.168.101.25", "vport" : 0 } ] }
يظهر هذا الرد المعلمات المزرعة الرئيسية. ماذا vport: 0 يعني؟ عند إنشاء مزرعة L4xNAT ، يتم الاستماع على جميع المنافذ من IP الظاهري بشكل افتراضي وسيظهر ذلك على شكل 0 أو *.
كيفية تكوين مزرعة L4xNAT مع ZAPI
بمجرد إنشاء مزرعة L4xNAT ، ستتمكن من تعديل معلمات المزرعة. من الممكن تغيير جميع المعلمات ، قليلة أو واحدة فقط.
أولاً ، لنحصل على معلمات المزرعة مع طلب GET:
curl --tlsv1 -k -X GET -H 'Content-Type: 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: اسم المزرعة -> L4FARM.
بمجرد إطلاق هذا الأمر ، سيتم عرض الرد التالي:
{ "backends" : [], "description" : "List farm 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 'Content-Type: 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: اسم المزرعة -> L4FARM.
بمجرد إطلاق هذا الأمر ، سيتم عرض الرد التالي:
{ "description" : "Modify farm L4FARM", "params" : [ { "protocol" : "tcp" }, { "port" : "80" }, { "nattype" : "nat" } ] }
إذا أطلقنا طلب GET آخر ، فستظهر الاستجابة جميع المعلمات بالتغييرات الجديدة:
{ "backends" : [], "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 } ] }
لقد تغيرت المعلمات nattype والمنفذ والبروتوكول بنجاح!
كيفية إنشاء وتعديل الخلفية
كيف يمكننا إنشاء وتكوين خلفية لمزرعة L4xNAT من خلال ZAPI؟ عليك فقط اتباع نفس الخطوات أعلاه باستخدام عدة أوامر مع حليقة:
curl --tlsv1 -k -X POST -H 'Content-Type: 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: اسم المزرعة -> L4FARM ، هذا هو الاسم المحدد للمزرعة.
بمجرد إطلاق هذا الأمر ، سيتم عرض الرد التالي:
{ "description" : "New backend 0", "params" : [ { "id" : 0, "ip" : "46.120.34.160", "port" : 80, "priority" : 1, "weight" : 1 } ] }
يوضح هذا الرد المعلمات الخلفية ومعرفها.
كيف يمكننا تعديل خلفية مزرعة L4xNAT؟ باستخدام الفعل PUT HTTP مع حليقة:
curl --tlsv1 -k -X PUT -H 'Content-Type: text/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. الميناء ، الأولوية والوزن.
معلمات URI:
اسم المزرعة -> L4FARM.
معرف الخلفية -> 0.
بمجرد إطلاق هذا الأمر ، سيتم عرض الرد التالي:
{ "description" : "Modify backend 0 in farm L4FARM", "params" : [ { "ip" : "46.120.101.65" }, { "weight" : "3" }, { "priority" : "2" }, { "port" : "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 'Content-Type: text/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: اسم المزرعة -> L4FARM.
بمجرد إطلاق هذا الأمر ، سيتم عرض الرد التالي:
{ "description" : "Modify farm L4FARM", "params" : [ { "fglog" : "false" }, { "fgenabled" : "true" }, { "fgscript" : "check_tcp -w 10 -c 10 -H HOST -p PORT" }, { "fgtimecheck" : "15" } ] }
ماذا تفعل هذه البارامترات؟ تمكّن المعلمة "fgenabled" وصي المزرعة ، ومعلمة "fgtimecheck" هي الوقت بين عمليات التحقق (بالثواني) ، وتمكين "fglog" سجلات وصي المزرعة و "fgscript" هو الأمر الذي يجب التحقق منه.
نيابة عن Zen Team ، نأمل حقًا أنك استمتعت بهذا المقال. نراكم في القادم!