इसे छोड़कर कंटेंट पर जाएं

ECMP आत्मीयता और दृढ़ता

इक्वल-कॉस्ट मल्टी-पाथ (ECMP) रूटिंग प्रवाह (flows) वितरित करती है; यह उपयोगकर्ताओं, कुकीज़, लॉगिन सत्रों या एप्लिकेशन लेनदेन को नहीं समझती है। एक स्थिर ECMP हैश को दृढ़ता (persistence) सुविधा के रूप में मानने के बजाय एप्लिकेशन-जागरूक परत पर एप्लिकेशन दृढ़ता डिज़ाइन करें।

एक हैश प्रवाह की पहचान करता है, उपयोगकर्ता की नहीं

Section titled “एक हैश प्रवाह की पहचान करता है, उपयोगकर्ता की नहीं”

कई राउटर इंटरनेट प्रोटोकॉल (IP) और ट्रांसपोर्ट हेडर के फ़ील्ड से एक समान-लागत पथ का चयन करते हैं। एक सामान्य इनपुट पांच-टुपल (five-tuple) है: स्रोत पता, गंतव्य पता, प्रोटोकॉल, स्रोत पोर्ट और गंतव्य पोर्ट। सटीक फ़ील्ड, सीड (seed) और व्यवहार प्लेटफ़ॉर्म-विशिष्ट हैं।

समान चयनित फ़ील्ड वाले पैकेट सामान्य रूप से उसी पथ का अनुसरण करते हैं जब तक कि ECMP सेट स्थिर हो। एक नया कनेक्शन एक अलग स्रोत पोर्ट का उपयोग कर सकता है और इसलिए दूसरा CE चुन सकता है। HTTP/1.0, HTTP/1.1, HTTP/2, ब्राउज़र कनेक्शन पुनरुत्पादन (connection reuse), प्रॉक्सी और नेटवर्क एड्रेस ट्रांसलेशन (NAT) सभी इस बात को बदलते हैं कि कितने ट्रांसपोर्ट कनेक्शन एक स्पष्ट उपयोगकर्ता सत्र का प्रतिनिधित्व करते हैं।

वह व्यवहार केवल प्रवाह आत्मीयता (flow affinity) है। यह स्रोत-पता दृढ़ता (source-address persistence), कुकी दृढ़ता या सत्र-स्थिति प्रतिकृति (session-state replication) नहीं है।

स्रोत पोर्ट को छोड़ने से संतुलन (tradeoff) बदल जाता है

Section titled “स्रोत पोर्ट को छोड़ने से संतुलन (tradeoff) बदल जाता है”

कुछ राउटर ECMP हैश से स्रोत पोर्ट को छोड़ सकते हैं। ऐसा करने से एक ही स्रोत और गंतव्य पते वाले कनेक्शन अधिक बार एक ही पथ पर रह सकते हैं, लेकिन यह ट्रैफ़िक फैलाने के लिए उपलब्ध मानों को कम कर देता है। एक NAT पते के पीछे मौजूद कई उपयोगकर्ता फिर एक ही CE पर ध्यान केंद्रित कर सकते हैं।

इस कॉन्फ़िगरेशन अभी भी एप्लिकेशन दृढ़ता की गारंटी नहीं देता है:

  • पथ-सेट परिवर्तन हैश को पुनर्मानचित्रित (remap) कर सकता है;
  • एक CE विफलता नए ट्रैफ़िक को दूसरे CE पर स्थानांतरित कर देती है;
  • एक क्लाइंट पता बदल सकता है;
  • राउटर द्वारा CE के बीच एप्लिकेशन स्थिति कॉपी नहीं की जाती है।

सही परत पर सख्त दृढ़ता रखें

Section titled “सही परत पर सख्त दृढ़ता रखें”

जब किसी एप्लिकेशन को उपयोगकर्ता को उसी प्रसंस्करण संदर्भ (processing context) में लौटने की आवश्यकता होती है, तो एक समर्थित एप्लिकेशन-परत दृढ़ता तंत्र का उपयोग करें या सत्र स्थिति को बाहरी बनाएं। उदाहरणों में कुकी दृढ़ता, एप्लिकेशन-जागरूक लोड बैलेंसर द्वारा कार्यान्वित स्रोत-पता दृढ़ता और एक साझा सत्र स्टोर शामिल हैं।

आवश्यकता को सटीक रूप से बताएं:

आवश्यकताउपयुक्त तंत्र
एक परिवहन प्रवाह में पैकेट को एक पथ पर रखेंECMP प्रवाह हैशिंग
एक पते से नए कनेक्शन को एक लक्ष्य पर रखेंस्रोत-पता आत्मीयता, जिसमें NAT एकाग्रता समझी गई हो
एक प्रमाणित उपयोगकर्ता को एक एप्लिकेशन इंस्टेंस पर रखेंएप्लिकेशन-परत दृढ़ता
चयनित CE या एप्लिकेशन इंस्टेंस के नुकसान से बचे रहेंप्रतिकृत (replicated) या बाहरी सत्र स्थिति और स्वास्थ्य-जागरूक विफलता (failover)

ट्रैफ़िक के साथ सत्यापित करें, मान्यताओं के साथ नहीं

Section titled “ट्रैफ़िक के साथ सत्यापित करें, मान्यताओं के साथ नहीं”

कई स्वतंत्र कनेक्शन उत्पन्न करें और प्रति-पथ या प्रति-CE काउंटरों की तुलना करें। इसमें NAT के पीछे के क्लाइंट, दायरे में आने वाले प्रत्येक HTTP संस्करण, लंबे समय तक चलने वाले कनेक्शन और पथ-सेट परिवर्तन शामिल करें। एक सफल अनुरोध पहुंच योग्यता साबित करता है; यह समान वितरण या दृढ़ता साबित नहीं करता है।

पथ-सेट परिवर्तन के रूटिंग पक्ष के लिए, रूटिंग और विफलता देखें।

RFC 2992 समान-लागत अगले हॉप्स पर प्रवाह वितरित करने के लिए एक मॉडल का वर्णन करता है और अगला-हॉप सेट बदलने पर होने वाले व्यवधान का वर्णन करता है।