BGP रूट और RPKI वैधता की जांच कैसे करें

BGP रूट जांच उस प्रश्न का उत्तर देती है जिसका उत्तर सर्वर जांच नहीं दे सकती: “मशीन चालू है?” नहीं, बल्कि “क्या इंटरनेट वास्तव में इस प्रीफ़िक्स तक ट्रैफ़िक ले जा रहा है, और सही मूल से?”। यह उन घोषणाओं को पढ़ती है जो अन्य नेटवर्क देखते हैं — मूल स्वायत्त प्रणाली, AS पथ, कितने रूट कलेक्टर उस प्रीफ़िक्स को देख ही रहे हैं — और उन्हें RPKI के विरुद्ध परखती है, जो इस बात का हस्ताक्षरित रजिस्टर है कि किसे क्या उत्पन्न करने की अनुमति है। यह गाइड बताती है कि प्रत्येक संकेत का क्या अर्थ है, वह कहां गुमराह करता है, और इस साइट के BGP लुकअप के साथ पांच चरणों की दिनचर्या देती है।

जब रूट गड़बड़ हो जाते हैं

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

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

घोषणा से शुरू करें

पहला प्रश्न सबसे सीधा है: क्या यह प्रीफ़िक्स वैश्विक तालिका में घोषित ही किया जा रहा है, और यदि हां, तो किसके द्वारा? घोषणा का अंतिम AS — मूल ASN — उस नेटवर्क का नाम बताता है जो उस प्रीफ़िक्स को रखने का दावा करता है, और उसके पीछे का रजिस्ट्री डेटा उस संगठन का नाम बताता है जिससे वह ASN संबंधित है। यदि मूल आपका अपना ASN है, या आपके प्रदाता का, तो घोषणा कम से कम सही घर का दावा कर रही है। यदि वह नाम है जिसे आपने कभी देखा ही नहीं, तो आपने पहले दस सेकंड में कुछ महत्वपूर्ण सीख लिया है।

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

दृश्यता और AS पथ

लुकिंग ग्लास आपके राउटर से नहीं पूछता; वह रूट कलेक्टरों से पूछता है — इस साइट के डेटा के पीछे के RIPE RIS कलेक्टर दुनिया भर के नेटवर्कों के साथ पीयर करते हैं और दर्ज करते हैं कि वे पीयर उन्हें क्या घोषित करते हैं। दृश्यता उन कलेक्टर पीयरों की गिनती है जो आपके प्रीफ़िक्स को देख ही रहे हैं। एक स्वस्थ, लंबे समय से मौजूद प्रीफ़िक्स आमतौर पर लगभग सभी को दिखाई देता है। मुक्त पतन में एक गिनती — या जो कल पूरी थी और आज मुट्ठी भर है — यह सुझाती है कि कोई घोषणा वापस ली जा रही है, फ़िल्टर हो रही है, या संकरे होते रास्तों के समूह से ही दिखाई दे रही है।

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

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

सरल शब्दों में RPKI

RPKI इंटरनेट का प्रयास है कि “मुझे यह घोषित करने की अनुमति है” एक चीख़ के बजाय जांच-योग्य दावा बन जाए। प्रीफ़िक्स धारक एक ROA प्रकाशित करता है — रूट मूल प्राधिकरण, एक हस्ताक्षरित वस्तु जो कहती है कि नामित ASN उस प्रीफ़िक्स को, घोषित अधिकतम प्रीफ़िक्स लंबाई तक, उत्पन्न कर सकता है। Routinator जैसे सत्यापनकर्ता — इस साइट की जांच के पीछे वही है — पांच क्षेत्रीय रजिस्ट्रियों (APNIC, ARIN, LACNIC, RIPE NCC और AFRINIC) के ट्रस्ट एंकरों से ROA लाते हैं और प्रत्येक घोषणा को उनके विरुद्ध परखते हैं। हस्ताक्षरित कथन आपकी घोषणा को ढकता है या नहीं ढकता; यही पूरा तंत्र है।

प्रत्येक घोषणा तीन अवस्थाओं में से एक में पड़ती है। वैध (valid): कोई ROA इस प्रीफ़िक्स, इस मूल ASN और इस लंबाई को ढकता है। अवैध (invalid): कोई ROA प्रीफ़िक्स को ढकता है लेकिन घोषणा उसकी शर्तों को तोड़ती है — और अवैध के भीतर का अंतर महत्वपूर्ण है: invalid_asn का अर्थ है कि गलत नेटवर्क उसे उत्पन्न कर रहा है, जबकि invalid_length का अर्थ है कि सही नेटवर्क ROA की अनुमति से अधिक विशिष्ट प्रीफ़िक्स घोषित कर रहा है। अज्ञात (unknown, जिसे अक्सर not-found कहा जाता है): कोई ROA उस प्रीफ़िक्स को बिल्कुल ढकता ही नहीं, इसलिए जांचने के लिए कुछ है ही नहीं।

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

पांच चरणों की जांच दिनचर्या

पहले सरल परतों को बाहर करें — अभी भी फैल रहा नया DNS रिकॉर्ड (DNS प्रसार जांचकर्ता से जांचें) या बाहर के लिए बंद सेवा पोर्ट (पोर्ट स्कैनर से जांचें) रूटिंग विफलताओं की बिल्कुल सटीक नकल करते हैं। फिर BGP लुकअप खोलें और क्रम से काम करें। चरण एक, प्रीफ़िक्स: IP या प्रीफ़िक्स दर्ज करें और उस ढकने वाली घोषणा की पुष्टि करें जो वास्तव में आपका ट्रैफ़िक ले जाती है। चरण दो, मूल: मूल ASN और धारक पढ़ें — आपका, आपके प्रदाता का, या किसी अजनबी का। चरण तीन, दृश्यता: कितने कलेक्टर पीयर उसे देखते हैं, और क्या वह गिनती इस प्रीफ़िक्स के लिए सामान्य जैसी लगती है?

चरण चार, RPKI: वैध, अवैध (किस प्रकार का?) या अज्ञात — और यदि invalid_asn किसी अजनबी का नाम ले, तो सूची खत्म करने से पहले उसे ऊपर पहुंचाएं। चरण पांच, AS पथ: कौन से अपस्ट्रीम घोषणा को ले जा रहे हैं, और क्या कोई नेटवर्क ऐसे पथ में बैठा है जहां उसका स्थान नहीं है? फिर जब वह आपके सामने हो तभी उसे लिख लें: प्रीफ़िक्स, मूल ASN और धारक, दृश्यता गिनती, RPKI अवस्था, वे पथ जो आपने देखे — और समय, UTC में। इस उपकरण का डेटा RIPEstat और RIPE RIS से आता है और लगभग एक घंटे के लिए कैश होता है, इसलिए बिना समय-चिह्न का स्क्रीनशॉट एक किस्सा है; समय-चिह्न वाली टिप्पणी वह साक्ष्य है जिसकी तुलना आप अगली जांच से कर सकते हैं।

बताने योग्य सीमाएं

तीन सीमाएं हर उस रिपोर्ट में शामिल हैं जिसे यह डेटा खिलाता है। कलेक्टर कवरेज पक्षपाती है: RIS के पीयर अनेक हैं लेकिन समान रूप से फैले नहीं हैं — कुछ क्षेत्र और कुछ प्रकार के नेटवर्क दूसरों की तुलना में कहीं बेहतर प्रतिनिधित्व पाते हैं, इसलिए दृश्यता गिनती एक नमूना है, जनगणना नहीं। प्रसार में सेकंड नहीं, मिनट लगते हैं: आपने अभी-अभी जो वैध बदलाव किया है वह वैध रूप से अभी दिखाई नहीं दे सकता, और वापस लिया गया रूट वास्तविक ट्रैफ़िक के आगे बढ़ जाने के बाद भी कलेक्टरों में बना रह सकता है; समाधान या आपदा घोषित करने से पहले प्रतीक्षा करें और पुनः जांचें। RPKI कवरेज आंशिक है: कई प्रीफ़िक्सों के पास अभी भी ROA नहीं होने से, सत्यापन परत तालिका के केवल उसी हिस्से का न्याय कर सकती है जो उसमें भाग लेता है।

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

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

RPKI अवैध का वास्तव में क्या अर्थ है?

कि कोई ROA उस प्रीफ़िक्स को ढकता है, लेकिन यह घोषणा उसकी शर्तों को तोड़ती है: या तो मूल ASN वह नहीं है जिसे ROA अधिकृत करता है (invalid_asn) या घोषित प्रीफ़िक्स ROA की अधिकतम लंबाई की अनुमति से अधिक विशिष्ट है (invalid_length)। यह साक्ष्य है, हाईजैक का प्रमाण नहीं — गलत जारी और बासी ROA, और स्थानांतरण के बीच के प्रीफ़िक्स भी अवैध घोषणाएं बनाते हैं। फिर भी इसे तत्काल मानें: कई बड़े नेटवर्क अवैध रूट गिरा देते हैं, इसलिए अवैध अवस्था स्वयं वह कारण हो सकती है कि इंटरनेट का एक हिस्सा उस प्रीफ़िक्स तक नहीं पहुंच पाता।

क्या लुकिंग ग्लास मेरे अपने राउटर की रूटिंग तालिका देख सकता है?

नहीं। लुकिंग ग्लास वह दिखाता है जो RIPE RIS जैसे रूट कलेक्टरों ने उन नेटवर्कों से प्राप्त किया है जो उनसे पीयर करते हैं — वैश्विक तालिका का एक बड़ा, उपयोगी नमूना, लेकिन आपके अपने राउटर का दृश्य नहीं। आपका राउटर आपके सत्र, फ़िल्टर और स्थानीय प्राथमिकता लागू करता है, इसलिए उसकी तालिका वैध रूप से अलग हो सकती है। अपने दृश्य के लिए राउटर से स्वयं पूछने (उसका BGP सारांश और रूट प्रश्न) का कोई विकल्प नहीं है; लुकिंग ग्लास का उपयोग दुनिया जो देखती है उसके लिए करें, और अपने राउटर का उपयोग आप जो कर रहे हैं उसके लिए।

दो लुकिंग ग्लास एक ही प्रीफ़िक्स पर असहमत क्यों होते हैं?

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