दोन साइट असलेल्या WireGuard हबसाठी IPv6 नियोजन: प्रीफिक्स, पीअर, रूट
दोन LAN साठी खाजगी IPv6 हबवर काम करा: प्रीफिक्स निवडा, टनेल पत्ते राखून ठेवा, नंतर AllowedIPs ला सांगू द्या की कोणता पीअर कोणत्या सबनेटचा मालक आहे।
दोन LAN, एक WireGuard हब आणि तीन वेगळ्या प्रश्नांची उत्तरे देणारी IPv6 पत्ता योजना: कोणता प्रीफिक्स, कोणता पत्ता कोणत्या राउटरचा आणि कोणता पीअर कोणत्या सबनेटचा मालक। यापैकी एकही चुकला तर हँडशेक होतो पण काहीच रूट होत नाही अशी टनेल तयार होते। खालील योजना त्याच क्रमाने खाजगी दोन-साइट रचना हाताळते। ती जाणूनबुजून IPv6 इंटरनेट प्रवेश देत नाही।
प्रीफिक्स कशासाठी आहे ते ठरवा
साइट्समध्ये खाजगी पोहोच हे ध्येय असेल तेव्हा fd00::/8 मधील अद्वितीय-स्थानिक प्रीफिक्स ही नैसर्गिक निवड आहे। प्रत्येक ठिकाणाला कोणता ISP सेवा देतो यावर अवलंबून न राहता तो स्थिर राहतो आणि जागतिक राउटिंग तक्त्यात घोषित होत नाही, त्यामुळे तुमची अंतर्गत क्रमांकन इंटरनेटवर गळू शकत नाही।
तीच गुणधर्म मर्यादा आहे। ULA कोणताही सार्वजनिक परतीचा मार्ग देत नाही, कारण कोणत्याही वरच्या पुरवठादाराला तो तुमच्या गेटवेकडे रूट करायचा आहे हे माहीत नसते। जर गरजेत IPv6 इंटरनेट इग्रेस असेल, तर तुम्हाला लागते ते तुमच्यापर्यंत रूट करणाऱ्या पुरवठादाराकडून वाटप, आणि हा स्वतःच्या प्रीफिक्स आकारासह वेगळा रचना निर्णय आहे।
प्रत्येक तैनातीला /48 लागतो असे गृहीत धरू नका। RFC 6177 अंतिम साइटच्या एका अनिवार्य आकारापासून दूर गेले, आणि योग्य आकार तुम्ही चालवणाऱ्या नेटवर्कच्या संख्येवर अवलंबून असतो। दुसरी संस्थाही वापरू शकेल असा प्रीफिक्स शोधून काढण्याऐवजी RFC 4193 प्रक्रियेने ULA तयार करा। कोणतेही उपकरण कॉन्फिगर होण्यापूर्वी निकाल पत्ता योजनेत लिहा, कारण कोणीही नोंद न केलेला प्रीफिक्स हा कोणीतरी पुन्हा वापरणारा प्रीफिक्स असतो।
प्रीफिक्सची भूमिकांमध्ये विभागणी करा
खालील उदाहरण fd7c:2e91:4a00::/48 वापरते, आणि तक्ता साइटनुसार नाही तर प्रत्येक ब्लॉक कुठे लिहिला जातो त्यानुसार मांडलेला आहे। मूल्ये नमुना माना आणि काहीही तैनात करण्यापूर्वी तुमची तयार करा।
| Where it is written | What appears there | Block used | What it establishes |
|---|---|---|---|
| Hub wg0.conf, interface address | A single host address on the tunnel | fd7c:2e91:4a00:ff00::1/128 | The hub's own tunnel identity |
| Hub wg0.conf, Site A peer | Two ranges in one AllowedIPs line | ::2/128 and :10::/64 | That A owns its tunnel address and its LAN |
| Hub wg0.conf, Site B peer | Two ranges in one AllowedIPs line | ::3/128 and :20::/64 | That B owns its tunnel address and its LAN |
| Site A wg0.conf, interface address | A single host address on the tunnel | fd7c:2e91:4a00:ff00::2/128 | A's identity as the hub sees it |
| Site B wg0.conf, interface address | A single host address on the tunnel | fd7c:2e91:4a00:ff00::3/128 | B's identity as the hub sees it |
LAN ब्लॉक /64 आहेत कारण सामान्य SLAAC 64-बिट इंटरफेस ओळखकर्ता अपेक्षितो। LAN चे लहान ब्लॉकमध्ये विभाजन केल्यास बहुतेक होस्टवर ते गृहीत तुटते, आणि खाजगी योजनेत पत्ता बचतीसाठी परिचालन खर्च योग्य नाही। दोन्ही LAN ब्लॉक /48 च्या मधून येतात, त्यामुळे खालची श्रेणी पुढील साइटसाठी मोकळी राहते।
टनेल पत्ते प्रशासकीय साठा आहेत, लिंकवरील नेटवर्क नाही। प्रत्येक इंटरफेसला त्यातून एक /128 मिळते, त्यामुळे कोणताही होस्ट टनेलवर सामायिक सबनेट गृहीत धरत नाही आणि गरज नसलेल्या ठिकाणी शेजारी शोध चालत नाही। भूमिका वेगळ्या ठेवा आणि संस्थेच्या पत्ता योजनेत नोंदवा, जेणेकरून पुढील साइट ब्लॉक पुन्हा वापरणार नाही।
प्रत्येक राउटरला एक टनेल पत्ता द्या
प्रत्येक राउटरसाठी एक /128 नेमून द्या आणि कार्यरत हबच्या विद्यमान की आणि एंडपॉइंट ठेवा। खालील तीन मूल्ये फक्त होस्ट भागात वेगळी आहेत।
Hub: Address = fd7c:2e91:4a00:ff00::1/128
Site A: Address = fd7c:2e91:4a00:ff00::2/128
Site B: Address = fd7c:2e91:4a00:ff00::3/128
हा /128 त्या इंटरफेसला नेमून दिलेला एकमेव पत्ता वर्णन करतो। पीअर किती गंतव्यांकडे रूट करू शकतो हे तो सांगत नाही, कारण पोहोच इंटरफेस प्रीफिक्समध्ये नाही तर AllowedIPs मध्ये व्यक्त होते।
प्रत्येक साइट राउटरला त्याच्या LAN ब्लॉकमध्ये पत्ता आणि तो वितरित करण्याचा मार्गही लागतो, सामान्यतः SLAAC साठी राउटर जाहिराती। WireGuard त्या जाहिराती तुमच्यावतीने पाठवत नाही आणि दोन LAN जोडत नाही। साइट राउटर दोन्ही दिशांनी राउटर आहे।
सबनेटची मालकी AllowedIPs मध्ये ठेवा
साइट A साठी हबची पीअर नोंद A चा टनेल पत्ता आणि A चे LAN हिची मालक आहे, आणि तीच जोडी संपूर्ण मालकी विधान आहे। त्या पीअर विभागात दुसरे काहीही साइटचे वर्णन करण्याची गरज नाही।
AllowedIPs = fd7c:2e91:4a00:ff00::2/128, fd7c:2e91:4a00:10::/64
साइट B ची पीअर नोंद जुळणाऱ्या जोडीची मालक आहे, आणि येथे सममिती संक्षिप्ततेपेक्षा जास्त महत्त्वाची आहे। दोन्ही ओळी एकत्र वाचा आणि मालकीची विभागणी एका दृष्टिक्षेपात दिसते।
AllowedIPs = fd7c:2e91:4a00:ff00::3/128, fd7c:2e91:4a00:20::/64
हे दोन वेगळे पीअर विभाग आहेत, एका पीअरसाठी स्पर्धा करणाऱ्या दोन याद्या नाहीत। WireGuard AllowedIPs दोन्ही दिशांनी वापरतो: बाहेर जाणाऱ्या गंतव्यासाठी पीअर निवडतो, आणि ज्या पॅकेटचा स्रोत त्याला डिक्रिप्ट करणाऱ्या पीअरला नेमलेल्या श्रेणीशी जुळत नाही ते स्वीकारत नाही। दोन्ही पीअरना संपूर्ण /48 दिल्यास ती दुसरी तपासणी बंद होईल आणि कोणती साइट कोणत्या ब्लॉकची मालक आहे हे अस्पष्ट होईल। हाच फरक चुकीच्या स्रोत पत्त्याला गुपचूप स्वीकारण्याऐवजी दिसू देण्याचे काम करतो।
प्रत्येक साइटला फक्त तिच्या हब पीअरमार्फत पोहोचण्यायोग्य गंतव्ये लागतात: साइट A हबचा पत्ता, साइट B चा टनेल पत्ता आणि B चे LAN सूचीबद्ध करते, आणि साइट B उलटा संच सूचीबद्ध करते। याद्या जाणीवपूर्वक असममित आहेत, कारण प्रत्येक राउटर टोपोलॉजीची वेगळी बाजू पाहतो। दोन्ही पत्ता योजनेतून लिहा, दुसऱ्या साइटच्या कॉन्फिगरेशनमधून नाही, कारण अशाच प्रकारे जुनी श्रेणी पुनर्क्रमांकनात टिकते।
wg-quick सह या श्रेणी रूटही तयार करतात। systemd-networkd किंवा हाताने सेटअपमध्ये समतुल्य रूट स्वतः जोडा; अन्यथा टनेल असे पॅकेट नेते जे कर्नेल कधीही त्यात पाठवत नाही।
फॉर्वर्डिंग पूर्ण करा आणि दोन्ही दिशा तपासा
हबवर आणि दोन्ही साइट राउटरवर IPv6 फॉर्वर्डिंग सक्षम करा, आणि फॉर्वर्ड धोरणात आवश्यक आंतर-साइट सेवांना परवानगी द्या। ICMPv6 Packet Too Big संदेश वापरण्यायोग्य ठेवा, कारण ते टाकून दिल्यास पथ MTU शोध तुटतो आणि अनुप्रयोग दोषांसारखे दिसणारे मोठ्या हस्तांतरणाचे अडथळे निर्माण होतात। फायरवॉल परवानगीशिवाय फॉर्वर्ड करणारा हब राउटिंग आणि टनेलमध्ये पॅकेट टाकून देतो। हा अयशस्वी मोड जाणून घेण्यासारखा आहे, कारण टनेल सुरू राहते आणि फक्त काही प्रवाह मरतात।
sysctl net.ipv6.conf.all.forwarding
ip -6 route
ping -6 -c 3 fd7c:2e91:4a00:20::1
साइट A च्या होस्टवरून साइट B च्या होस्टकडे आणि नंतर उलट्या दिशेने तपासा। हबच्या टनेल पत्त्यावर ping फक्त पहिली उडी तपासते आणि LAN रूट चुकीचे असतानाही यशस्वी होते। होस्ट-ते-होस्ट प्रवाहच योजना सिद्ध करतो।
बाहेरील WireGuard जोडणी IPv4 वर चालू शकते तर आंतर्गत रहदारी IPv6 असते, आणि हे स्वातंत्र्य स्थलांतरादरम्यान उपयुक्त आहे। नंतर जागतिक IPv6 इग्रेस जोडल्यास, पुरवठादाराचे वाटप, स्रोत पत्ता निवड आणि परतीचे राउटिंग नवीन रचना टप्पा म्हणून पुन्हा पाहा; वरील खाजगी योजना साइट-ते-साइट रहदारीसाठी वैध राहते।