VPN साइडकारका लागि किल स्विच: बाहिर निस्कँदा ट्राफिक रोक्नुहोस्
VPN कन्टेनरको नेमस्पेस साझा गर्नाले टनेल मर्दा एप रोकिँदैन। स्पष्ट एग्रेस नीति थप्नुहोस् र डिस्कनेक्ट मात्र होइन, पुनःसुरु पनि परीक्षण गर्नुहोस्।
VPN कन्टेनरको नेटवर्क नेमस्पेस साझा गर्ने एप्लिकेसन कन्टेनरको आफ्नै इन्टरफेस हुँदैन, त्यसैले टनेल असफल हुँदा यसले केही पनि पठाउन सक्दैन भनी ठान्न सजिलो हुन्छ। त्यो अनुमान महत्त्वपूर्ण हुने असफलता मोडमा गलत छ। यदि VPN प्रक्रिया मर्छ र नेमस्पेस बाँकी रहन्छ भने एपले आफ्ना सकेट राख्छ र नेमस्पेसले आफ्ना मार्ग राख्छ, र ट्राफिक अझै स्थापित मार्गमा जारी रहन्छ। साँचो किल स्विच भनेको स्पष्ट फिल्टरिङ नीति र रनटाइमको जीवनचक्रका परीक्षण हो, सुरुवाती निर्भरता होइन।
नेमस्पेस साझा गर्नु किल स्विच किन होइन
नेमस्पेस साझा गर्नु भन्नाले एपले VPN कन्टेनरका इन्टरफेस, ठेगाना र मार्ग तालिका प्रयोग गर्छ। साझा नेमस्पेस सुरक्षित रहेसम्म यसले एपको नेटवर्कसम्मको स्वतन्त्र बाटो हटाउँछ, र टनेल हराउँदा त्यो नेमस्पेसले के गर्छ भन्ने कुरा केही बताउँदैन।
Compose का निर्भरता सर्तहरूले एपको सुरुवात निर्भरता स्वस्थ नहुन्जेल ढिलो पार्न सक्छन्। यसले समयको एउटा क्षण मात्र समेट्छ र पछिको कुनै असफलता समेट्दैन, त्यसैले यो सुरुवाती क्रमको उपकरण हो, निरन्तर एग्रेस फायरवाल होइन।
कन्टेनर बाहिर निस्कँदा वास्तवमा के हुन्छ
तीन घटना छुट्याउनुहोस्। कन्टेनरभित्रको VPN प्रक्रिया कन्टेनर चलिरहँदा मर्न सक्छ। कन्टेनर रोकिन वा हटाइन सक्छ, जसले नेमस्पेस नष्ट गर्छ। कन्टेनर फेरि बनाइन सक्छ, जसले नयाँ नेमस्पेस र नयाँ नियम बनाउँछ।
पहिलो अवस्थामा नेमस्पेस रहन्छ, पूर्वनिर्धारित मार्ग अझै भौतिक इन्टरफेसतर्फ देखाउन सक्छ, र एप सिधै पठाउन जारी राख्छ। दोस्रो अवस्थामा निर्भर एपले सामान्यतया जडान पूरै गुमाउँछ, किनकि यसको नेमस्पेस हरायो। तेस्रो अवस्थामा एप टनेल तयार हुनुअघि नयाँ नेमस्पेसमा फेरि जोडिन सक्छ। हरेक अवस्थालाई फरक परीक्षण चाहिन्छ, र केवल व्यवस्थित डिस्कनेक्ट समेट्ने डिजाइनले सबैभन्दा कम रोचक अवस्था समेट्छ।
स्पष्ट एग्रेस नीति बनाउनुहोस्
नीति साझा नेमस्पेसभित्र लेख्नुहोस् ताकि यो एपका प्याकेटमा लागू होस्। आकार पूर्वनिर्धारित खारेज हो साँघुरा अपवादसहित: loopback, टनेलको इन्टरफेस, र टनेल यातायातलाई आवश्यक पर्ने विशेष एन्डपोइन्ट ठेगाना र पोर्ट।
एन्डपोइन्ट अपवाद टनेल माथि उठ्नुअघि हुनैपर्छ, नत्र VPN क्लाइन्ट आफ्नो सर्भरसम्म पुग्न सक्दैन। यही कारण नियम समूहले भौतिक इन्टरफेसलाई सामान्य रूपमा अनुमति दिनुको सट्टा बाह्य यातायातलाई स्पष्ट रूपमा अनुमति दिन्छ। नेमस्पेसमा IPv6 जडान भए IPv6 नियम पनि थप्नुहोस्, किनकि केवल IPv4 भएको नीतिले अर्को परिवार खुला छोड्छ।
DNS पनि नीतिको भाग हो। यदि एपले नामहरू टनेलभित्र मात्र पहुँचयोग्य रिजोल्भरमार्फत समाधान गर्छ भने टनेल तल हुँदा खारेज नियमले समाधान तोड्छ, र यो किल स्विचका लागि सही व्यवहार हो। यही तपाईंले चाहनुभएको हो कि होइन सचेत रूपमा निर्णय गर्नुहोस्।
जीवनचक्र परीक्षण गर्नुहोस्, डिस्कनेक्ट मात्र होइन
टनेल स्वस्थ हुँदा नयाँ हानिरहित अनुरोध पठाउनुहोस्, त्यसपछि VPN प्रक्रिया मार्नुहोस् र अर्को पठाउनुहोस्। कन्टेनर रोकिएपछि, पुनःसुरु भएपछि र फेरि बनेपछि दोहोर्याउनुहोस्। नयाँ अनुरोध महत्त्वपूर्ण छ किनकि नयाँ रोक्ने नियम परिवर्तनबाट विद्यमान जडान बाँच्न सक्छ।
रोक्ने संयन्त्रका रूपमा स्वास्थ्य जाँच वा एग्जिट IP खोजीमा भर पर्नुहोस् न। जाँचले अवस्था हेर्छ र रिपोर्ट गर्छ; नीतिले ट्राफिक नियन्त्रण गर्छ। दुवै एउटै परिनियोजनका हुन्, र ती एकअर्काका विकल्प होइनन्।
नियम रेकर्ड गर्नुहोस् ताकि परीक्षण अद्यावधिकबाट बाँचोस्
हरेक असफलता अवस्थाको अपेक्षित नतिजा परिनियोजन कागजातमा त्यसलाई कार्यान्वयन गर्ने नियमसँगै लेख्नुहोस्। त्यो रेकर्डले इमेज अद्यावधिक वा रनटाइम उन्नयनपछि त्यही परीक्षण चलाउन दिन्छ, जब नेमस्पेसको व्यवहार वा पूर्वनिर्धारित मार्ग कसैले compose फाइल सम्पादन नगरी बदलिन सक्छन्।
VPN एन्डपोइन्टको आवश्यक बाह्य मार्गलाई एपको असीमित एग्रेसबाट छुट्टै राख्नुहोस्, र DNS तथा IPv6 लाई अभिप्रेत कभरेजभित्र राख्नुहोस्। यदि नीतिले सुविधाका लागि सम्पूर्ण भौतिक इन्टरफेसलाई अनुमति दिन्छ भने किल स्विच गइसक्यो। Docker को नेटवर्क कागजातले नीति बनेको साझा नेमस्पेस व्यवस्थाको वर्णन गर्छ, र रनटाइमको व्यवहारमा शंका हुँदा हेर्नुपर्ने सन्दर्भ त्यही हो।