एक लोड बैलेंसर क्या लौटाता है?


12

जब कोई उपयोगकर्ता लोड बैलेंसर को हिट करता है और लोड बैलेंसर किस वेब सर्वर को अग्रेषित करने के लिए निर्धारित करता है, तो आगे क्या होता है? क्या लोड बैलेंसर वेबसर्वर के अनुरोध और उसके सभी डेटा को अग्रेषित करता है, वेबसर्वर की प्रतिक्रिया प्राप्त करता है और उपयोगकर्ता को वापस लौटाता है?

या यह एक रीडायरेक्ट की तरह है जहां लोड बैलेंसर सचमुच चयनित सर्वर के आईपी पते को ब्राउज़र में वापस कर देता है और ब्राउज़र को दिए गए सर्वर के साथ एक नया कनेक्शन खोलना पड़ता है?

मेरी वृत्ति कहती है कि यह बाद की बात नहीं होगी क्योंकि इससे सभी वेब सर्वर आईपी पते सार्वजनिक होंगे और मैंने सुरक्षा कारणों से सोचा कि यह केवल जनता के लिए लोड बैलेंसर पतों को उजागर करना सबसे अच्छा है। लेकिन तब फिर से मुझे यकीन नहीं है क्योंकि अगर आप SSL terminationलोड बैलेंसर पर सक्षम होते हैं , तो SSL को फिर से पुनर्निर्देशित सर्वर के साथ फिर से स्थापित करने की आवश्यकता नहीं होगी?


जवाबों:


13

एंड-आईपी प्रकाशित नहीं हुआ है। प्रक्रिया वास्तव में एक तरह से काम करती है क्लाइंट (एक उपयोगकर्ता जो बैलेंसर को मार रहा है) का मानना ​​है कि वे एक वास्तविक नोड से बात करते हुए, बैलेंसर के साथ संचार कर रहे हैं।

एक बहुत ही सरल व्याख्या में , अधिकांश लेनदेन इस तरह काम करते हैं:

  1. एक उपयोगकर्ता लोड बैलेंसर के लिए अनुरोध करता है।
  2. बैलेंसर तय करता है कि कौन सा नोड सबसे उपयुक्त है (गंतव्य के लिए आपके द्वारा उपयोग की जा रही रणनीति के आधार पर) और गंतव्य आईपी को बदल देता है।
  3. (यह वह जगह है जहां जादू होता है।) नोड एक अनुरोध प्राप्त करता है, कनेक्शन स्वीकार करता है और वापस बैलेंसर को जवाब देता है।
  4. बैलेंसर प्रतिक्रिया आईपी को एक आभासी एक में बदल देता है, एक बैलेंसर में से एक है और उपयोगकर्ता की प्रतिक्रिया को आगे बढ़ाता है।
  5. Voilà, उपयोगकर्ता को प्रारंभिक अनुरोध के आईपी के साथ प्रतिक्रिया मिलती है, भले ही यह वास्तव में कहीं और संसाधित किया गया था।

पैकेट पुनर्लेखन को ध्यान में रखें (चरण 4 में आईपी पते का परिवर्तन) बहुत महत्वपूर्ण है। इसके बिना ग्राहक, एक आईपी से एक पैकेट प्राप्त करना, जिस पर भरोसा नहीं होता, बस प्रतिक्रिया को त्याग देगा।


4

लैड बैलेंसर 4 OSI लेयर पर काम कर रहा है। यह पोर्ट संख्या तक पैकेट को विघटित करता है और फिर 3 मोड में से एक के साथ पैकेट को निर्देशित करता है।

लोड बैलेंसर 3 मोड पर काम कर सकता है: 1. डायरेक्ट राउटिंग इस मोड में आपका रिएक्टर आईपी पब्लिक का उपयोग करता है। बैलेंसर पैकेट प्राप्त करता है और परत तक विघटित हो जाता है। 4. अगर लोड बैलेंस नियम मैच में, यह एक अप्रत्यक्ष पैकेट (संशोधन के बिना) को पुनरावर्तक में से एक होगा। लोडर के पते के साथ ही Realserver का एक उपनाम पता होता है, इसलिए जब Realserver को एक xxx.xxx.xxx.xxx गंतव्य के साथ पैकेट प्राप्त होता है तो यह उस पैकेट को उसके पते (उपनाम) के लिए सही परिभाषित करता है। और फिर क्लाइंट डायरेक्ट के लिए वास्तविक सर्वर रिप्लाई रिक्वेस्ट (लोडबैलेंस के माध्यम से नहीं)।

2. NAT इस मोड के पैकेट में गंतव्य पते को संशोधित करने के साथ वास्तविक रूप में पुनर्निर्देशित करता है। डेस्टिनेशन एड्रेस को रीसर्वर एड्रेस (NAT) से बदल दिया जाएगा। इस मोड में आपके रिज़रवर को IP सार्वजनिक की आवश्यकता नहीं है, यह आपके स्थानीय नेटवर्क का उपयोग कर सकता है। और फिर पैकेट वितरण होगा कोई नया गंतव्य पता नहीं। जब रिज़रवर पैकेट प्राप्त करता है तो यह क्लाइंट रिक्वेस्ट एड्रेस ट्राउट गेटवे (लोडबेलेंस) का जवाब होगा। इस मोड में आपका लोडबैलेंस राउटर के रूप में और आपके रिएक्टर के गेटवे के रूप में उपयोग होता है।

3. टनल इस मोड में पैकेट को नए src-dst एड्रेस (vpn की तरह) के साथ पैकेट को डिलीवर करने के लिए रियलसेंवर को दिया जाएगा। जब पैकेट को रिज़रवर में प्राप्त किया जाता है, तो रिब्सेवर को लोडबेलेंस के लिए सुरंगयुक्त पाइप के माध्यम से उत्तर दिया जाएगा। और फिर loadbalance डिलीवरी उत्तर ti वास्तविक अनुरोध स्रोत पता।

HTTPS / SSL के लिए, लोडबेलेंस इसे प्रोसेस नहीं करता है, लेयर 4 OSI तक बैलेंस प्रोसेस को लोड करता है। ऊपर के 5 लेयर रियलसर्वर में प्रोसेस होंगे। तो टीसीपी 3 रास्ता हंशाके, एसएसएल / एचटीटीपीएस जो कि रियलसर्वर में मौजूद है। लोडबेलेंस केवल पैकेट का निदेशक।

मुझे उम्मीद है कि मेरी छोटी सी व्याख्या से कुछ मदद मिलेगी।


ऐसा प्रतीत होता है कि आप यहाँ lvs के बारे में बात कर रहे हैं, लेकिन यह जरूरी नहीं है कि जिस तरह से http (s) लोड संतुलन काम करता है। उदाहरण के लिए haproxy को देखें। यह ऐप यूजरलैंड में लोड बैलेंसिंग करता है और अच्छी बैकएंड रूटिंग कार्यक्षमता में भी फेंकता है।
फ्राक

मेरे डेटासेंटर में मैं अपनी https ऐप सेवा को संतुलित करने के लिए lvs का उपयोग करता हूं, और यह काम करता है और अच्छी तरह से चल रहा है।
dek.tiram

मेरे अज्ञान को माफ करना, लेकिन "lvs" क्या है? क्या यह haproxy का प्रतियोगी है?
स्माइली

हाप्रोसी भी एलवीएस का उपयोग करता है। मैं पिरान्हा का उपयोग करता हूं जो कोर प्रक्रिया के लिए एलवीएस का भी उपयोग करता है।
dek.tiram

haproxy एक स्वसंपूर्ण अनुप्रयोग है और इसमें lvs की आवश्यकता नहीं है (यह lvs के अस्तित्व के बारे में भी नहीं जानता है)। यदि आप haproxy पर लोड बहुत भारी हो जाता है, तो आप haproxy नोड्स के एक क्लस्टर को संतुलित करने के लिए lvs का उपयोग कर सकते हैं।
फ्राक

-1

एक लोड बैलेंसर या तो एक राउटर या रिवर्स प्रॉक्सी हो सकता है:

LVS उद्योग मानक लेयर 4 (राउटिंग आधारित) लोड संतुलन मॉड्यूल लिनक्स कर्नेल के लिए है। इसका उपयोग बाराकुडा, Loadbalancer.org और केम्प टेक्नोलॉजीज सहित विभिन्न वाणिज्यिक भार बैलेन्सर में किया जाता है। बाराकुडा और Loadbalancer.org भी परत 7 लोड संतुलन ( रिवर्स प्रॉक्सी आधारित ) के लिए HAProxy का उपयोग करते हैं ।

Ps। मैं भूल गया कि यह वह जगह नहीं है जहां से मैं स्पष्ट रूप से Loadbalancer.org हूं


1
जब बाहरी संसाधनों के लिंक पोस्ट करने से संबद्धता का खुलासा करने की उम्मीद की जाती है, तो देखें कि कैसे एक स्पैमर नहीं है
gnat
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.