दो peer ऐसी रेंजें सूचीबद्ध करते हैं जो एक-दूसरे को छूती हैं, और ट्रैफ़िक ग़लत वाले तक पहुँचता है। कुछ भी ख़राब नहीं है: WireGuard गंतव्य को कॉन्फ़िगर की गई रेंजों से मिलाकर peer चुनता है, और सबसे विशिष्ट मिलान जीतता है। कुछ भी बढ़ाने से पहले तय करें कि कौन-सा peer कौन-सा प्रीफ़िक्स रखेगा।

WireGuard के भीतर सबसे लंबा प्रीफ़िक्स जीतता है

प्रत्येक peer प्रविष्टि गंतव्य प्रीफ़िक्स का एक समूह रखती है। जब कोई पैकेट इंटरफ़ेस में रूट होता है, तो कार्यान्वयन सबसे विशिष्ट मिलते प्रीफ़िक्स वाली प्रविष्टि खोजता है — वही नियम जो रूटिंग तालिका लागू करती है। इसलिए /24 उसे समाहित करने वाले /16 को हराता है, और संकरा peer ट्रैफ़िक प्राप्त करता है।

road-warrior सेटअप इसका जानबूझकर उपयोग करते हैं। एक peer किसी साइट के लिए चौड़ी रेंज रखता है, और अलग-अलग होस्ट दूसरे peers की /32 प्रविष्टियों से अलग किए जाते हैं। यह पैटर्न इसलिए काम करता है क्योंकि अलग किए गए हिस्से अधिक विशिष्ट हैं, क्रम के कारण नहीं।

स्वामित्व को प्रीफ़िक्स और peer की तालिका के रूप में लिखें। यदि दो प्रविष्टियाँ एक ही प्रीफ़िक्स का वर्णन करती हैं, तो कॉन्फ़िगरेशन अब किसी इरादे को नहीं, बल्कि एक दौड़ को व्यक्त करता है।

ऑपरेटिंग सिस्टम पहले इंटरफ़ेस चुनता है

WireGuard केवल एक इंटरफ़ेस के peers में से चुनता है। कौन-सा इंटरफ़ेस पैकेट प्राप्त करेगा, यह पहले तय होता है, होस्ट की रूटिंग तालिका से, और दूसरा डिफ़ॉल्ट रूट या पुराना रूट ट्रैफ़िक को वहाँ भेज सकता है जहाँ peer सूची उसे कभी नहीं देखती। इसीलिए peer-स्तर का निदान सही हो सकता है और फिर भी विफलता की व्याख्या नहीं कर सकता। peer कॉन्फ़िगरेशन पढ़ने से पहले गंतव्य का रूट देखें, क्योंकि भौतिक इंटरफ़ेस की ओर इशारा करने वाला रूट पूरे प्रश्न को दरकिनार कर देता है।

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

आने वाले पैकेट स्रोत से जाँचे जाते हैं

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

कॉन्फ़िगरेशन का एक पक्ष पढ़ते समय इस विषमता को चूकना आसान है। जो peer किसी सबनेट तक पहुँच सकता है, उसे इससे उस सबनेट से भेजने की अनुमति नहीं मिलती, और दोनों दिशाएँ अलग-अलग जाँचों से लागू की जाती हैं।

संकीर्ण स्रोत स्वामित्व इसे लाभ में बदल देता है। हर peer को उसके अपने पते के लिए /32 दें और नीचे की फ़ायरवॉल के पास मिलान के लिए एक विश्वसनीय स्रोत होगा, बजाय पूरे समूह की ऐसी रेंज के जिस पर कोई भी सदस्य दावा कर सकता।

दोहराई गई रेंजें failover नहीं हैं

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

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

संपादन से पहले चयन सत्यापित करें

तीन कमांड तीन प्रश्नों का क्रम में उत्तर देते हैं। पहला हर peer द्वारा दावा की गई रेंजें सूचीबद्ध करता है। दूसरा दिखाता है कि होस्ट किसी गंतव्य के लिए कौन-सा इंटरफ़ेस उपयोग करेगा। तीसरा दिखाता है कि ट्रैफ़िक बहने के बाद peers की जीवंत स्थिति क्या है।

wg show wg0 allowed-ips
ip route get 10.66.8.20
wg show wg0
ip rule show

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

टिकट में गंतव्य, चुना गया इंटरफ़ेस और चुना गया peer दर्ज करें। यही त्रिक ओवरलैप को बाद में समीक्षा-योग्य बनाता है, और यह कॉन्फ़िगरेशन के स्क्रीनशॉट से कहीं अधिक उपयोगी है।

संबंधित लेख