2011-03-16 7 views
20

यह हाल ही में मेरे ध्यान में आया है कि मेजबाननाम के लिए एकाधिक ए रिकॉर्ड स्थापित करने के लिए न केवल राउंड-रॉबिन लोड-बैलेंसिंग के लिए बल्कि स्वत: विफलता के लिए भी उपयोग किया जा सकता है।एकाधिक ए रिकॉर्ड का उपयोग कर फेलओवर के लिए DNS का उपयोग

तो मैं यह परीक्षण की कोशिश की:

  1. मैं अपने डोमेन का पृष्ठ लोड
  2. उल्लेख किया जो हमारे सर्वर के पेज
  3. कि मेजबान
  4. रीलोडेड पर वेब सर्वर बंद कर दिया सेवा की थी पृष्ठ

और वास्तव में ब्राउज़र ने पृष्ठ को लोड करने के लिए स्वचालित रूप से एक अलग सर्वर का प्रयास किया। यह ओपेरा, सफारी, आईई, और फ़ायरफ़ॉक्स में काम किया। केवल क्रोम एक अलग सर्वर को आजमाने में विफल रहा।

लेकिन कुछ मिनटों के लिए उस सर्वर को ऑफ़लाइन छोड़ने और एक्सेस लॉग को देखने के बाद, मैंने पाया कि अन्य सर्वरों के अनुरोधों की संख्या में उल्लेखनीय वृद्धि नहीं हुई है। ऑफ़लाइन 3 सर्वरों में से 1 के साथ, मैंने शेष 2 सर्वरों में से प्रत्येक को लगभग 50% तक पहुंचने की उम्मीद की थी, लेकिन इसके बजाय मैंने केवल 7-10% देखा। इसका मतलब यह हो सकता है कि DNS- आधारित विफलता ब्राउज़र/आगंतुकों के बहुमत के लिए काम नहीं करती है, जो कि मैंने अभी परीक्षण किया था, जो सीधे विरोध करता है।

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

+0

सर्वरफॉल्ट.com, बहन साइट को स्टैक ओवरफ्लो का प्रयास करें। – bnieland

+0

धन्यवाद, मैंने [किया है] [http://serverfault.com/questions/247885/using-dns-for-failover-using-multiple-a-records) – Daniel

उत्तर

12

क्या हो रहा है कि ब्राउज़र स्वचालित DNS विफलता नहीं कर रहे हैं।

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

कुछ नेमसर्वर एक नए ए रिकॉर्ड का अनुरोध करने के लिए पर्याप्त 'स्मार्ट' हैं, अगर वह जो काम करता है वह काम नहीं करता है और कुछ नहीं हैं। तो यदि आप एकाधिक ए रिकॉर्ड सेट करते हैं तो आप एक छद्म रिडंडेंसी फेलओवर स्थापित करेंगे, लेकिन केवल 'स्मार्ट' नेमसर्वर वाले लोगों के लिए। बाकी को पासा का टॉस मिलता है जिस पर उन्हें आईपी मिलता है और यदि यह अच्छा काम करता है, और यदि नहीं तो यह आपके लिए क्रोम में लोड होने में विफल हो जाएगा।

यदि आप विशेष रूप से इसका परीक्षण करना चाहते हैं तो आप विंडोज़ में C:\Windows\system32\drivers\etc\hosts और लिनक्स में /etc/hosts का उपयोग कर सकते हैं ताकि यह निर्दिष्ट किया जा सके कि आप किस डोमेन के साथ जाना चाहते हैं, यह देखने के लिए कि क्या आप एक वास्तविक विफलता प्राप्त करते हैं - जैसा कि आप करेंगे व्यावहारिकता में भाग लें कि नेट पर DNS सर्वर आपके टीटीएल के आधार पर आपके डोमेन नाम रिज़ॉल्यूशन को कैश करेगा। इसलिए यदि आपको वास्तविक विफलता मिलती है, तो उस आईपी को अभी भी हल करने की आवश्यकता होगी और अन्यथा किसी अन्य नेमसर्वर को खेती की जाएगी।

+0

आपके उत्तर के लिए धन्यवाद। यह बताता है कि क्यों विफलता केवल मेरे लिए काम करती है (मेरे पास "स्मार्ट" नेमसर्वर है) क्रोम को छोड़कर (अब (अमान्य) DNS रिकॉर्ड का आक्रामक कैशिंग)। – Daniel

+1

मुझे पता है कि यह वास्तव में सवाल नहीं था। लेकिन DNS फेलओवर के बिना: आप कैसे बचते हैं कि लोड बैलेंसर विफलता का एक बिंदु है? – Karussell

+0

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

1

एक और संभावित स्पष्टीकरण यह है कि, अधिकांश सार्वजनिक वेबसाइटों के लिए, यातायात का बड़ा हिस्सा ब्राउज़र से नहीं बॉट से आता है। बॉट के आधार पर यह संभव है कि जब वे डोमेन के लिए एकाधिक ए रिकॉर्ड प्रबंधित करने की बात आते हैं तो वे ब्राउज़र जितना स्मार्ट नहीं होते हैं।

इसके अलावा, कुछ बॉट टीसीपी कनेक्शन खोलने के लिए रख-रखाव का उपयोग करते हैं & उसी कनेक्शन पर एकाधिक HTTP अनुरोध करते हैं। यह देखते हुए कि DNS लुकअप केवल तभी किया जाता है जब कनेक्शन बनाया जाता है, वे कम से कम पुराने आईपी पते पर अनुरोध जारी रखेंगे जब तक कि कनेक्शन खुला रहता है।

यदि उपरोक्त स्पष्टीकरण के पास कोई वज़न है तो आप उपयोगकर्ता एजेंट स्ट्रिंग की जांच करके इसे अपने लॉग में देख पाएंगे।

संबंधित मुद्दे