DNS और IP के बीच लोड-संतुलन अंतर - अग्रेषण बनाम पुनर्निर्देशन


9

मैं एक ऐसी स्थिति में आया हूं जिसे मैं समझ नहीं सकता। हमारे पास एक Fortigate फ़ायरवॉल है जिसे हमने दो बैक-एंड Apache वेब सर्वरों पर लोड-बैलेंस करने में सक्षम किया है। एक DNS नाम को फिर लोड बैलेंसर पर वर्चुअल आईपी पर मैप किया जाता है।

अपेक्षा के अनुसार, जब आप DNS नाम / URL (जैसे www.something.com) पर ब्राउज़ करते हैं , तो लोड बैलेंसर बैक-अप अपाचे वेब सर्वरों में से एक से एक पृष्ठ पर कार्य करता है। ब्राउज़र में URL www.something.com पर रहता है । मैं जो समझता हूं, इस मामले में लोड बैलेंसर केवल ब्राउज़र और अपाचे के बीच पैकेट को अग्रेषित कर रहा है, जबकि हमेशा पथ में रहता है।

हालाँकि, अगर मैं उस IP पते पर ब्राउज़ करता हूं, जिसमें DNS को मैप किया गया है, तो लोड बैलेंसर HTTP 302 फाउंड देता है, जिसमें से एक अपाचे के DNS URL पर सेट किया गया लोकेशन हेडर है। ब्राउज़र में URL बैक-एंड सर्वर DNS में बदल जाता है।

IP के माध्यम से क्वियर किए जाने पर लोड बैलेंसर को पुनर्निर्देशित क्यों किया जाता है, लेकिन DNS नाम के माध्यम से क्वेर किए जाने पर सही तरीके से अग्रेषित किया जा सकता है।

जवाबों:


10

मैंने लोड संतुलन के लिए एक फोर्टेज एफडब्ल्यू का इस्तेमाल नहीं किया है, इसलिए मैं कुछ सवालों के जवाब अधिक सामान्य रूप से दूंगा।

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

मेरा अनुमान है कि आपने वर्चुअल होस्टिंग चालू की है (एक सर्वर पर कई डोमेन का समर्थन करने के लिए) और "डिफ़ॉल्ट" आपके डोमेन के समान पृष्ठों की सेवा नहीं दे रहा है। आपको दोनों मामलों में सर्वर से एक वेब पेज वापस मिल रहा है। यदि आपको अपने वेब सर्वर को कॉन्फ़िगर करने में सहायता की आवश्यकता है, तो आप सर्वरफ़ॉल्ट पर कोशिश कर सकते हैं ।

दूसरा, थोड़ा और विस्तार में लाने के लिए। एक लोड बैलेंसर आम तौर पर कम से कम HTTP और HTTPS क्लस्टर के लिए L7 पर काम करता है। इसका मतलब यह है कि वे केवल आईपी पते को नहीं देखते हैं और इसे अग्रेषित करते हैं, न ही वे पृष्ठ को "पुनर्निर्देशित" करते हैं।

जब वे एक अनुरोध प्राप्त करते हैं, तो वे वास्तव में अनुरोध को पार्स करते हैं और अनुरोध को संसाधित करने के बाद इसे सर्वर पर अग्रेषित करते हैं। कई चीजें हैं जो वे इस बिंदु पर कर सकते हैं, जैसे कि दोनों दिशाओं में हेडर को फिर से लिखना, संभावित रूप से कुकीज़ जोड़ना (दृढ़ता के लिए) क्लाइंट में वापस जाना, एसएसएल सत्र समाप्त करना, यूआरएल के आधार पर मिलान करना, आदि।

मैं आपको सलाह देता हूं कि आप कुछ समय पूरी तरह से वेंडर बैलेंसिंग को पढ़ने में बिताएँ कि कैसे लोड बैलेंसिंग कार्यों की बेहतर समझ प्राप्त की जाए (फोर्ट्रेट के साथ आप उनके और कोयोट प्वाइंट दोनों को पढ़ सकते हैं - एक और लोड बैलेंसिंग कंपनी फोर्टजेट का अधिग्रहण)। यह समझना कि यह क्या कर रहा है, इस तरह से मामलों में आपकी मदद करेगा और आपको उन क्षमताओं को अनलॉक करने की अनुमति देगा, जिनका आपको एहसास नहीं था।


समस्या बैक-अप अपाचे वेबसर्वर पर एक कॉन्फ़िगरेशन थी। नए DNS नाम को उपनाम के रूप में जोड़ने की आवश्यकता है।
यूसुफ

3

फोर्टजेट लोड बैलेंसिंग डॉक में HTTP होस्ट-बेस्ड लोड बैलेंस को पढ़ने के बाद , मैं देख सकता हूं कि आपके पास एक एटिपिकल लोड-बैलेंसिंग कॉन्फ़िगरेशन कैसे हो सकता है, जिसके परिणामस्वरूप आप जो वर्णन करते हैं। हालाँकि, आपके कॉन्फ़िगरेशन के भाग के बिना, हम निश्चित नहीं हो सकते यदि यह आपके लिए मामला है।

FortiOS FortiOS एक वर्चुअल सर्वर बनाने की अनुमति देता है जो रियल सर्वर से जुड़ा होता है कि प्रत्येक में एक अलग होस्ट हैडर कॉन्फ़िगरेशन होता है । किसी भी अनुरोध को आपके वर्चुअल सर्वर के वीआईपी से मेल खाना चाहिए, लोड संतुलित अनुरोध केवल वास्तविक सर्वर पर जाएंगे जो कि मेल खाते हैं host headerसबसे महत्वपूर्ण हिस्सा जो अच्छी तरह से आपके लक्षणों की व्याख्या करता है, वह यह है कि रियल सर्वर में से एक होस्ट हेडर को छोड़ सकता है इसलिए यह किसी भी होस्ट हेडर पर मेल खाता है ।

होस्ट हेडर के बिना रियल सर्वर को "कैच-ऑल" के रूप में कॉन्फ़िगर किया गया हो सकता है जो उस साइट पर लैंड करता है जो रीडायरेक्ट करता है।

नीचे दिए गए उदाहरण का उपयोग करते हुए, केवल 1 और 2 rservers होस्ट हेडर के माध्यम से आपके पसंदीदा DNS नाम से मेल खाते हुए ट्रैफ़िक को संभालते हैं, लेकिन 3rd रेज़र कुछ भी लेता है जो अन्य सभी होस्ट हेडर से मेल खाता है जिसमें DNS VIP स्वयं शामिल है और एक साइट पर भेजता है जो एक रीडायरेक्ट कर सकता है ।

कॉन्फ़िगर फ़ायरवॉल वी.आई.पी.
 "http-host-ldb" संपादित करें
  प्रकार सर्वर-लोड-संतुलन सेट करें
  192.0.2.1 पर सेट करें
  सेट एक्सटेंफ "लैन"
  सर्वर-टाइप http सेट करें
  ldb- विधि http-host सेट करें
  सेटपोर्ट 80
  कॉन्फ़िगर realservers
    संपादित करें 1
      http-host "www.example.com" सेट करें
      IP 192.168.2.1 सेट करें
      पोर्ट 80 सेट करें
      आगे
    संपादित करें २
      http-host "www.example.com" सेट करें
      IP 192.168.2.2 सेट करें
      पोर्ट 80 सेट करें
      आगे
    संपादित करें ३
      IP 192.168.2.3 सेट करें
      पोर्ट 80 सेट करें
      आगे
    समाप्त
 समाप्त

मुझे लगता है कि फ़ायरवॉल लोड-बैलेंसिंग को पुनर्निर्देशित कर सकता है, लेकिन हम प्रदान की गई सीमित जानकारी के साथ नहीं बता सकते।


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

मुख्य कारण जो मुझे विश्वास नहीं था कि यह उत्तर है कि कोई एफडब्ल्यू / लोड बैलेंसर नहीं है जो मुझे पता है कि आंतरिक संसाधन के होस्टनाम / डोमेन पर सेट किए गए स्थान के साथ एक 302 लौटाएगा (कम से कम विशेष रूप से इसे करने के लिए कॉन्फ़िगर किए बिना। इसलिए, जो सवाल के आधार पर मामला होने की आवाज़ नहीं करता था)।
YLearn

@ रिकीबीम, केवल पहली बार rservers होस्ट नाम मिलान करते हैं। आखिरी रेजर होस्ट के रूप में वीआईपी पते से मेल खाएगा।
generalnetworkerror 7

@ हां, मैं मानता हूं कि यह अजीब होगा; मैं कह रहा था कि रेजर, LB नहीं, 302 किया होगा और ऐसा करने के लिए मधुमक्खी को कॉन्फ़िगर किया होगा। मुझे पता है कि कोई LB के लिए भी नहीं है।
generalnetworkerror
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.