बहु-राउटर Pi VPN: प्रत्येक रुट निर्णय गर्ने यन्त्रमा राख्नुहोस्
तल्लो राउटरले दोस्रो क्लाइन्ट सबनेट थप्छ, र चार यन्त्रहरूमध्ये प्रत्येकसँग एउटा निर्णय हुन्छ। रुटहरू राख्नुहोस्, स्रोत जाँच्नुहोस्, त्यसपछि वास्तविक क्लाइन्टबाट परीक्षण गर्नुहोस्।
Pi पछाडि Wi-Fi बाक्स राख्दा एउटा राउटिङ निर्णय चार हुन्छ, र चारै एउटै यन्त्रमा लिइयो भने योजना भाँचिन्छ। पहिलो प्रश्न कुन रुट थप्ने होइन। नयाँ बाक्सले ब्रिज गर्छ कि रुट गर्छ भन्ने हो, किनकि त्यो उत्तरले कति सबनेट छन् र कुन यन्त्रहरूले तिनका बारेमा सिक्नुपर्छ भन्ने निर्धारण गर्छ। पहिले जडान मोडेल छान्नुहोस्; प्रत्येक रुट त्यसैबाट आउँछ।
ब्रिज कि रुट: संख्या निर्धारण गर्ने छनोट
ब्रिजले नयाँ क्लाइन्टहरूलाई Pi पहिले नै सेवा गर्दै आएको त्यही सबनेटमा राख्छ। एउटा सबनेट, एउटा DHCP अधिकार, र रुट गर्न कुनै हस्तान्तरण छैन। यो सरल व्यवस्था हो र अलग क्लाइन्ट सञ्जाल कहिल्यै आवश्यकता नभएको अवस्थामा सही हो। रुट गरिएको लिङ्क फरक डिजाइन हो: बाक्सले आफ्नै सबनेट राख्छ, र त्यो प्रिफिक्स ट्राफिक जहाँ जान्छ त्यहाँ सबैतिर बोक्नुपर्छ।
यो योजनाको बाँकी भागले तल्लो राउटर राख्छ र क्लाइन्ट स्रोत ठेगानाहरू जोगाउँछ। लक्ष्य एउटा निजी VPN सञ्जाल हो, पूर्ण इन्टरनेट एक्जिट होइन। ठेगानाअघि मोडेल लेख्नुहोस्, किनकि तलको सूची रुट गरिएको जडानको एउटा उदाहरण मात्र हो।
client subnet 10.41.0.0/24
client gateway 10.41.0.1
router-to-Pi link 192.168.71.2
Pi on that link 192.168.71.1
private target 10.72.9.0/24
कसले के निर्णय गर्छ
| Decision owner | Entry that encodes the decision | Failure when the entry is missing |
|---|---|---|
| Pi VPN host | Return route for 10.41.0.0/24 via 192.168.71.2, and a tunnel route for 10.72.9.0/24 | Replies to downstream clients die at the Pi |
| Owner of the remote network | A path for 10.41.0.0/24 over the permitted tunnel | Replies stop at the first unaware hop |
| LAN router behind the Pi | Specific route for 10.72.9.0/24 via 192.168.71.1, or a suitable default | Clients never send private traffic to the Pi |
| Client machine | Default via 10.41.0.1, or a specific entry for 10.72.9.0/24 | The private network is unreachable from the client |
प्रत्येक यन्त्रले एउटा निर्णय लिन्छ, र कसैले पनि अर्काको निर्णय उसको तर्फबाट लिन सक्दैन। Pi लाई एउटा होइन, दुई प्रविष्टि चाहिन्छ, र फर्कने बाटो नै मानिसहरूले बिर्सने हो। अगाडि पठाइएको ट्राफिक निजी सञ्जालसम्म ठीक पुग्छ र त्यसपछि फर्कने बाटोमा मर्छ, किनकि 10.41.0.0/24 कहाँ बस्छ Pi लाई थाहा छैन। त्यो फायरवाल समस्या जस्तो देखिन्छ र वास्तवमा हराएको रुट हो।
टाढाको पक्षलाई पनि आफ्नै रुट चाहिन्छ। यदि टाढाको छेउको सेवालाई 10.41.0.0/24 तपाईंको टनेलबाट पुग्न सकिन्छ भन्ने थाहा छैन भने, जवाफहरू जवाफ नभएको पहिलो हपमा रोकिन्छन्। प्याकेट फिल्टर पढ्नुअघि दुवै दिशा थप्नुहोस्।
अर्को हपहरू जडानबाट आउँछन्
अर्को हप यन्त्रले साँच्चै पुग्न सक्ने सञ्जालको ठेगाना हुनुपर्छ। VPN पियरको सार्वजनिक ठेगाना निजी सबनेटका लागि अर्को हप होइन, र टाढाको सेवा सञ्जाल कुनै हिसाबले अर्को हप होइन। पुग्न नसकिने गेटवेमा जाने रुट सूचीमा सही देखिन्छ र प्रत्येक प्याकेट खसाल्छ। गन्तव्यलाई दोष दिनुअघि गेटवेले जवाफ दिन्छ कि जाँच्नुहोस्।
Pi को बाहिरी VPN पियरलाई यसको आफ्नै अन्डरले रुटमार्फत पुग्न सकिने राख्नुहोस्। त्यो प्रविष्टि पेलोड रुटहरूबाट अलग छ, र तिनलाई मिसाउँदा बाटो परिवर्तनपछि फेरि स्थापना गर्न नसकिने टनेल दिन्छ।
स्ट्याटिक रुटको कागजात ले प्रत्येक प्लेटफर्मले आफ्ना मेनुलाई फरक नाम दिए पनि गन्तव्य र गेटवेबीचको भिन्नता स्पष्ट पार्छ। अर्को विक्रेताको स्क्रिन कपी गर्नुको सट्टा तपाईंअगाडिको यन्त्रको कागजात पढ्नुहोस्। तलका आदेशहरूले Linux मा प्रविष्टिहरूको आकार देखाउँछन्।
# on the Pi
ip route add 10.41.0.0/24 via 192.168.71.2
ip route add 10.72.9.0/24 dev tun0
# on the downstream router
ip route add 10.72.9.0/24 via 192.168.71.1
अनुवादले स्रोतसँग के गर्छ
यदि तल्लो राउटरले पहिले नै आफ्ना क्लाइन्टहरूलाई ट्रान्जिट ठेगानामा अनुवाद गर्छ भने, Pi ले प्रत्येक क्लाइन्टको आफ्नै ठेगानाको सट्टा एउटा अनुवादित स्रोत देख्छ। यो माथिको स्रोत जोगाउने डिजाइनभन्दा फरक हो। यसले स्रोत-आधारित नीति, लगिङ र कुन पक्षले जडान सुरु गर्न सक्छ भन्ने बदल्छ। दुवै डिजाइन काम गर्छन्; तिनले फरक प्रश्नको जवाफ दिन्छन्।
जब माथिल्लो VPN सेवाले क्लाइन्ट प्रिफिक्स फर्काएर रुट गर्न अस्वीकार गर्छ, तब Pi को टनेल इग्रेसमा साँघुरो अनुवाद वैध अस्थायी उपाय हुन सक्छ। हराएको रुट अनावश्यक थियो भन्ने यो प्रमाण होइन। टाढाको सञ्जालले वास्तवमा कुन ठेगाना देख्छ र कुन फर्कने बाटो निस्कन्छ लेख्नुहोस्।
रुट छनोट, फर्वार्डिङ अनुमति र स्रोत अनुवाद तीन अलग काम रहन्छन्। एउटा वायर्ड क्लाइन्ट चल्छ भनेर साझा NAT चेन फ्लस गर्नु वा हरेक इन्टरफेसमा अनुमति दिनु नै चल्ने परीक्षणलाई खुला फर्वार्डर बनाउने तरिका हो।
क्लाइन्ट मेसिनबाट यो प्रमाणित गर्नुहोस्
तल्लो LAN को मेसिनबाट अनुरोध पठाउनुहोस्, त्यसपछि त्यसको स्रोत बाहिर र फर्केर पछ्याउनुहोस्। Pi ले पठाएको ping ले कहिल्यै तल्लो फर्कने रुट प्रयोग गर्दैन, त्यसैले सफल ping देखिनेभन्दा कम प्रमाणित गर्छ। Pi को आफ्नै LAN को वायर्ड क्लाइन्टबाट दोस्रो परीक्षण थप्नुहोस् ताकि दुई बाटो तुलना गर्न सकियोस्। कुनै पनि यन्त्र रिबुट गरेपछि दुवै दोहोर्याउनुहोस्।
हातले थपिएका रुट र कहिल्यै सुरक्षित नगरिएका अनुवाद सँगै हराउँछन्। त्यसपछि त्यो जोडी अपूर्ण कामको सट्टा नयाँ खराबी जस्तो देखिन्छ।
जडान मोडेललाई रुट, अनुमति दिइएको निजी सेवा र कुनै पनि अनुवादसँग एउटै नोटमा सुरक्षित गर्नुहोस्। त्यही नोटले अर्को व्यक्तिलाई वायरलेस स्थानलाई राउटिङ नीतिको प्रश्न ठान्नबाट रोक्छ।