mDNS वायरगार्डवर: पीअर उत्तर देण्यापूर्वी तीन प्रवेशद्वारे
Avahi ला एक पात्र इंटरफेस, गटाकडे जाणारा मार्ग आणि गंतव्याचा मालक पीअर आवश्यक आहे. तीन प्रवेशद्वारे, तीन स्वतंत्र तपासण्या आणि कोणतेही फॅन-आउट नाही.
WireGuard उपकरणावर मल्टिकास्ट फ्लॅग सेट केल्याने इंटरफेस शोध सॉफ्टवेअरसाठी पात्र होतो, आणि फ्लॅग एवढेच करतो. तो प्रोटोकॉलला गट पॅकेट कुठे जावे हे सांगत नाही, आणि अनेक पीअर असलेल्या उपकरणावर एकही स्पष्ट उत्तर नसते. चालू डेमॉन आणि शोधलेल्या सेवेमध्ये तीन स्वतंत्र प्रवेशद्वारे उभी आहेत.
ती क्रमाने तपासा, कारण एक पार करणे पुढच्याबद्दल काहीही सांगत नाही.
पहिले प्रवेशद्वार: फ्लॅग आणि डेमॉनचे धोरण
Linux WireGuard उपकरण ARP शिवाय पॉइंट-टू-पॉइंट लिंक म्हणून तयार होते, आणि ते डीफॉल्टनुसार मल्टिकास्ट फ्लॅग ठेवत नाही. फ्लॅग जोडणे हा स्थानिक इंटरफेस बदल आहे, जो उपकरण व्यवस्थापित करणारे जे काही असेल ते करते. Avahi चे यावर स्वतःचे जगदर्शन आहे, आणि त्याचे डीफॉल्ट धोरण पॉइंट-टू-पॉइंट इंटरफेस पूर्णपणे वगळते. म्हणून एकही पॅकेट हलण्यापूर्वी दोन स्वतंत्र पात्रता चाचण्या लागू होतात.
त्यामुळे डेमॉनला स्पष्ट निर्णय हवा, केवळ चालू प्रक्रिया नाही. त्याच्या दस्तऐवजीकृत नियंत्रणांमध्ये allow-interfaces, deny-interfaces आणि allow-point-to-point यांचा समावेश आहे, आणि शेवटचे ते सेटिंग आहे जे लोक चुकवतात.
खालील तपासण्या लिंक फ्लॅग, मल्टिकास्ट मार्ग आणि डेमॉनचे कॉन्फिगरेशन अजिबात पार्स होते का हे सांगतात:
ip -d link show wg0
ip route get 224.0.0.251
avahi-daemon --check
यशस्वीरित्या सुरू झालेल्या डेमॉनने तुमच्यासाठी महत्त्वाच्या इंटरफेसवर सॉकेट उघडले असतीलच असे नाही. सेवेची स्थिती कव्हरेजच्या बरोबरीची आहे असे गृहीत धरण्याऐवजी त्याचे प्रभावी कॉन्फिगरेशन वाचा.
दुसरे प्रवेशद्वार: गटाकडे जाणारा मार्ग
दुसरे प्रवेशद्वार सामान्य राउटिंग आहे. 224.0.0.251 वर पाठवलेला पॅकेट बाकी सर्वांप्रमाणे फॉरवर्डिंग टेबलचे अनुसरण करतो, आणि जर टेबल ते भौतिक LAN इंटरफेसने बाहेर पाठवत असेल तर कोणतेही WireGuard कॉन्फिगरेशन ते बदलणार नाही. आधी मार्ग दुरुस्त करा म्हणजे उर्वरित तपासणी लहान होईल. कोणतीही पीअर की स्पर्श करण्यापूर्वी कर्नेल गट पत्त्याबद्दल काय सांगते ते पहा.
| Observation | Gate it belongs to | What it does not prove |
|---|---|---|
Multicast flag present on wg0 | Interface eligibility | The daemon will use the interface |
Route to the group via wg0 | Forwarding | Any peer will receive it |
| Destination inside a peer's allowed list | Peer selection | That peer's network will answer |
विशिष्ट मार्ग नसल्यास, कर्नेल लिंकच्या स्वतःच्या मल्टिकास्ट हाताळणीकडे परत जाते, म्हणूनच डीफॉल्ट सपाट LAN वर बरोबर दिसतो आणि तोच गट रहदारी बोगद्यातून बाहेर पडायची असेल तेव्हाच चुकीचा दिसतो. अपयश पाठवणाऱ्याच्या बाजूने शांत असते: क्वेरी कुठेतरी जाते, आणि उत्तर कधीच येत नाही.
तिसरे प्रवेशद्वार: WireGuard प्रति पॅकेट एक पीअर निवडतो
WireGuard अनुमत पत्ता संचांमध्ये गंतव्य शोधून बाहेर जाणारा पीअर निवडतो, आणि Linux चा प्रेषण मार्ग तो शोध प्रति पॅकेट एकदा करतो. निकाल एकच असतो, आणि पॅकेट त्या पीअरसाठी एन्क्रिप्ट होते. एकच गट प्रीफिक्स अनेक पीअरच्या अनुमत याद्यांमध्ये दिसल्याने सदस्यत्व किंवा प्रतिकृती तयार होत नाही; ते एक अस्पष्ट शोध तयार करते जो त्यातील एकावर सुटतो.
दोन टोकांच्या समर्पित लिंकवर हेच तुम्हाला हवे असते, कारण जाणीवपूर्वक वाहून नेल्या जाणाऱ्या गट रहदारीसाठी एकच इच्छित प्राप्तकर्ता असतो. पाच पीअर असलेल्या इंटरफेसवर ही मर्यादा आहे, वैशिष्ट्य नाही, आणि दुरुस्ती कोणत्याही एका पीअरच्या कॉन्फिगरेशनमध्ये नाही तर रचनेत असावी.
फॅन-आउट रचनेला स्पष्ट रिले, वेगळ्या लिंक किंवा पूर्णपणे वेगळी शोध यंत्रणा लागते. प्रत्येक क्लायंट गेटवेला पिंग करू शकतो म्हणून दोन-टोकांची कृती अनेक-क्लायंट उपाय म्हणून प्रकाशित करणे — अशाच प्रकारे हे चुकीचे तैनात होते.
आवक दिशा वेगळ्या प्रकारे तपासली जाते: प्राप्त पॅकेटचा स्रोत प्रमाणित पीअरच्या अनुमत यादीत असावा. तिथे मल्टिकास्ट गंतव्य जोडणे पाठवणाऱ्याच्या खऱ्या स्रोत-मालकीची जागा घेत नाही.
परावर्तन ही सीमा आहे, पूल नाही
Avahi चा परावर्तक त्याच्या निवडलेल्या इंटरफेसांमध्ये mDNS संदेश अनुप्रयोग स्तरावर पुनरुत्पादित करतो. ती नेटवर्कांमधील शोध-सीमा आहे, इथरनेट पूल नाही आणि सामान्य मल्टिकास्ट राउटर नाही. एकाच नेटवर्कांना जोडलेले दोन परावर्तक सहजपणे पुनरावृत्त घोषणांचा लूप तयार करतील.
परावर्तन सेवांची नावे आणि त्यांचा मेटाडेटा दुसऱ्या नेटवर्कला देतो, जो राउटिंग निर्णयाइतकाच गोपनीयतेचा निर्णय आहे. निवडलेले इंटरफेस मर्यादित करा, आणि स्थापित आवृत्ती समर्थन देते तिथे सेवा फिल्टर वापरा, जेणेकरून केवळ अधिकृत वापरकर्त्याला आवश्यक घोषणाच सीमा ओलांडतील.
शोध आणि वापर स्वतंत्र निकाल राहतात. ग्राहक अशा सेवेची घोषणा पाहू शकतो जिचा जाहीर पत्ता ग्राहक जिथे आहे तिथून पोहोचण्यायोग्य नाही, किंवा जिचा पोर्ट त्याचे प्रवेश धोरण नाकारते. घोषणा दिसल्यानंतर सेवा जोडणीची पुष्टी करा, आणि अनुप्रयोग स्थिर DNS नाव किंवा स्पष्ट सर्व्हर पत्ता समर्थित करत असल्यास लिंक-स्थानिक शोध वाढवण्याऐवजी त्याला प्राधान्य द्या. क्रिप्टोकी राउटिंगचे वर्णन हे सर्व ज्यावर अवलंबून आहे त्या गंतव्य-आधारित पीअर निवडीचा समावेश करते.