अवलोकन #
nftlb के लिए खड़ा है एनएफटेबल्स लोड बैलेंसर. यह लाभ उठाता है nftables, अगली पीढ़ी का लिनक्स फ़ायरवॉल जो iptables को प्रतिस्थापित करने के लिए तैयार है, और इसे पूर्ण-विशेषताओं वाले लोड बैलेंसर और ट्रैफ़िक वितरक के रूप में कार्य करने के लिए अनुकूलित किया गया है।
nftlb लेयर 2, 3 और 4 पर लोड बैलेंसिंग के लिए वर्चुअल सेवाएँ बनाने के लिए डिज़ाइन किए गए nftables नियम प्रबंधक के रूप में कार्य करता है। यह पैकेट से मिलान करने के लिए कुशल डेटा संरचनाओं का उपयोग करके आवश्यक नियमों की संख्या को कम करता है। इसके अतिरिक्त, इसमें एक उपयोगकर्ता के अनुकूल JSON API शामिल है, जो सहज प्रोग्रामेटिक इंटरैक्शन और स्वचालन को सक्षम करता है। यह लचीलापन आपके पसंदीदा स्वास्थ्य जांच उपकरण के साथ nftlb को एकीकृत करना आसान बनाता है।
एनएफटीएलबी का मुख्य दर्शन लिनक्स कर्नेल के भीतर डेटा पथ को बनाए रखना, प्रदर्शन को अधिकतम करना, जबकि उपयोगकर्ता स्थान में नियंत्रण विमान और स्वास्थ्य जांच को बनाए रखना है। यह पृथक्करण आसान अनुकूलन, लिनक्स स्टैक के साथ बेहतर संगतता और व्यवहार को गतिशील रूप से समायोजित करने की क्षमता की अनुमति देता है।
At RELIANOID, हमारे पास फीचर-रिच लोड बैलेंसर बनाने के लिए iptables और नेटफिल्टर फ्रेमवर्क का उपयोग करने का व्यापक अनुभव है। इस अनुभव के माध्यम से, हम इन तरीकों की सीमाओं को समझते हैं - सीमाएँ जिन्हें nftlb डिज़ाइन द्वारा दूर करता है।
क्यों है nftlb जरूरत है? #
लिनक्स कर्नेल में एक आंतरिक लोड बैलेंसर शामिल है जिसे कहा जाता है आईपीवीएस (आमतौर पर एलवीएस - लिनक्स वर्चुअल सर्वर के रूप में जाना जाता है)। जबकि आईपीवीएस एक स्थिर और परिपक्व सॉफ्टवेयर समाधान है जिसका उपयोग वर्षों से किया जा रहा है, इसकी कुछ सीमाएँ हैं:
- उपयोगकर्ता स्थान के लिए बेहतर अनुकूल कार्यों को कर्नेल में नियंत्रित किया जाता है, जिससे लचीलापन कम हो जाता है।
- यह नेटफिल्टर द्वारा पहले से उपलब्ध कराए गए बुनियादी ढांचे की नकल करता है।
- यह पारदर्शी प्रॉक्सीइंग, मल्टीपोर्ट या मल्टीप्रोटोकॉल समर्थन जैसी उन्नत सुविधाओं के लिए iptables जैसे पूरक उपकरणों पर निर्भर करता है।
- यह SNAT (सोर्स NAT) और DSR (डायरेक्ट सर्वर रिटर्न) टोपोलॉजी का समर्थन करता है, लेकिन इसमें DNAT (डेस्टिनेशन NAT) का अभाव है।
RSI iptablesदूसरी ओर, -आधारित दृष्टिकोण की अपनी सीमाएं हैं:
- प्रत्येक वर्चुअल सेवा के लिए अनेक नियमों की आवश्यकता होती है, जिसमें प्रति बैकएंड कम से कम दो नियम होते हैं, जिससे बैकएंड जुड़ने पर जटिलता रैखिक रूप से बढ़ जाती है।
- जब कई नियम शामिल होते हैं तो अनुक्रमिक नियम प्रसंस्करण से प्रदर्शन में गिरावट आती है, तथा क्लासिक iptables लॉकिंग समस्या से यह और भी अधिक बढ़ जाती है।
- IPv6 समर्थन के लिए एक अलग कमांड, ip6tables, का उपयोग करना आवश्यक होता है, जिससे कॉन्फ़िगरेशन बोझिल हो जाता है।
- यद्यपि iptables DNAT और SNAT लोड संतुलन का समर्थन करता है, यह DSR टोपोलॉजी में काम नहीं कर सकता है।
nftlb, बनाया गया nftables, इन सभी सीमाओं को अधिक कुशल और आधुनिक दृष्टिकोण से संबोधित करता है:
सभी टोपोलॉजी (SNAT, DNAT, DSR) का समर्थन करता है और उनके बीच निर्बाध स्विचिंग की अनुमति देता है।
मल्टीपोर्ट और मल्टीप्रोटोकॉल ट्रैफ़िक को मूल रूप से संभालता है।
एकल इंटरफ़ेस के माध्यम से IPv4 और IPv6 दोनों ट्रैफ़िक को निर्बाध रूप से प्रबंधित करता है।
एक एकीकृत इंटरफ़ेस के माध्यम से सभी आवश्यक लोड-संतुलन क्षमताएं प्रदान करता है।
केवल दो नियमों के साथ एक पूर्ण लोड बैलेंसर बनाने के लिए एनएफटेबल्स की एक्सप्रेसिव भाषा का उपयोग करता है, जिससे बैकएंड की संख्या की परवाह किए बिना निरंतर जटिलता सुनिश्चित होती है।
मिलानों को प्रति वर्चुअल सेवा अनुक्रमित किया जाता है, जिससे अनुक्रमिक नियम प्रसंस्करण की आवश्यकता समाप्त हो जाती है।
RCU (रीड-कॉपी-अपडेट) सबसिस्टम का लाभ उठाता है, नियम अद्यतन के दौरान लॉकिंग समस्याओं से बचता है।
नियंत्रण तल के लिए उपयोगकर्ता-स्थान लचीलापन बनाए रखते हुए इष्टतम प्रदर्शन के लिए डेटा पथ को कर्नेल स्थान में रखता है।
एलवीएस की तुलना में 10 गुना तेज प्रदर्शन देने के लिए सिद्ध।
nftlb विशेषताएं #
RSI एनएफटीएलबी लोड बैलेंसर वर्तमान में निम्नलिखित क्षमताएं प्रदान करता है:
समर्थित टोपोलॉजी:
- गंतव्य NAT (DNAT), स्रोत NAT (SNAT), प्रत्यक्ष सर्वर रिटर्न (DSR), और स्टेटलेस DNAT।
- ये टोपोलॉजीज एनएफटीएलबी को एक-सशस्त्र और दो-सशस्त्र नेटवर्क आर्किटेक्चर दोनों में कार्य करने में सक्षम बनाती हैं।
IPv4 और IPv6 समर्थन: आधुनिक नेटवर्किंग वातावरण के लिए दोनों आईपी परिवारों के साथ पूरी तरह से संगत।
बहुपरत भार संतुलन:
- परत 2: डीएसआर-आधारित लोड संतुलन।
- परत 3: प्रोटोकॉल-अज्ञेय, आईपी-आधारित लोड संतुलन।
- परत 4: UDP, TCP, और SCTP प्रोटोकॉल के लिए समर्थन।
मल्टीपोर्ट समर्थन: लचीले ट्रैफ़िक प्रबंधन के लिए पोर्ट रेंज और सूचियों को संभालता है।
एकाधिक वर्चुअल सेवाएँ (फार्म): एक साथ कई वर्चुअल सेवाओं के प्रबंधन का समर्थन करता है।
शेड्यूलर: इसमें भार-आधारित शेड्यूलिंग, राउंड रॉबिन, कॉन्फ़िगर करने योग्य हैश (आईपी, पोर्ट, एमएसी या संयोजनों के आधार पर) और सममित हैश शामिल हैं।
विन्यास योग्य दृढ़ता (एफ़िनिटी): आईपी, पोर्ट, एमएसी या उनके संयोजनों के आधार पर टाइमआउट के साथ क्लाइंट-बैकएंड संबंध प्रदान करता है।
सुरक्षा नीतियां:
- प्रवेश फ़िल्टरिंग के लिए सेवा-विशिष्ट श्वेत और काली सूचियाँ।
- उपयोगकर्ता-स्थान फ़िल्टरिंग, कतारबद्धता, और फर्जी TCP फ़्रेम का पता लगाना।
- अधिकतम स्थापित कनेक्शन, प्रति सेकंड TCP RST पैकेट और प्रति सेकंड नए कनेक्शन की सीमाएं।
बैकएंड प्राथमिकता समर्थन: अनुकूलित ट्रैफ़िक वितरण के लिए बैकएंड को प्राथमिकताएं निर्दिष्ट करने की अनुमति देता है।
लाइव प्रबंधनJSON API के माध्यम से वर्चुअल सेवाओं और बैकएंड का प्रोग्रामेटिक प्रबंधन।
वेब सेवा सुरक्षा: एपीआई पहुंच की सुरक्षा के लिए सुरक्षित कुंजी के माध्यम से प्रमाणीकरण।
स्वचालित परीक्षण बेड: सुव्यवस्थित परीक्षण और सत्यापन के लिए एक अंतर्निहित टेस्टबेड शामिल है।
आधिकारिक git रिपोजिटरी: https://github.com/relianoid/nftlb
Changelog: https://www.relianoid.com/knowledge-base/nftlb/nftlb-changelog/