OpenVPN सुरुङबाट IPv6: घरायसी राउटरको चरणबद्ध समीक्षा
सुरुङले राउटरले रुट गर्न नसक्ने प्रिफिक्स दिँदा IPv6 मर्छ वा चुहिन्छ। ग्राहक, पूल, फर्वार्डिङ, प्रोक्सी NDP र फर्कने बाटो क्रममा हेर्नुहोस्।
ल्यापटपमा IPv6 ठेगाना छ, सुरुङ IPv4 माथि चालु छ, तैपनि हरेक IPv6 परीक्षण असफल हुन्छ। वा अझ नराम्रो: परीक्षण सफल हुन्छ र ट्राफिक सुरुङमा कहिल्यै नपसी ISP को बाटोबाट बाहिर जान्छ। दुवै नतिजा एउटै हराएको निर्णयमा फर्कन्छन्: कसैले राउटरलाई ग्राहकतिर रुट गर्न सकिने प्रिफिक्स दिएन। ग्राहकबाट बाहिरतिर बाटो हिँड्दा कुन भाग हराएको छ भन्ने थाहा हुन्छ।
ग्राहक जहाँ छ त्यहीँबाट सुरु गर्नुहोस्
सर्भर छुनुअघि ग्राहक हेर्नुहोस्। ip -6 addr ले पूलबाट सुरुङ ठेगाना देखाउनुपर्छ, र ip -6 route ले सुरुङ यन्त्रतिर सङ्केत गर्ने धकेलिएको प्रिफिक्स देखाउनुपर्छ। ठेगाना छ तर बाटो छैन भने धकेलाइ हराएको छ वा ग्राहकले बेवास्ता गरेको छ। दुवै छैनन् भने सर्भरले केही पनि बाँडेको छैन।
त्यसपछि ग्राहकले बाहिरी संसारबारे के सोच्छ त्यो जाँच्नुहोस्। सुरुङमाथिको पूर्वनिर्धारित बाटोले सबै IPv6 ट्राफिक दाबी गर्छ, जबकि 2000::/3 का लागि बाटोले मात्र विश्वव्यापी युनिकास्ट दाबी गर्छ। दुवै सही हुन सक्छन्, र तिनीहरू चुहावटबारे फरक प्रश्नको जवाफ दिन्छन्।
कुनै पनि IPv6 पूर्वनिर्धारित नभएको ग्राहक सुरुङ आफैं पूर्ण स्वस्थ हुँदा पनि हरेक सार्वजनिक परीक्षणमा असफल हुन्छ। त्यो नीतिको खाली ठाउँ हो, बिग्रेको सुरुङ होइन।
सर्भरले साँच्चै रुट गर्न सक्ने पूल जाँच्नुहोस्
सर्भरले आफैंले साँच्चै नियन्त्रण गर्ने प्रिफिक्सबाट मात्र बाँड्न सक्छ। ISP ले /56 प्रत्यायोजन गर्छ भने सुरुङका लागि एउटा /64 राख्नुहोस् र बाँकी LAN का लागि छोड्नुहोस्। जहाँ ISP ले WAN मा एउटा मात्र /64 दिन्छ र अरू केही रुट गर्दैन, त्यहाँ LAN प्रिफिक्सलाई यथावत् राख्नुहोस् र सुरुङलाई अद्वितीय स्थानीय दायरा दिनुहोस्, ग्राहकसँग विश्वव्यापी निकास नहुने कुरा स्वीकार गर्दै।
पूल र धकेलाइ सँगै जान्छन्। server-ipv6 2001:db8:80:10::/64 ले ठेगाना बाँड्छ, र push "route-ipv6 2000::/3" ले ग्राहकलाई सुरुङमा के पठाउने भनी बताउँछ। 2000::/3 धकेल्दा विश्वव्यापी युनिकास्ट ढाकिन्छ र link-local तथा multicast दायरा सुरुङबाहिर रहन्छन्।
रोजिएको प्रिफिक्स तैनाथी अभिलेखमा लेख्नुहोस्। अर्को पटक ISP हस्तान्तरण बदल्नेले सुरुङले पहिले नै कुन /64 ओगटेको छ भनी जान्नुपर्छ।
दोस्रो परिवारका लागि फर्वार्डिङ सुरु गर्नुहोस्
IPv4 फर्वार्डिङको अर्थ IPv6 फर्वार्डिङ होइन। net.ipv6.conf.all.forwarding=1 सेट गर्नुहोस् र IPv4 FORWARD नीतिले पहिले नै अनुमति दिने सबै प्रतिबिम्बित गर्नुहोस्। जसको FORWARD शृङ्खला पूर्वनिर्धारित रूपमा खसाल्छ त्यस्तो राउटरमा नियमको समूह हराउनु मृत सुरुङजस्तै देखिन्छ।
ह्यान्डशेक सफल हुन्छ, ग्राहकले ठेगाना पाउँछ, र फर्केर केही आउँदैन। दुवै दिशा र WAN भागका लागि नियम थप्नुहोस्, किनकि LAN सम्म पुगेर इन्टरनेटसम्म नपुग्ने सुरुङ तेस्रो परीक्षणमा असफल हुन्छ। असफल प्रयासपछि शृङ्खलाका काउन्टर हेर्नुहोस्, किनकि कहिल्यै नमिलेको नियम मिलेर खसालेको नियमभन्दा फरक समस्या हो।
ip6tables -A FORWARD -i br0 -o tun0 -j ACCEPT
ip6tables -A FORWARD -i tun0 -o br0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -i tun0 -o wan0 -j ACCEPT
एउटा साइड इफेक्टले अन्तमा सुरुङलाई दोष दिनेहरूलाई समात्छ। फर्वार्डिङ सुरु गर्दा कर्नेलले Router Advertisement मार्फत ठेगाना कन्फिगरेसन छोड्छ, अन्यथा नभनेसम्म, र त्यसरी सिकेको पूर्वनिर्धारित बाटो त्यसैसँग हराउँछ। या त WAN इन्टरफेसमा स्पष्ट पूर्वनिर्धारित बाटो पिन गर्नुहोस्, वा त्यहाँ जानाजान accept_ra लाई 2 मा राख्नुहोस्। कुनै पनि परिवर्तनपछि ग्राहक फेरि परीक्षण गर्नुअघि राउटरसँग अझै उपयोगी IPv6 बाटो बाहिर छ भनी पुष्टि गर्नुहोस्।
माथिल्लो पक्षले रुट नगर्दा छिमेकी खोजको जवाफ दिनुहोस्
माथिल्लो पक्षका उपकरणले कहिलेकाहीँ प्रत्यायोजित /64 लाई आफ्नै लिङ्कको ठान्छन् र VPN बक्सतिर कुनै उप-प्रिफिक्स रुट गर्न अस्वीकार गर्छन्। त्यस्तो हुँदा कुनै कुराले प्रत्येक ग्राहक ठेगानाका लागि छुट्टाछुट्टै छिमेकी अनुरोधको जवाफ दिनुपर्छ।
OpenVPN ले बाँडिएको ठेगाना client-connect हुकमा खोल्छ, त्यसैले प्रविष्टिहरू हातले राखिएको सूचीको सट्टा साँचो पूललाई पछ्याउन सक्छन्। हुकले ip -6 neigh add proxy $ifconfig_pool_remote_ip6 dev eth0 थप्छ, र मिल्ने client-disconnect हुकले त्यो हटाउँछ। नहटाएमा प्रोक्सी तालिका पुरानो हुन्छ र पछिको ग्राहकले कहिल्यै नपाएको ठेगानाको प्रविष्टि उत्तराधिकारमा पाउन सक्छ। ip -6 neigh show proxy ले अवस्था पुष्टि गर्नुहोस्।
प्रोक्सीलाई अस्थायी उपाय मान्नुहोस्। सुरुङको /64 का लागि राउटरतिर देखाइएको स्थिर बाटोले ग्राहक परिवर्तन सहन्छ र विशेषाधिकार प्राप्त शेल हुक आवश्यक पर्दैन।
बाहिरतिरको बाटो पछ्याउनुहोस्, एक-एक हप
तीन चरणमा बाहिरतिर परीक्षण गर्नुहोस्: पहिले राउटरको सुरुङ ठेगाना, त्यसपछि LAN होस्ट, र तेस्रोमा traceroute6 मार्फत सार्वजनिक गन्तव्य। पूल पहिलोले प्रमाणित गर्छ, फर्वार्डिङ र LAN फायरवाल दोस्रोले, र माथिल्लो पक्षबाट फर्कने बाटो तेस्रोले। हरेक असफलताले पूरै डिजाइन फेरि खोल्नुको सट्टा खोजलाई एउटै यन्त्रमा सीमित गर्छ।
सुरुङको MTU हेर्नुहोस्, किनकि बाटोका IPv6 राउटरहरू तपाईंको तर्फबाट टुक्र्याउँदैनन्। धेरै ठूलो MTU सफा असफलताको सट्टा packet-too-big त्रुटि र रोकिएको TLS का रूपमा देखिन्छ। यसलाई स्पष्ट रूपमा सेट गर्नुहोस् र सीमानजिकको पेलोडसँग परीक्षण गर्नुहोस्।