VPN चुहावट ठीक गर्न IPv6 बन्द गर्ने? बरु नीति तय गर्नुहोस्
लिङ्क-लोकल ठेगाना चुहावट होइन र विश्वव्यापी IPv6 मार्ग पनि होइन। पहिले रोक्ने, बोक्ने वा नछुने मध्ये छान्नुहोस्।
IPv6 दायराको एउटा ठेगाना परीक्षण पृष्ठमा देखिन्छ, सुरुङले स्पष्ट रूपमा त्यो बोकिरहेको छैन, र इन्टरनेटको सबैभन्दा लोकप्रिय सल्लाह IPv6 सबैतिर बन्द गर्नु हो। त्यो आदेशले प्यानललाई साँच्चै शान्त बनाउँछ। तर यसले पहुँच सञ्जाल निर्भर हुन सक्ने प्रोटोकल पनि हटाउँछ, र ठेगाना वास्तविक चुहावट थियो, लिङ्क-लोकल इन्टरफेस ठेगाना थियो, वा आफ्नो काम गरिरहेको रिजोल्भर थियो भन्ने कल्पना पनि तपाईंसँग छोड्दैन। सही नियन्त्रण तीन सर्तले निर्धारण गर्छन्, र तीमध्ये एउटा मात्र रोक्नेतर्फ लैजान्छ।
उपकरणले वास्तवमा के नाप्यो पहिचान गर्नुहोस्
सबैभन्दा सामान्य झुटो अलार्म लिङ्क-लोकल ठेगाना हो, जो fe80: बाट सुरु हुन्छ र IPv6 सक्षम हरेक इन्टरफेसमा हुन्छ, मेसिनले IPv6 मार्फत इन्टरनेट पुग्न सक्छ वा सक्दैन भन्ने फरक पर्दैन। यो इन्टरफेस सूची र केही अनुप्रयोग निदानमा देखिन्छ, र तपाईंको ट्राफिक मार्गबारे केही भन्दैन।
दोस्रो झुटो अलार्म fc00::/7 भित्रको अद्वितीय स्थानीय ठेगाना हो, जो सञ्जालभित्र प्रयोग हुने निजी दायरा हो। होस्टका सबै ठेगाना छाप्ने उपकरणले त्यसलाई सार्वजनिक ठेगानाको छेउमा खुसीसाथ सूचीबद्ध गर्नेछ। हतारमा पढ्ने जो कोहीले यसलाई चुहावट भन्छ, र त्यसपछि नभएको समस्यामा एक घण्टा बिताउँछ।
तेस्रो भनेको झुटो अलार्म नै होइन। सुरुङबाहिर इन्टरनेट पुग्ने विश्वव्यापी ठेगाना नै वास्तविक चुहावट हो, र केही निर्णय गर्नुअघि त्यो नाप्नु उचित हुन्छ:
ip -6 addr show scope global
ip -6 route show default
curl -6 -sS --max-time 6 https://ifconfig.co
यदि पहिलो आदेशले विश्वव्यापी ठेगाना छाप्छ र तेस्रोले सुरुङको नभएको सार्वजनिक IPv6 ठेगाना फर्काउँछ भने, सुरुङबाहिर तपाईंको वास्तविक मार्ग छ। यदि पहिलोले लिङ्क-लोकल प्रविष्टिबाहेक केही छाप्दैन भने, ठीक गर्नुपर्ने चुहावट कहिल्यै थिएन।
नियन्त्रण तीन सर्तले निर्धारण गर्छन्
निर्णय "IPv6 राम्रो" वा "IPv6 नराम्रो" होइन। निर्णय तपाईं तीन अवस्थामध्ये कुनमा हुनुहुन्छ भन्ने हो, र प्रत्येकको सही उत्तर फरक छ र गल्ती गरेमा लागत पनि फरक छ।
| Situation | Correct control | Cost if you disable IPv6 instead |
|---|---|---|
| Exit has no IPv6, host does | Block IPv6 deliberately in the tunnel policy | Same visible result, no documentation of intent |
| Exit carries IPv6, host leaks | Route IPv6 into the tunnel and verify | You lose IPv6 reachability entirely |
| Access network is IPv6-only | Change nothing; use the tunnel's IPv6 | Machine loses connectivity completely |
पहिलो पङ्क्ति मानिसहरूले सामान्यतया भन्न खोज्ने कुरा हो, र त्यो जायज छ। जसको निकासमा IPv6 समर्थन छैन त्यस क्लाइन्टले होस्टको आफ्नै IPv6 ट्राफिक चुपचाप बाहिर जान दिनु हुँदैन, किनकि त्यही अभिलेखित दोहोरो-स्ट्याक चुहावट हो। मुख्य कुरा यसलाई घोषित नीतिका रूपमा रोक्नु हो, कर्नेलमा प्रोटोकल बन्द गर्नु होइन। देखिने नतिजा उस्तै छ र पछि जाँच्न सकिने एउटा मात्र हो।
तेस्रो पङ्क्ति त्यो ठाउँ हो जहाँ सामान्य सल्लाह सक्रिय रूपमा हानिकारक बन्छ। मोबाइल अपरेटर र केही घरायसी जडानले IPv4 गन्तव्यका लागि अनुवादसहित IPv6-only सञ्जाल चलाउँछन्। त्यहाँ IPv6 हटाउनुभयो भने सञ्जालले दिने एकमात्र यातायात हटाउनुहुन्छ, जसले तपाईं डिबग गरिरहनुभएको भन्दा धेरै नराम्रो अवरोध ल्याउँछ।
यदि निकासमा IPv6 छैन भने जानाजान रोक्नुहोस्
क्लाइन्टको आफ्नै संयन्त्रलाई प्राथमिकता दिनुहोस्, किनकि त्यो सुरुङ उभिएको बेलासम्म ठ्याक्कै लागू हुन्छ र त्यो खस्दा फर्किन्छ। OpenVPN सँग यसका लागि विकल्प छ, र अन्य क्लाइन्टका लागि iptables सँग समान नियम छ:
block-ipv6
ip6tables -A OUTPUT -o eth0 -j REJECT --reject-with ipv6-port-unreachable
निर्देश प्रोफाइलमा रहन्छ; नियम त्यो फायरवालमा रहन्छ जुन तपाईं जाँच्न र हटाउन सक्नुहुन्छ। दुवै बन्द अवस्थामा असफल हुन्छन्, जो तपाईं चाहनुहुन्छ, र दुवै कन्फिगरेसन डिफमा देखिन्छन्, जो स्टार्टअप स्क्रिप्टमा गाडिएको कर्नेल sysctl देखिँदैन।
त्यो किन छ लेख्नुहोस्। टिप्पणी नभएको रोक्ने नियम IPv6 अरू केहीका लागि चाहिने अर्को व्यक्तिले हटाउँछ, र त्यसपछि चुहावट चुपचाप फर्किन्छ।
यदि निकासले IPv6 बोक्छ भने मार्ग बनाउनुहोस् र दुवै परिवार परीक्षण गर्नुहोस्
सर्भरले समर्थन गरेमा IPv6 बोक्नु राम्रो उत्तर हो, र त्यो धेरै कठिन छैन। सर्त यो हो कि सुरुङ इन्टरफेसमा त्यो परिवारको ठेगाना होस् र त्यसको पूर्वनिर्धारित मार्ग भौतिक इन्टरफेसबाट बाहिर नभई सुरुङभित्र तिर देखाओस्:
ip -6 route get 2606:4700:4700::1111
ip -6 route show default
curl -6 -sS --max-time 6 https://ifconfig.co
curl -4 -sS --max-time 6 https://ifconfig.co
मार्ग खोज नै निर्णायक परीक्षण हो: यदि त्यसले सुरुङ इन्टरफेसको नाम लिन्छ भने IPv6 ट्राफिक बोकिइरहेको छ। त्यसपछि दुई curl कलले प्रत्येक परिवारले के देख्छ भनी पुष्टि गर्छन्, र तिनको तुलना गर्नु नै दुवै मार्ग अब एउटै निकासबाट बाहिर जान्छन् भनी प्रमाणित गर्ने तरिका हो।
सफल जडानमै रोकिनु हुँदैन। सुरुङ फेरि जोड्नुहोस् र फेरि जाँच्नुहोस्, किनकि सर्भरले केवल सुरुको कन्फिगरेसनमा पठाएमा धकेलिएको IPv6 मार्ग पुनःस्थापनामा हराउन सक्छ। त्यसपछि एउटा बहिष्कृत गन्तव्य जाँच्नुहोस्, किनकि स्प्लिट-टनेल नियममा नै दुई परिवार सबैभन्दा धेरै फरक पर्छन्।
यदि पहुँच सञ्जाल IPv6 मात्र हो भने त्यसलाई नछुनुहोस्
केही सञ्जालले IPv6 मात्र दिन्छन् र उपकरणले अपरेटरको पक्षको अनुवाद संयन्त्रबाट IPv4 सेवासम्म पुग्ने अपेक्षा गर्छन्। यस्तो मेसिनमा IPv6 बन्द गर्नु सुरक्षा सुधार होइन; यसले जेसुकैसम्म पुग्ने एकमात्र मार्ग हटाउँछ। यो आफैंले सिर्जना गरेको अवरोध हो, कसैलाई पनि आवश्यक नभएको परीक्षण नतिजाका लागि।
यहाँ गल्ती गर्दाको लक्षण छुट्टै र अप्रिय हुन्छ: सुरुङ स्थापना हुँदैछ जस्तो देखिन्छ, नाम विश्लेषण चल्छ, र केही लोड हुँदैन। IPv6 परिवर्तनपछि यस्तो देखिएमा तुरुन्तै सेटिङ फर्काउनुहोस् र निदान अन्तै जारी राख्नुहोस्।
तपाईंले जे छान्नुभए पनि निर्णय प्रोफाइल वा फायरवालमा स्पष्ट राख्नुहोस्, निकासले वास्तवमा के समर्थन गर्छ त्यससँग जोड्नुहोस्, र RFC 7359 को दोहोरो-स्ट्याक छलफल ले वर्णन गर्ने दोहोरो-स्ट्याक व्यवहार नोट गर्नुहोस्। घोषित रोक नीति हो। बन्द गरिएको प्रोटोकल त्यस्तो उपाय हो जसको कोहीले लेखापरीक्षण गर्न सक्दैन, र परीक्षण पृष्ठबाट दुवै उस्तै देखिन्छन्।