दुई स्वस्थ VPN एक्जिट, पहिले नै चलिरहेको एउटा लामो अपलोड, र अर्को जडानले अर्को टनेल प्रयोग गर्नुपर्ने आवश्यकता। यसलाई पूरा गर्ने दुई तरिका छन्, र तीमध्ये एउटा मात्र चलिरहेको गेटवेमा सुरक्षित छ। पूर्वनिर्धारित रुट बदल्दा अपलोडसँग सम्बन्धित प्याकेटसमेत हरेक प्याकेट सर्छ। योजनाबद्ध ड्रेनले नयाँ जडानका लागि छनोट बदल्छ र ट्र्याक गरिएका प्रवाहहरूलाई तिनीहरू सुरु भएको बाटोमै राख्छ।

एक्जिट बदल्ने दुई तरिका

रुट स्व्याप एउटा मात्र कमाण्ड हो र सेकेन्डभरमा फर्काउन सकिन्छ, त्यसैले घटनाको समयमा यो प्रयोग गरिन्छ। यो भेदभावरहित पनि छ: विद्यमान अपलोडका प्याकेट अचानक अर्को टनेलबाट बाहिरिन्छन्, फरक सार्वजनिक स्रोत ठेगाना र छुट्टै अनुवाद स्थितिसहित।

यदि टाढाको छेउले स्रोत ठेगानाअनुसार प्रवाह ट्र्याक गर्छ भने अपलोड चिनिन छोड्न सक्छ। ड्रेनले प्रत्येक जडानका लागि एकपटक निर्णय गरेर त्यसलाई सुरक्षित राखेर यसबाट बच्छ, त्यसैले पुरानो अपलोड सकिएसम्म आफ्नो एक्जिट कायम राख्छ। यही यो अभ्यासको सम्पूर्ण मूल्य हो: टाढाको छेउले व्याख्या गर्नुपर्ने कुनै परिवर्तन देख्दैन। यसले पहिले नै चिनेको जडानसँग मिल्ने प्याकेट प्राप्त गरिरहन्छ।

मूल्य जटिलता हो: दुई राउटिङ तालिका, सही हुकमा चल्ने वर्गीकरणकर्ता, र मेसिनमा तिनलाई प्रयोग गर्ने अरू सबैसँग समन्वय गर्नुपर्ने मार्कहरू।

प्रत्येक एक्जिटलाई आफ्नै तालिका दिनुहोस्

प्रत्येक एक्जिटका लागि एउटा राउटिङ तालिका र दुई विकल्पका लागि छुट्टाछुट्टै मार्क मान वा बिट आरक्षित गर्नुहोस्। प्रत्येक तालिकालाई नाम मात्र होइन, आफ्नो भूमिकाअनुसारको रुट चाहिन्छ, र हराएको अवस्थाका लागि जानाजान विफलताको नतिजा चाहिन्छ। मुख्य तालिकामा चुपचाप खस्ने खाली तालिका — कसैले नछानेको एक्जिटबाट ट्राफिक यसरी बाहिरिन्छ।

ip rule add fwmark 0x10/0x10 table 101
ip rule add fwmark 0x20/0x20 table 102
ip route add default via 192.0.2.1 dev wg-a table 101
ip route add default via 198.51.100.1 dev wg-b table 102

प्रत्येक तालिकाको अन्त्यमा blackhole रुट थप्नुहोस्, ताकि मेल नखोज्ने खोजीले तपाईंले नछानेको पूर्वनिर्धारितमा भाग्नुको सट्टा चर्को रूपमा असफल होस्।

एकपटक छान्नुहोस्, पहिलो प्याकेटमा

जडान ट्र्याकिङ भएपछि र महत्त्वपूर्ण रुट खोजीअघि वर्गीकरण गर्नुहोस्। नयाँ, अवर्गीकृत LAN जडानका लागि एक्जिट छान्नुहोस् र त्यसलाई जडान स्थितिमा सुरक्षित गर्नुहोस्। पछिका प्याकेटमा, नीति राउटिङले पढ्ने प्याकेट मार्कमा सुरक्षित मान पुनर्स्थापित गर्नुहोस्।

सूक्ष्म भाग भनेको नयाँ भन्नाले के बुझिन्छ। जवाफ देखिनुअघि प्रारम्भिक प्याकेट र पुनःप्रसारणका लागि conntrack ले अझै NEW रिपोर्ट गर्न सक्छ, त्यसैले त्यही स्थितिमा मात्र भर पर्ने वर्गीकरणकर्ताले पहिले गरेको छनोट मेटाउन सक्छ। एक तोक्नुअघि जडानका लागि कुनै एक्जिट सुरक्षित नभएको जाँच गर्नुहोस्।

nftables ले प्याकेट र जडान मार्क अलग राख्छ, र मेटाइन्फर्मेसन मार्गदर्शिका ले तिनीहरूबीचको स्पष्ट प्रतिलिपि दस्तावेज गर्छ। जडान मार्क आफैंले तपाईंको नियमसँग मिल्ने प्याकेट मार्क बन्दैन, र ध्यानपूर्वक लेखिएको वर्गीकरणकर्ताको कुनै प्रभाव नहुने सबैभन्दा सामान्य कारण यही हो।

पुनर्स्थापनालाई तपाईंले भन्न खोजेको दिशा र ट्राफिकमा सीमित गर्नुहोस्। फर्कने प्याकेटमा इन्टरनेट-एक्जिट मार्क लगाउँदा जवाफहरू LANतर्फ नगई एक्जिटतर्फ जान सक्छन्, र लक्षण फायरवाल समस्याजस्तो देखिने एकतर्फी जडान हो। फायरवाल नियम छुनुअघि जवाफको बाटो पढ्नुहोस्, किनकि प्याकेट रुट भइरहेको छ, पठाउनेकहाँ फर्किएको मात्र छैन।

ड्रेनका चार चरण

  1. A लाई नछुई B तयार गर्नुहोस्: राउटिङ, फर्वार्डिङ, अधिकार, NAT र फर्कने बाटो। गेटवेको विद्यमान कन्फिगरेसन मालिकमार्फत त्यसको तालिका र छनोट नीति स्थापना गर्नुहोस्।

  2. वर्गीकरणकर्ता बदल्नुहोस् ताकि नयाँ, अवर्गीकृत जडानहरूले B छानून्, सुरक्षित छनोटहरू जोगाइराख्दै। आणविक nftables कारोबारले पुरानो स्थिति सफा गर्नुपर्ने झ्याल टार्छ।

  3. A का प्रवाह सकिएसम्म A खुला राख्नुहोस्। त्यसको इन्टरफेस, तालिका, टाढाको एक्जिट र NAT म्यापिङ अझै ती प्रवाहको भाग हुन्, र NAT नियम सम्पादन गर्दा पहिले नै रहेका बाइन्डिङ पुनः बन्छन् भन्ने छैन।

  4. ड्रेनको सर्त पूरा भएपछि A अवकाश दिनुहोस्, एउटा शान्त अन्तरालले होइन, जडान स्थिति र अनुप्रयोगको व्यवहारले निर्धारण गरेको।

ड्रेनले के वाचा गर्न सक्दैन

ब्राउजर अनुरोध नयाँ यातायात जडान होइन; पूलिङले पुरानैमा अनुरोध पठाइरहन्छ। यसको विपरीत, UDP प्रवाह conntrackबाट पुरानो हुन सक्छ र पछिको प्याकेट नयाँ रूपमा वर्गीकृत हुन्छ। ड्रेनले ट्र्याक गरिएका प्रवाहलाई पछ्याउँछ, अनुप्रयोगको सत्र-कल्पनालाई होइन।

A आफ्ना प्रवाह सकिनुअघि असफल भए, सुरक्षित मार्कले तिनलाई बचाउँदैन। तिनीहरू B मार्फत फेरि जोडिन्छन्, वा जोडिँदैनन्। योजनाबद्ध ड्रेनले मूल बाटो स्वस्थ रहेसम्म निरन्तरता किन्छ; यो स्वतन्त्र एक्जिटबीच स्थितिको प्रतिलिपि होइन।

दुवै आधा जाँच्नुहोस्

परिवर्तनअघि लामो समयको अनुमतिप्राप्त जडान र पछि साँच्चै नयाँ सुरु गर्नुहोस्। प्रत्येकले कुन टनेल प्रयोग गर्छ र टाढाको छेउले कुन सार्वजनिक स्रोत ठेगाना देख्छ पुष्टि गर्नुहोस्, त्यसपछि फर्कने ट्राफिक फर्कन्छ कि जाँच्नुहोस्।

नयाँ छनोट देखाउन conntrack तालिका खाली नगर्नुहोस्। त्यसले ड्रेनले जोगाउनुपर्ने स्थिति नै नष्ट गर्छ, र नियन्त्रित स्थानान्तरणलाई सफा देखिने परीक्षणसहित अवरोधमा बदल्छ।

सम्बन्धित लेखहरू