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

रूट बदलने से पहले लूप की पुष्टि करें

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

sudo wg show wg1 endpoints
ip route get 198.51.100.20
ip rule show

उस कैप्चर में नीति नियम शामिल करें। मुख्य तालिका में सही दिखने वाला डिफ़ॉल्ट रूट अभी भी ऐसे नियम से हार सकता है जो चिह्नित या अचिह्नित ट्रैफ़िक के लिए अलग तालिका चुनता है, और रूट तालिका ठीक दिखने के बावजूद लूप फिर प्रकट होगा।

एंडपॉइंट पथ पढ़ें, टनल पथ नहीं

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

यदि इंटरफ़ेस दोनों ले जाता है तो दोनों पता परिवारों को अलग-अलग जाँचें। काम करने वाला IPv4 अपवर्जन इस बारे में कुछ नहीं कहता कि IPv6 एंडपॉइंट अभी भी पहुँच योग्य है या नहीं, और मिश्रित कॉन्फ़िगरेशन तब तक काम करता दिख सकता है जब तक पीयर का IPv6 पता न चुना जाए।

एक सुसंगत परिवर्तन से एंडपॉइंट पथ बहाल करें

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

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

sudo ip route replace 198.51.100.20/32 via 192.0.2.1 dev eth0
ip route get 198.51.100.20
sudo ip route add default dev wg1

सत्यापित करें, फिर वापस लौटने का रास्ता रखें

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

sudo wg show wg1 latest-handshakes
sudo wg-quick down wg1
ip route show default
ip route get 198.51.100.20

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

संबंधित लेख