نظرة عامة #
بروتوكول نقل الملفات ( FTP ) هو بروتوكول طبقة التطبيق يُستخدم على نطاق واسع لنقل الملفات في بنية العميل والخادم التي تعتمد على طبقات شبكة TCP/IP. يُعدّ FTP بروتوكولًا معقدًا وبسيطًا (لا يدعم الأمان)، حيث يتم التفاوض على المنافذ المستخدمة على مستوى طبقة التطبيق بين العميل والخادم، مما يجعل موازنة الأحمال أو إنشاء قواعد جدار الحماية أمرًا صعبًا بعض الشيء. بالإضافة إلى ذلك، يمكن أن يعمل خادم FTP والعميل في وضع نشط أو وضع سلبي، كما هو موضح أدناه.
بعض الميزات التي توفرها FTP هي: 2 منفذ TCP (20 و21 بشكل افتراضي) يستخدم أحدهما لأوامر التحكم والآخر للبيانات، ودعم آلية المصادقة، وعدم دعم التشفير، ونقل ascii والثنائي، والأوامر الواسعة المتاحة (قائمة الدليل، وتصفح الدليل، وتحميل الملفات، وتنزيل الملفات، وما إلى ذلك) والمرونة المتأصلة في TCP.
TFTP أو Trivial FTP هو نوع مختلف يتميز بنقل الملفات بشكل أسرع وتصميم معماري أبسط يستخدم منفذ UDP واحد فقط (69 افتراضيًا)، ولا يدعم آلية المصادقة أو التشفير، ويتوفر بثلاثة أوضاع نقل (netascii وoctet وmail) وأوامر أساسية فقط مثل تحميل وتنزيل الملفات.
يمكن موازنة تحميل كل من خدمات FTP وTFTP بسهولة باستخدام RELIANOID موازن التحميلواصل القراءة لمعرفة كيفية تحقيق ذلك.
بيئة موازنة تحميل FTP #
السيناريو الذي نريد تحقيقه في هذه المقالة يظهر في الرسم البياني أدناه.
سواء كان هناك تزامن كبير بين المستخدمين ويتطلب توسيع نطاق الخدمة أو كانت خدمة بالغة الأهمية تحتاج إلى أن تكون متاحة بدرجة عالية، فسوف تكون هناك حاجة إلى موازن تحميل خدمة FTP.
تكوين وضع FTP النشط #
يتطلب إعداد بروتوكول نقل الملفات النشط استخدام المنفذين 20 و 21 في الخوادم أو أنظمة الخلفية. توضح الصورة أدناه مسار الاتصال عند نقل البيانات بين العميل وخادم بروتوكول نقل الملفات.
في التسلسل الموضح أعلاه:
1. يطلب العميل إلى الخادم عبر المنفذ 21 أمر.
2. يقر الخادم للعميل.
3. استخدم يبدأ الخادم اتصال البيانات باستخدام منفذ البيانات 20.
4. يقر العميل للخادم عند الانتهاء.
في هذه المرحلة، يتعين علينا إعداد موازن التحميل بين كل من العميل والخادم ثم الاهتمام بتدفقات حركة المرور ومبدئي الاتصالات واتفاقيات المنفذ بين العميل والخادم.
مع RELIANOID موازن التحميل، علينا تحقيق هذا النوع من التكوين من خلال إنشاء ملف تعريف مزرعة LSLB L4xNAT مع المنافذ 20,21 و FTP البروتوكول، كما هو موضح في الصورة أدناه، وأخيرًا قم بتعيين الخوادم الخلفية (ليس من الضروري تعيين المنافذ).
يتعين على العملاء الاتصال بعنوان VIP لمزرعة FTP الجديدة.
ملاحظة: هذا التكوين آمن للاستخدام في كل من وضع العميل/الخادم النشط والوضع السلبي.
تكوين وضع FTP السلبي #
يستخدم إعداد FTP السلبي المنفذ 21 فقط في جانب الخوادم أو الأنظمة الخلفية. توضح الصورة أدناه كيفية تدفق الاتصال عند الحاجة إلى نقل البيانات بين العميل وخادم FTP.
في التسلسل الموضح أعلاه:
1. يطلب العميل إلى الخادم عبر المنفذ 21 أمر.
2. يقر الخادم للعميل.
3. استخدم العميل يبدأ اتصال البيانات باستخدام منفذ بيانات عالي إلى منفذ متفق عليه في طبقة التطبيق في جانب الخادم.
4. يقر الخادم للعميل عند الانتهاء.
في هذه المرحلة، يتعين علينا إعداد موازن التحميل بين كل من العميل والخادم ثم الاهتمام بتدفقات حركة المرور ومبدئي الاتصالات واتفاقيات المنفذ بين العميل والخادم.
مع RELIANOID موازن التحميل، علينا تحقيق هذا النوع من التكوين من خلال إنشاء ملف تعريف مزرعة LSLB L4xNAT مع المنفذ 21 و FTP البروتوكول، كما هو موضح في الصورة أدناه، وأخيرًا قم بتعيين الخوادم الخلفية (ليس من الضروري تعيين المنافذ).
يتعين على العملاء الاتصال بعنوان VIP لمزرعة FTP الجديدة.
تكوين TFTP #
تُستخدم بروتوكولات FTP البسيطة بشكل أساسي أثناء بيئات PXE (بيئة تنفيذ ما قبل التمهيد) التي تتكون من مزيج من خدمات DHCP وTFTP، حيث يمكن نشر عشرات أو مئات أو حتى آلاف أجهزة الكمبيوتر من خلال الشبكة.
سيكون سلوك البروتوكول الرئيسي هو:
1. يطلب العميل إلى الخادم عبر المنفذ 69 أمر طلب القراءة (RRQ) أو طلب الكتابة (WRQ) بما في ذلك الملف ووضع النقل.
2. يقر الخادم للعميل ويبلغه بمنفذ البيانات الجديد الذي يجب استخدامه.
3. استخدم العميل يبدأ اتصال البيانات بمنفذ متفق عليه في طبقة التطبيق على جانب الخادم.
4. يقر الخادم للعميل عندما يتبقى أحدث 512 بايت.
في بيئة حيث تحتاج خدمة TFTP إلى التوسع، فإن التكوين مع RELIANOID ٥ سهل جدًا. يتطلب إنشاء ملف تعريف مزرعة LSLB L5xNAT بالمنفذ 69 و المبسط البروتوكول، كما هو موضح في الصورة أدناه، وأخيرًا قم بتعيين الخوادم الخلفية (ليس من الضروري تعيين المنافذ).
يتعين على العملاء الاتصال بعنوان VIP لمزرعة TFTP الجديدة.
بروتوكول نقل الملفات الآمن #
لتحسين أمان بروتوكول FTP، تم تصميم بروتوكول نقل الملفات عبر SSH ، المعروف اختصارًا بـ SFTP، لتوفير طبقة أمان إضافية. في هذه الحالة، يجب تهيئة خوادم FTP كخوادم SFTP، وسيكون موازنة الأحمال عليها سهلاً للغاية، وذلك بإنشاء مُوازن أحمال منخفض المستوى (LSLB) مع مجموعة ملفات تعريف L4xNAT على المنفذ الافتراضي 22 وبروتوكول TCP ، كما هو موضح في لقطة الشاشة أدناه. أخيرًا، ما عليك سوى إضافة خوادم SFTP الخلفية.
يتعين على العملاء الاتصال بعنوان VIP لمزرعة TCP الجديدة، التي تقدم خدمة SFTP.
فحوصات صحية متقدمة #
فحص صحة FTP #
RELIANOID الأجهزة تشمل بالفعل check_ftp فحص الصحة لخدمات FTP، حتى نتمكن من اختبار فحص الصحة باستخدام الواجهة الخلفية:
root@noid:/usr/local/zenloadbalancer/app/libexec# ./check_ftp -H ftp.debian.org FTP OK - وقت استجابة 0.262 ثانية على منفذ ftp.debian.org رقم 21 [خادم FTP الخاص بـ ftp.debian.org رقم 220]|الوقت=0.262090 ثانية؛؛؛0.000000؛10.000000
من ناحية أخرى، مع الواجهة الخلفية المنخفضة سنحصل على الناتج التالي:
root@noid:/usr/local/zenloadbalancer/app/libexec# ./check_ftp -H ftp.debian.org CRITICAL - انتهاء مهلة المقبس بعد 10 ثوانٍ
لذا فإن أمر Farm Guardian الذي سيتم تكوينه في مزرعة FTP سيكون على النحو التالي:
check_ftp -H HOST
في علامة التبويب "الخدمات"، تأكد من ضبط إعدادات Farm Guardian كما هو موضح أدناه. يكفي مهلة 60 ثانية لضمان الأداء الصحيح للواجهة الخلفية.
فحص صحة TFTP #
إذا كان التحقق من tftp لا يوجد فحص متقدم بالفعل في RELIANOID من خلال استخدام جهاز، يمكننا إنشاء نص برمجي سهل للتحقق من الصحة كما هو موضح أدناه لخدمات TFTP الخاصة بنا.
أولاً، قم بإنشاء ملف وهمي في دليل TFTP الخلفي الخاص بك، على سبيل المثال tftp_relianoid_check.txt ، وأضف بعض المحتوى، على سبيل المثال "OK".
ثم في RELIANOID يمكنك تثبيت عميل tftp باستخدام الجهاز عن طريق تنفيذ الأمر التالي:
apt-get install tftp
وبعد ذلك، قم بإنشاء ملف نصي جديد في RELIANOID فحوصات الصحة الدليل الافتراضي، على سبيل المثال /usr/local/zenloadbalancer/app/libexec/check_mytftp.sh مع الكود النصي التالي:
#!/bin/bash ### ### التحقق من خدمات TFTP ### حقوق الطبع والنشر 2017-الآن RELIANOID SL ### ### $1: المضيف الذي سيتم فحصه CRITICAL=1 OK=0 RESULT=$(echo get tftp_relianoid_check.txt | tftp $1 2>&1 | head -n 1) echo "حالة فحص صحة TFTP لـ $1 هي $RESULT" if [ "`echo $RESULT | grep Received`" != "" ]; ثم الخروج من $OK وإلا الخروج من $CRITICAL fi
ثم قم بتعيين أذونات التنفيذ باستخدام الأمر:
root@noid:/# chmod 755 /usr/local/zenloadbalancer/app/libexec/check_mytftp.sh
إذا حاولنا تنفيذ البرنامج النصي، فسنحصل على رسالة نجاح عندما يكون البرنامج الخلفي جاهزًا ومُهيأ بشكل جيد:
root@noid:/usr/local/zenloadbalancer/app/libexec# ./tftp_check.sh 192.168.101.250 حالة فحص صحة TFTP لـ 192.168.101.250 هي tftp> تم استلام 4 بايت في 0.0 ثانية
أو خطأ عندما يكون البرنامج الخلفي معطلاً:
root@noid:/usr/local/zenloadbalancer/app/libexec# ./tftp_check.sh 192.168.101.250 حالة فحص صحة TFTP لـ 192.168.101.254 هي tftp> انتهت مهلة النقل.
أخيرًا، قم بتكوين فحص الصحة في مزرعة TFTP، بما في ذلك رمز HOST في الأمر.
check_mytftp.sh المضيف
في علامة التبويب "الخدمات"، تأكد من ضبط إعدادات Farm Guardian كما هو موضح أدناه. يكفي مهلة 60 ثانية لضمان الأداء الصحيح للواجهة الخلفية.
فحص صحة SFTP #
بما أن فحص الصحة check_ssh متوفر بالفعل ، يمكننا استخدامه مباشرةً. لذا، سيكون أمر Farm Guardian لتكوينه في مزرعة SFTP كما يلي:
check_ssh المضيف
بعد ذلك، سيتم عرض التكوين كما هو موضح في لقطة الشاشة التالية.
استمتع بنقل الملفات المتاحة والقابلة للتطوير!









