अवलोकन #
एनएफटीएलबी नेटफिल्टर/एनएफटेबल्स लिनक्स नेटवर्किंग स्टैक पर निर्भर करता है। इस नए स्टैक के साथ हमें नई अवधारणाएँ और क्षमताएँ प्रदान की जाती हैं जिनकी हमें वर्तमान लोड बैलेंसिंग डिज़ाइन में फ़िट होने की आवश्यकता है।
इस लेख का उद्देश्य यह समझना है कि एनएफटेबल्स लोड बैलेंसर डेटा पथ और नियंत्रण पथ कैसे डिज़ाइन किए जाते हैं।
डेटा पथ हुक #
ये नेटफिल्टर हुक हैं जिनका उपयोग nftlb कॉन्फ़िगर करने योग्य चेन का लाभ उठाते हुए करता है। बैकएंड पर स्थापित अग्रेषित कनेक्शनों को गति देने के लिए कनेक्शन ट्रैकिंग ऑफ़लोड जैसी नई अवधारणाओं को शामिल करने की आवश्यकता है।
------------ | DNSBL | ------------ | कतार प्रवेश | प्रीरूटिंग फ़ॉरवर्ड पोस्टरूटिंग ------------ ------------ -------------- ------------ ------- -------------- ------- | फ़िल्टर | फ़िल्टर | फ़िल्टर | | फ़िल्टर | nat | | फ़िल्टर | | nat | | 0 | 50-99 | 100 | | -150 | 0 | | 0 | | 100 | --> | | | सेक पॉलिसीज़ |-( कनेक्टट्रैक )-> | सेक लिमिट्स | |-( रूटिंग )-> | | --> | | | क्लस्टरिंग | फ्लो टेबल्स | DSR | VS{} | हेल्पर्स | dNAT | VS{} | फ्लो ऑफ़लोड | | sNAT | | | | stless dNAT | | मार्क्स | | -------------- ------- ------------ ------------ -------------- ------------ -------
प्रवेश #
(0) फ़िल्टर: क्लस्टरिंग प्रबंधन के लिए आरक्षित। अभी तक nftlb में शामिल नहीं है।
(50-99) फ़िल्टर: प्रवाह तालिका त्वरण के लिए आरक्षित। अभी तक nftlb में शामिल नहीं है।
(100) फ़िल्टर: क्रमशः निम्न के लिए आरक्षित: सुरक्षा नीतियां (ब्लैकलिस्ट और व्हाइटलिस्ट), डायरेक्ट सर्वर रिटर्न और स्टेटलेस dNAT टोपोलॉजी।
प्रीरूटिंग #
(-150) फ़िल्टर: प्रति वर्चुअल सेवा या प्रति बैकएंड सुरक्षा सीमाओं के लिए आरक्षित जैसे: स्थापित कनेक्शनों की अधिकतम संख्या, प्रति सेकंड TCP RST की सीमा, प्रति सेकंड TCP SYN की सीमा, गैर सख्त TCP कनेक्शनों का ड्रॉप, DNSBL सेवा के लिए कतार, वर्चुअल सेवा और बैकएंड चिह्न, हेल्पर्स का उपयोग, प्रति वर्चुअल सेवा इनपुट कनेक्शनों की लॉगिंग।
(0) नेट: गंतव्य NAT मैन्गलिंग के लिए आरक्षित.
आगे #
(0) फ़िल्टर: प्रवाह ऑफलोड के लिए आरक्षित। अभी तक nftlb में शामिल नहीं है।
पोस्टरूटिंग #
(100) नेट: गंतव्य NAT मैन्गलिंग के लिए आरक्षित.
नियंत्रण पथ #
एनएफटीएलबी नियंत्रण पथ को एक डेमॉन के रूप में डिज़ाइन किया गया है जो एक एपीआई के साथ एक सरल http सर्वर या एक स्टैंडअलोन बाइनरी प्रदान करता है जो JSON प्रारूप में एक कॉन्फ़िगरेशन फ़ाइल स्वीकार करता है।
------------- अनुवाद ------------- -------- JSON API | | objs to nft | | netlink | | ------------> | http सर्वर | --------------> | libnftables | --------> | kernel | | | | | | | | ------------- | ------------- -------- | netlink | ---------------------------------------