हैंडशेक चालू, पता गायब: WireGuard की तीन स्थितियाँ
ताज़ा हैंडशेक साबित करता है कि पीयर ने जवाब दिया, यह नहीं कि इंटरफ़ेस अपना पता रखता है या अगला पैकेट इच्छित अपलिंक से जाता है।
WireGuard एक ही समय में ताज़ा हैंडशेक और कोई पता नहीं रख सकता, और यह स्थिति विरोधाभासी नहीं बल्कि सुसंगत है। हैंडशेक पीयर की घटना है, पता इंटरफ़ेस का है, और रूट तय करता है कि पैकेट किस अपलिंक से बाहर जाएगा। तीन परतें, तीन मालिक, और हर एक विफल हो सकती है जबकि बाकी दो स्वस्थ दिखें।
इन्हें एक ही स्थिति के रूप में पढ़ना ही दो मिनट के निदान को सेवाओं को फिर से शुरू करने की पूरी दोपहर में बदल देता है।
हैंडशेक पीयर की घटना है, पता देने की घटना नहीं
WireGuard का हैंडशेक साबित करता है कि कॉन्फ़िगर किए गए पीयर ने वैध कुंजी के साथ जवाब दिया और सत्र कुंजियाँ मौजूदा हैं। यह इंटरफ़ेस पर स्थानीय पते के बारे में कुछ नहीं कहता, और न ही इस बारे में कि कोई रूट वहाँ की ओर इशारा करता है या नहीं। पता कोई सहायक या नेटवर्क मैनेजर सौंपता है, जबकि प्रोटोकॉल कॉन्फ़िगरेशन सिर्फ़ पीयर और कुंजियों के नाम गिनाता है। दोनों को मिला देना ही वह तरीका है जिससे स्वस्थ हैंडशेक को काम करता टनल पढ़ा जाता है।
इसीलिए wg show ऐसे इंटरफ़ेस पर सेकंड पुराना हैंडशेक बता सकता है जो किसी एप्लिकेशन से एक भी पैकेट नहीं ले सकता।
इंटरफ़ेस फिर से बनाने वाला मैनेजर पीयर कॉन्फ़िगरेशन को छुए बिना पता गिरा सकता है, और अगला हैंडशेक तुरंत सफल हो जाता है क्योंकि कुंजियाँ कभी बदली ही नहीं। सफल हैंडशेक के बारे में लॉग पंक्ति सटीक है और विफलता से असंबंधित है।
| Observation | Which layer it belongs to | Wrong conclusion it invites |
|---|---|---|
| Handshake a few seconds old | Peer and keys | The tunnel is usable for application traffic |
Address present on wg0 | Interface configuration | Traffic actually egresses through it |
Route points at wg0 | Forwarding table | The outer packet uses the intended uplink |
इंटरफ़ेस के पते का अपना मालिक होता है
टनल डिवाइस पर पता किसी सहायक की Address पंक्ति से, इंटरफ़ेस पर चल रहे DHCP क्लाइंट से, या कनेक्ट के समय उसे बनाने वाले प्रबंधन डेमॉन से आ सकता है। जो भी हो, वही घटक पते का मालिक है और अपने तर्क के अनुसार उसे बहाल करेगा या नहीं। मालिक का नाम लिए बिना पता पढ़ना आपको यह समझाने में असमर्थ छोड़ देता है कि वह गायब क्यों हुआ।
एक इंटरफ़ेस पर दो मालिक क्लासिक विफलता है। एक ही डिवाइस पर सहायक और डेस्कटॉप नेटवर्क मैनेजर शुरू करने से ऐसी दौड़ बनती है जिसमें एक वह हटा देता है जो दूसरे ने अभी सेट किया था, और एंडपॉइंट पूरे समय जवाब देता रहता है।
एक मालिक चुनें और दूसरे टूल को प्रबंधन के बजाय निरीक्षण करने दें। यह निर्णय लिखने योग्य है, क्योंकि लक्षण हफ़्तों बाद दिखता है और बेतरतीब पता हानि जैसा लगता है।
रूट अपलिंक चुनता है, इंटरफ़ेस नहीं
wg0 की ओर इशारा करने वाला आंतरिक रूट तय करता है कि ट्रैफ़िक टनल में प्रवेश करता है. एक अलग निर्णय एन्क्रिप्ट किए गए बाहरी पैकेट पीयर की ओर भेजता है, और कई अपलिंक वाले होस्ट पर वह निर्णय फ़ॉरवर्डिंग टेबल और नीति नियमों से आता है। Wi-Fi रोमिंग आंतरिक पते को छुए बिना बाहरी मार्ग बदल सकती है।
इसलिए काम करता टनल और अप्राप्य पीयर संगत स्थितियाँ हैं, और वैसे ही सही पीयर तथा टूटा आंतरिक रूट। तीनों अवलोकन एक साथ, एक ही क्षण में लेने होंगे, वरना तुलना अर्थहीन है।
तीनों स्थितियों की एक ही पास में तुलना करें
तीन केवल-पठन कमांड तीन सवालों का जवाब उस क्रम में देते हैं जो विफलता को सबसे तेज़ अलग करता है। इन्हें बीच में कुछ बदले बिना चलाएँ।
ip address show dev wg0
ip route get 10.80.0.1
wg show wg0 latest-handshakes transfer
पहला दिखाता है कि इंटरफ़ेस के पास पता है भी या नहीं, और दूसरा दिखाता है कि कोई विशेष गंतव्य अभी कौन-सा डिवाइस इस्तेमाल करेगा। तीसरा अंतिम हैंडशेक का समय और बाइट काउंटर बताता है, और तीनों में से यही अकेला है जो स्थानीय होस्ट के बजाय पीयर का वर्णन करता है।
टाइमस्टैम्प के साथ काउंटर भी पढ़ें। ट्रांसफ़र स्थिर रहते हुए बार-बार ताज़ा होता हैंडशेक मतलब पीयर जवाब दे रहा है पर कुछ काम का पार नहीं हो रहा, जो कुंजियों के बजाय रूटिंग या ACL की ओर इशारा करता है। पता मौजूद होते हुए आगे बढ़ना बंद कर देने वाला टाइमस्टैम्प इसके उलट ऊपर की ओर इशारा करता है। दोनों पठन आउटपुट की एक ही पंक्ति से आते हैं, और अगर आप सिर्फ़ यह जाँचें कि हैंडशेक है या नहीं तो कोई भी दिखता नहीं।
जो विशेष स्थिति ग़लत है उसे ठीक करें, फिर टनल के बजाय एप्लिकेशन को दोबारा जाँचें। ताज़ा हैंडशेक पीयर के बारे में सबूत है, और पीयर के बारे में सबूत यह सबूत नहीं है कि आपके ब्राउज़र का अगला अनुरोध पता, रूट और काम करता अपलिंक पा लेगा। wg-quick मैनुअल स्पष्ट रूप से बताता है कि इनमें से कौन-सा सहायक सेट करता है और कौन-सा प्रोटोकॉल का है।