क्या यह डाउन है, या सिर्फ़ आप?

बहु-दृष्टिकोण जांच उसी परीक्षण — एक ping, एक HTTP अनुरोध, एक DNS खोज — को अन्य लोगों के नेटवर्कों पर, अन्य देशों में स्थित प्रोब से उसी क्षण चलाती है जिस क्षण आप उसे अपने नेटवर्क से चलाते हैं। यह एक बदलाव एक अनुत्तरनीय प्रश्न (“मेरे यहां चलता है — क्या कोई और भी यह देख रहा है?”) को तुलना में बदल देता है: यदि हर दृष्टिकोण विफल हो, तो लक्ष्य डाउन है; यदि केवल आपका विफल हो, तो समस्या आपके और उसके बीच के रास्ते में रहती है। यह गाइड बताती है कि दूसरा दृष्टिकोण वास्तव में क्या साबित करता है, वह anycast जाल जिसमें हर कोई एक बार गिरता है, और इस साइट के ग्लोबल ping के साथ जांच कैसे चलाएं।

“मेरे यहां चलता है” समस्या

हर घटना चैनल ने एक ही घंटे में दोनों वाक्य सुने हैं: “साइट डाउन है” और “मेरे यहां चलता है”। दोनों ईमानदार रिपोर्ट हो सकते हैं। एकल दृष्टिकोण — आपका लैपटॉप, आपका कार्यालय, एक निगरानी मशीन — से चलाया गया परीक्षण ठीक एक चीज़ मापता है: उस एक नेटवर्क का, उस एक रास्ते पर, उस एक क्षण का अनुभव। वह उस सेवा को, जो सबके लिए डाउन है, उस रास्ते से अलग नहीं कर सकता जो केवल आपके लिए टूटा है: एक बीमार ट्रांज़िट प्रदाता, एक क्षेत्रीय फ़िल्टरिंग नियम, ज़हरीले या बासी उत्तर लौटाता DNS रिज़ॉल्वर, तीन नेटवर्क दूर की पीयरिंग असहमति जिसके बारे में आपने कभी सुना ही नहीं। एकल दृष्टिकोण के अंदर से, ये सब एक जैसे दिखते हैं — बिना वापसी पते की विफलता।

समर्थन टिकट और स्थिति पृष्ठ उसी ज्यामिति से पीड़ित हैं। स्थिति पृष्ठ कहता है “चालू है” क्योंकि प्रदाता के अपने प्रोब — प्रदाता के अपने पड़ोस में बैठे — सेवा तक बिना कठिनाई पहुंचते हैं, जबकि पूरा एक क्षेत्र नहीं पहुंच पाता। उपयोगकर्ता “डाउन” रिपोर्ट करता है क्योंकि उसका ISP ट्रैफ़िक को ब्लैक होल में निगल रहा है, जबकि सेवा गुनगुना रही है। कोई भी पक्ष झूठ नहीं बोल रहा; दोनों एक ही कुर्सी से सामान्यीकरण कर रहे हैं। समाधान उसी कुर्सी से अधिक सटीकता नहीं है। अधिक कुर्सियां हैं।

दूसरा दृष्टिकोण क्या साबित करता है

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

इस साइट द्वारा उपयोग किए जाने वाले प्रोब jsDelivr द्वारा संचालित Globalping नेटवर्क से संबंधित हैं: दुनिया भर के स्वयंसेवकों द्वारा होस्ट किए गए हज़ारों छोटे सॉफ़्टवेयर प्रोब, डेटा-सेंटर सर्वरों से लेकर घरेलू कनेक्शनों तक हर जगह, जो मानकीकृत माप — ping, traceroute, MTR, DNS और HTTP — स्वीकार करते हैं और जो उन्होंने देखा वह रिपोर्ट करते हैं। मूल्य किसी एकल प्रोब में नहीं है; एक शहर की स्वयंसेवी मशीन एक किस्सा है। मूल्य इसमें है कि किस्से स्वतंत्र हैं: अलग नेटवर्क, अलग अपस्ट्रीम, अलग विफलता मोड, सभी एक ही समय एक ही प्रश्न का उत्तर दे रहे हैं।

anycast और CDN सावधानी

यहां जाल है, और हर कोई एक बार इसमें गिरता है: अलग-अलग जगहों से अलग-अलग उत्तर सभी सही हो सकते हैं। आधुनिक सेवाएं एक जगह की एक मशीन नहीं हैं। Anycast एक ही पते को कई स्थानों से घोषित करता है, इसलिए फ्रैंकफर्ट का प्रोब और साओ पाउलो का प्रोब “उसी” IP पर पैकेट भेजते समय अलग-अलग भौतिक किनारों से बात कर रहे होते हैं, संभवतः अलग-अलग अवसंरचना महाद्वीपों पर — एक स्वस्थ, दूसरा पुनः आरंभ हो रहा। CDN प्रत्येक क्लाइंट को निकट के किनारे की ओर ले जाता है, और एक किनारा एक क्षेत्र में डाउन हो सकता है जबकि सेवा अन्यत्र निर्दोष है। प्रोब के बीच विचलन अपने आप विरोधाभास नहीं है; anycast लक्ष्य के लिए, विचलन डिज़ाइन का इरादे के अनुसार काम करना है, और प्रश्न “डाउन है?” के बजाय “कहां डाउन है?” बन जाता है।

DNS उसी बिंदु को दूसरी ओर से कहता है। प्रामाणिक सर्वर और रिज़ॉल्वर डिज़ाइन के अनुसार अलग-अलग उत्तर देते हैं — GeoDNS “निकटतम” किनारे का पता लौटाता है, और EDNS Client Subnet रिज़ॉल्वर को आपके पड़ोस की ओर से पूछने देता है, इसलिए टोक्यो के प्रोब का रिज़ॉल्वर और टेक्सास का एक, एक ही नाम के लिए वैध रूप से अलग-अलग पते प्राप्त करते हैं (जब प्रश्न यह हो कि दुनिया के पास कौन से रिकॉर्ड हैं तो उन्हें DNS प्रसार जांचकर्ता से साथ-साथ तुलना करें)। अलग-अलग प्रोब से अलग-अलग पते असंगति का साक्ष्य नहीं हैं। वे इस बात का साक्ष्य हैं कि नाम स्थानीयकरण कर रहा है — और वे आपको बताते हैं कि प्रत्येक क्षेत्र के उपयोगकर्ता वास्तव में किस किनारे से मिलेंगे।

वह माप चुनें जो प्रश्न का उत्तर देता है

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

Ping सबसे संकीर्ण प्रश्न का उत्तर देता है: क्या लक्ष्य यहां से पहुंच योग्य है, और रास्ते में कितना खोता है? यह “क्या यह नेटवर्क उस होस्ट को देख ही सकता है” के लिए सही परीक्षण है, और अनुप्रयोग के बारे में किसी भी चीज़ के लिए गलत परीक्षण है — होस्ट तब भी ping का उत्तर दे सकता है जब उसकी वेब सेवा मृत हो। HTTP उपयोगकर्ता के प्रश्न का उत्तर देता है: क्या वास्तविक अनुरोध वहां से सफल होता है, स्थिति कोड क्या है, और पूरी चीज़ में कितना समय लगा? जब बहस “साइट चलती है / साइट नहीं चलती” हो, तो कई प्रोब से HTTP वह साक्ष्य है जिसे दोनों पक्षों को स्वीकार करना चाहिए। DNS नाम के प्रश्न का उत्तर देता है: प्रत्येक क्षेत्र इस नाम के लिए वास्तव में कौन से पते प्राप्त करता है? यही वह तरीका है जिससे आप “सेवा डाउन है” को “मेरा क्षेत्र मृत किनारे की ओर भेजा जा रहा है” से अलग करते हैं।

Traceroute कहां के प्रश्न का उत्तर देता है: हॉप दर हॉप, इस प्रोब से लक्ष्य तक का रास्ता कहां रुकता है, अटकता है, या अप्रत्याशित जगह की ओर मुड़ता है? इसे विफल हो रहे दृष्टिकोण से चलाएं, चल रहे दृष्टिकोण से नहीं। MTR समय के साथ traceroute है — वही रास्ता बार-बार जांचा जाता है, इसलिए हानि और विलंब एक जमे हुए नमूने के बजाय प्रति-हॉप दरों के रूप में दिखते हैं; यह “यह रुक-रुक कर टूटता है” के लिए उपकरण है, जहां एकल traceroute रास्ते को अच्छे व्यवहार वाले दिन पकड़ता है। पांचों में अनुशासन: तय करें कि आप किस विफलता का परीक्षण कर रहे हैं, वह एक माप चुनें जो उसे देख सके, और बाकियों को प्रतीक्षा करने दें।

परिणामों को बिना स्वयं को धोखा दिए पढ़ना

उन दो संख्याओं को अलग करने से शुरू करें जिन्हें लोग आदतन मिला देते हैं। हानि — वे अनुरोध जो कभी वापस नहीं आए — क्षति है; विलंबता — वे अनुरोध जो धीरे वापस आए — असुविधा है, और दोनों के कारण और समाधान अलग हैं। 100% हानि दिखाने वाला प्रोब एक दीवार खोज चुका है; शून्य हानि और उच्च विलंबता दिखाने वाला प्रोब एक लंबा या भीड़भाड़ वाला रास्ता खोज चुका है, और दूसरे को “डाउन” रिपोर्ट करना ही वह तरीका है जिससे स्वस्थ सेवाएं आधी रात को जगाई जाती हैं। फिर समान से समान की तुलना करें: सबसे अच्छे या सबसे बुरे को नहीं, माध्यिका प्रोब को कहानी बनाएं। एक प्रोब का बेतहाशा बहिर्मुखी मान लौटाना — विशाल विलंबता, ऐसा समय-समाप्ति जो किसी और ने नहीं देखा — उस प्रोब के उस क्षण, उसके होस्ट, या उसके अपस्ट्रीम के बारे में कथन है। वह लक्ष्य के बारे में साक्ष्य तभी बनता है जब स्वतंत्र प्रोब उससे सहमत हों।

हिसाब-किताब का भी ध्यान रखें। एक प्रोब जो लक्ष्य को “ऑफ़लाइन” रिपोर्ट करता है जबकि उसके पड़ोसी सफल होते हैं, उसने सबसे संभवतः स्वयं को रिपोर्ट किया है — क्रैश हुआ प्रोब, गिरा हुआ घरेलू कनेक्शन, स्थानीय फ़िल्टर — और स्वयंसेवी प्रोब में ये सब होते हैं; यह उस नेटवर्क की कीमत है जिसे कोई केंद्रीय रूप से संचालित नहीं करता। समय-चिह्न नोट करें और बासी या कैश किए गए परिणामों को समाचार नहीं, इतिहास मानें। और जब हर प्रोब सहमत हो कि लक्ष्य खड़ा है लेकिन आपके उपयोगकर्ता फिर भी उस तक नहीं पहुंच पाते, तो दोनों पर विश्वास करें: आपने सीखा है कि विफलता वास्तविक है और संकीर्ण है — वह ऐसे रास्ते पर रहती है जिसे आपके किसी प्रोब ने संयोग से साझा नहीं किया, जो एक खोज है, विरोधाभास नहीं।

ईमानदार सीमाएं

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

इस साइट का इस नेटवर्क का उपयोग जानबूझकर मामूली है: यह Globalping के अनाम, साझा मुफ़्त स्तर पर चलता है, इसलिए जांचों में प्रति-आगंतुक सीमाएं होती हैं और परिणाम स्वयंसेवी संसाधन को पीटने के बजाय कुछ समय के लिए कैश किए जाते हैं — यदि कोई जांच आपको प्रतीक्षा करने को कहे, तो वह साझा स्तर का साझा होना है। इन सीमाओं के भीतर, कार्य पैटर्न यह है: “डाउन है या सिर्फ़ मैं” तय करने के लिए यहां बहु-दृष्टिकोण जांच चलाएं, फिर विजेता की ओर गहराई में जाएं — साइट पर एक विस्तृत नज़र जो कुछ भी बता सकती है उसके लिए वेबसाइट स्वास्थ्य जांच, और कुछ बदलने के बाद ग्लोबल ping से एक ताज़ा दौर। सबके-लिए-डाउन और सिर्फ़-आपके-लिए-डाउन को अलग-अलग दोपहरों की आवश्यकता होती है; अन्य लोगों के दृष्टिकोणों के दस मिनट ही वह तरीका है जिससे आप जानते हैं कि आप कौन सी दोपहर बिता रहे हैं।

अक्सर पूछे जाने वाले प्रश्न

मुझे कितने स्थानों से परीक्षण करना चाहिए?

यह उपकरण प्रति जांच अधिकतम चार स्थान चलाता है, और अच्छी तरह चुने गए चार, बेतरतीब चुने गए चालीस को हराते हैं। बहस से मेल खाता फैलाव चुनें: अपने उपयोगकर्ताओं के निकट एक प्रोब, दूसरे महाद्वीप पर एक, लक्ष्य की होस्टिंग के निकट एक, और नियंत्रण के रूप में कहीं दूर एक। यदि निकट और दूर के प्रोब सहमत हों, तो आपके पास उत्तर है; यदि केवल निकट वाले विफल हों, तो आपने समस्या को स्थानीयकृत भी कर लिया है। अधिक स्थान मुख्यतः तब मदद करते हैं जब पहले चार ऐसे पैटर्न में असहमत हों जिसे आप अभी पढ़ नहीं सकते।

एक प्रोब ऑफ़लाइन कहता है — क्या साइट डाउन है?

केवल उस साक्ष्य पर नहीं। एकल प्रोब स्वयं ऑफ़लाइन हो सकता है — क्रैश, डिस्कनेक्ट, या अपने ही फ़िल्टर के पीछे — और स्वयंसेवी प्रोब की गारंटी देने वाला कोई संचालक नहीं होता। “डाउन” वह निष्कर्ष है जो आप सहमति से निकालते हैं: कई स्वतंत्र प्रोब, अलग नेटवर्कों पर, एक ही समय एक ही तरह विफल होते हुए। एक प्रोब का विफल होना जबकि उसके पड़ोसी सफल होते हैं, आपको उस प्रोब के रास्ते के बारे में बताता है, और ईमानदार रिपोर्ट “उस एक दृष्टिकोण से पहुंच से बाहर” है, “डाउन” नहीं।

एक ही डोमेन अलग-अलग प्रोब से अलग-अलग पतों पर क्यों हल होता है?

क्योंकि उसे ऐसा ही काम करना चाहिए। GeoDNS और EDNS Client Subnet DNS उत्तरों को इस पर निर्भर बनाते हैं कि क्वेरी कहां से आती प्रतीत होती है, इसलिए प्रत्येक क्षेत्र को उसके निकटतम स्वस्थ किनारे का पता सौंपा जाता है; anycast और CDN रूटिंग परत पर उसी चाल पर निर्भर करते हैं। अलग-अलग प्रोब से अलग-अलग पते स्थानीयकरण का अपना काम करना है। यह खोज तभी बनता है जब एक क्षेत्र का पता मृत हो जबकि अन्य काम करते हों — तब नाम उस क्षेत्र के उपयोगकर्ताओं को एक टूटे किनारे की ओर निष्ठापूर्वक भेज रहा होता है।