نبذة
nftlb لتقف على موازن تحميل nftables، يتم تكييف الجيل القادم لينكس جدار الحماية التي سوف تحل محل iptables ليحل محل موازن الحمل الكامل وموزع حركة المرور.
nftlb هو مدير قواعد nftables لإنشاء خدمات افتراضية لموازنة الحمل في الطبقة 2 والطبقة 3 والطبقة 4 ، وتقليل عدد القواعد واستخدام الهياكل لمطابقة الحزم بكفاءة. كما أنها مزودة بخدمة JSON API سهلة لتتمتع بالمرونة للتفاعل مع nftlb برمجيًا ولتلبية الأتمتة. لذلك يمكنك استخدام مدقق الصحة المفضل لديك ليتم دمجه مع nftlb بسهولة بالغة.
فلسفة nftlb هو الحفاظ على مسار البيانات في النواة ، من أجل تحقيق أقصى قدر ممكن من الأداء ، ولكن يتحكم مستوى التحكم والصحة في مساحة المستخدم ليحصلوا على المرونة اللازمة لتغيير السلوك بسهولة ، ولكن أيضًا ليكون متوافقًا مع باقي مكدس linux .
في Zevenet ، كنا نستخدم iptables والبنية التحتية netfilter لسنوات لإنشاء موازن تحميل كامل الميزات ، ومن ثم فإننا نعلم جيدًا قيود هذا النهج الذي نحفظه باستخدام nftlb.
لماذا تحتاج إلى nftlb؟
تحسب نواة linux بالفعل من موازن تحميل داخلي يسمى IPVS ، أو تعرف أيضًا باسم LVS (Linux Virtual Server) ، وهو عبارة عن قطعة كاملة من البرامج ومستقرة للغاية تم استخدامها لسنوات. لكن موازن التحميل هذا له بعض القيود: يستخدم جانب النواة للمهام التي يجب أن يقوم بها مساحة المستخدم ، وبالنسبة لبعض الإمكانات فإنه يكرر البنية التحتية التي يوفرها الآن مرشح الشبكة ، ويعتمد على iptables وغيرها من البرامج إذا تطلب الأمر شيئًا أكثر تعقيدًا (مثل الوكيل الشفاف أو المنفذ المتعدد أو متعدد البروتوكولات). وهو يوفر طبولوجيا SNAT و DSR ، ولكن ليس DNAT.
مع مقاربة iptables فإن القيود الرئيسية هي عدد القواعد التي سيتم إنشاؤها بواسطة الخدمة الظاهرية وعدد الدرجات الخلفية (الحد الأدنى من قواعد 2 لكل واجهة خلفية مع العديد من التطابقات المضمنة بها) وتعقيد خطي متزايد وفقًا لعدد الدعامات الخلفية المضافة . كما تؤدي المعالجة التتابعية للقواعد إلى إبطاء الأداء إذا تم تضمين الكثير من القواعد ، وهذا أسوأ بسبب مشكلة تأمين iptables الكلاسيكية. من أجل توفير موازنة تحميل IPv6 ، يوجد إزعاج لاستخدام أمر مختلف ، ip6tables. بالإضافة إلى ذلك ، هذا الأسلوب قادر على توفير DNAT (Destination NAT للشفافية) وموازنة تحميل SNAT (المصدر NAT) ولكن غير قادر على العمل في طبولوجيا DSR (خادم إرجاع المباشر).
بإضافة إلى nftlb مرتكز على nftables نحن نحفظ كل هذه القضايا:
يمكنه بناء كل هذه الطوبولوجيا والتغيير من واحد إلى آخر بسهولة بالغة.
يمكن أن تتعامل مع multiport و multipcolocol أصلا.
يمكن إدارة IPv4 وحركة مرور IPv6 بسلاسة.
يتم استخدام واجهة واحدة فقط لتوفير جميع الإمكانات المطلوبة لموازنة التحميل.
توفر nftables لغة أكثر تعبيرًا حتى نتمكن من استخدام قواعد 2 لإنشاء موازن تحميل كامل مع التعقيد الثابت!
تتم فهرسة المطابقات لكل خدمة افتراضية ، لذلك لا نحتاج إلى معالجتها جميعًا بشكل تسلسلي.
يتم توفيره من النظام الفرعي RCU بحيث لا توجد مشكلة قفل عند تحديث القواعد.
يظل مسار البيانات في مساحة kernel ولكنه يوفر المرونة في مساحة المستخدم لمستوى التحكم.
وقد ثبت ذلك يمكنها تنفيذ 10x بشكل أسرع من LVS.
ميزات nftlb
حاليا، nftlb يوفر الإمكانيات التالية:
طبولوجيا المدعومة: الوجهة NAT ، المصدر NAT ، عائد الخادم المباشر و DNAT عديمي الجنسية. يتيح ذلك استخدام موازن التحميل في تصميمات الشبكات المسلحة والمسلحة.
دعم لكلا العائلات IPv4 و IPv6.
موازن تحميل متعدد الطبقات: DSR في طبقة 2 ، موازنة تحميل IP على أساس مع ملزمة البروتوكول في طبقة 3 ، ودعم موازنة تحميل UDP و TCP و SCTP عند طبقة 4.
دعم Multiport للنطاقات وقوائم المنافذ.
دعم خدمات ظاهرية متعددة (أو مزارع).
تتوفر أجهزة الجدولة: الوزن ، والروبن المستدير ، والتجزئة القابلة للتكوين (لكل عنوان IP ، أو منفذ ، أو MAC ، أو توليفة منها) وتجزئة متماثلة.
دعم استمرارية شكلي أو تقارب العميل الخلفي مع مهلة (لكل IP أو منفذ أو MAC أو مجموعة منهم).
دعم سياسات الأمان لكل خدمة: القوائم البيضاء والقوائم السوداء (من الإدخال) ، والانتظار في قائمة الانتظار إلى مرشح مساحة المستخدم ، وتصفية إطارات TCP المزيفة ، والحد الأقصى لعدد الاتصالات الثابتة ، والحد من RST TCP في الثانية ، والحد من الاتصالات الجديدة في الثانية ، وأكثر.
دعم الأولوية لكل الخلفية.
الإدارة المباشرة للخدمات الافتراضية والوحدات الخلفية بطريقة برمجية من خلال واجهة برمجة تطبيقات JSON.
مصادقة خدمة الويب باستخدام مفتاح أمان.
وشملت testbed الآلي.
مستودع git الرسمي: https://github.com/zevenet/nftlb
التغيير: https://www.zevenet.com/knowledge-base/nftlb/nftlb-changelog/