हँडशेक पूर्ण होतो, wg show अलीकडील ट्रान्सफरची माहिती देतो, आणि सर्व्हरचा टनेल पत्ता पिंगला उत्तर देतो। मात्र सर्व्हरच्या LAN वरील होस्ट उत्तर देत नाही। तीन अटी एकाच वेळी पूर्ण व्हायला हव्यात: क्लायंटने LAN प्रीफिक्स टनेलमध्ये राउट करायला हवे, सर्व्हरने पॅकेट फॉर्वर्ड करायला हवेत, आणि उत्तराला परतीचा मार्ग हवा। तीनपैकी एक नसल्यास लक्षण तेच राहते।

AllowedIPs एकाच वेळी प्रवेश सूची आणि राउटिंग तक्ता आहे

क्लायंटवर, AllowedIPs सूची त्या पीअरला काय पाठवता येते आणि WireGuard कोणते राउट इन्स्टॉल करतो हे दोन्ही ठरवते। फक्त सर्व्हरचा टनेल पत्ता सूचीबद्ध करणारी पीअर नोंद एक होस्ट राउट इन्स्टॉल करते, त्यामुळे LAN ची गंतव्ये कधीही टनेलमध्ये जात नाहीत। LAN प्रीफिक्स जोडणे ही पहिली तपासायची गोष्ट आहे, आणि कॉपी केलेल्या कॉन्फिगरेशननंतर सर्वाधिक सुटणारा बदलही तोच आहे। डीफॉल्ट राउटपर्यंत वाढवलेला पीअर वेगळी रचना आहे, आणि तो क्लायंटचा इंटरनेट ट्रॅफिकही हलवेल।

होस्ट राउट आणि LAN प्रीफिक्स स्वतंत्र नोंदी म्हणून ठेवा। ऑफिसमध्ये दोन सबनेट असल्यास दोन्ही सूचीत येतात, आणि सुटणारा दुसरा प्रीफिक्स पूर्ण नसून निवडक वाटणारे अपयश निर्माण करतो।

[Peer]
PublicKey = <server public key>
Endpoint = vpn.example.net:51820
AllowedIPs = 10.66.0.1/32, 192.168.50.0/24

फॉर्वर्डिंग आणि भाषांतर सर्व्हरवरच असावे

सर्व्हरला IP फॉर्वर्डिंग सुरू, टनेलमधून येणारा ट्रॅफिक स्वीकारणारा फॉर्वर्ड नियम, आणि त्याच्या LAN इंटरफेसकडे जाणारा भाषांतर नियम हवा। हे भाषांतरच ऑफिस नेटवर्कवरील प्रत्येक होस्टला स्पर्श न करता रचना काम करू देते। मग उत्तरे LAN ने कधीही ऐकलेल्या नसलेल्या पत्त्यावर नाही, तर सर्व्हरवर परत येतात। ते नसल्यास प्रत्येक होस्टला टनेल सबनेटसाठी राउट आणि ते परवानगी देणारा फायरवॉल नियम हवा, जो दुसऱ्याच्या व्यवस्थापित नेटवर्कवर क्वचितच स्वीकार्य असतो।

sysctl -w net.ipv4.ip_forward=1
iptables -A FORWARD -i wg0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

हाताने जोडलेले नियम रीबूटवर नाहीसे होतात, म्हणून सर्व्हर कॉन्फिगरेशनमधील hook कमांडने ते इंटरफेसला बांधा। जो नियमसंच त्याच्या इंटरफेसपेक्षा जास्त जगतो, त्यामुळेच मशीन आता अस्तित्वात नसलेल्या टनेलसाठी ट्रॅफिकचे भाषांतर करू लागते।

LAN हलले पण नियम हलला नाही

ऑफिस सबनेटचे पुनर्क्रमांकन करणारा राउटर बदलणे हे या अपयशाचे उत्कृष्ट उदाहरण आहे। टनेल सुरू राहते, हँडशेक ताजा राहतो, आणि सर्व्हरच्या मागे काहीही उत्तर देत नाही, कारण भाषांतर नियम अजूनही जुन्या पत्त्याचे नाव घेतो। इन्स्टॉलर स्क्रिप्ट सहसा सर्व्हरचा LAN पत्ता POSTROUTING नियमात बसवतात, आणि पुनर्क्रमांकनानंतर तो पत्ता कोणत्याही इंटरफेसवर नसतो। मग पॅकेट उत्तर देऊ न शकणाऱ्या गंतव्याकडे पुन्हा लिहिले जातात।

iptables -t nat -n -L POSTROUTING
ip -br addr show

दोन्ही आउटपुटची तुलना करा। इंटरफेस सूचीत न दिसणारे भाषांतर लक्ष्य हाच बग आहे, आणि एकदा पाहिल्यानंतर ते दुरुस्त करणे एका ओळीचा बदल आहे। नियम WireGuard कॉन्फिगरेशनमध्ये नसून तयार केलेल्या unit मध्ये असू शकतो, म्हणून संपादनानंतर तो unit पुन्हा लोड करा आणि पुढील बूट तुमचा बदल पुन्हा लिहीत नाही याची खात्री करा।

NAT मागील दोन साइटांना भेटायला जागा हवी

जेव्हा कोणताही पक्ष आत येणारी कनेक्शन स्वीकारत नाही, तेव्हा व्यावहारिक उत्तर म्हणजे सार्वजनिक पत्ता आणि दोन WireGuard इंटरफेस असलेला छोटा होस्ट। प्रत्येक साइट बाहेरून जोडते, मधला होस्ट प्रत्येक पीअरचे LAN आपल्या AllowedIPs, म्हणजे आपल्या सूचीत, सूचीबद्ध करतो, आणि फॉर्वर्डिंग दोन्ही टनेलमध्ये पॅकेट नेते। कोणत्याही साइटच्या फायरवॉलमध्ये काहीही बदलायची गरज नाही, म्हणूनच ही रचना सहज पसरते।

साइटांमधील राउटिंग मूळ स्रोत पत्ते ठेवते आणि त्यामुळे प्रति-होस्ट लॉगिंग अर्थपूर्ण ठेवते। दोन्ही LAN एकमेकांवर आच्छादतात तेव्हा मधल्या होस्टवर भाषांतर करणे सोपे आहे, पण लॉगमध्ये स्रोताची ओळख गमावण्याच्या किमतीत। निवडण्यापूर्वी कोणता गुणधर्म महत्त्वाचा आहे ते ठरवा।

चार तपासण्यांनी स्तर वेगळे करा

तीन गोष्टी बदलून आशा ठेवण्याऐवजी प्रत्येक स्तरासाठी एक तपासणी करा। पहिली प्रत्येक पीअरसाठी हँडशेकचे वय आणि काउंटर दाखवते। दुसरी क्लायंट ते गंतव्य खरोखर टनेलमध्ये राउट करतो का हे दाखवते। तिसरी आणि चौथी विनंती पोहोचली का आणि पोहोचल्यानंतर कोणत्या तरी धोरणाने ती टाकून दिली का हे सांगते।

wg show
ip route get 192.168.50.20
tcpdump -ni wg0 icmp
iptables -vnL FORWARD --line-numbers

पोहोचूनही उत्तर न मिळणारी विनंती उत्तराच्या मार्गाकडे किंवा LAN होस्टकडे इशारा करते। कधीही न पोहोचणारी विनंती AllowedIPs किंवा क्लायंटच्या राउटकडे इशारा करते। या दोन निकालांसाठी वेगवेगळी दुरुस्ती हवी, आणि कॅप्चरच त्या वेगळ्या करते।

संबंधित लेख