पूर्ण टनल विरुद्ध एंडपॉइंट रूट: VPN सर्व्हर पोहोचण्यायोग्य ठेवणे
टनल ज्या नेटवर्कची जागा घेते त्यावरूनच प्रवास करते. होस्ट रूट अपवादाची तुलना अनुप्रयोग-स्तरीय सॉकेट मार्कशी करा आणि प्रत्येक कधी अपयशी होते ते जाणून घ्या.
टनलमधून डीफॉल्ट रूट जोडा, आणि टनलचे स्वतःचे पॅकेट त्याचे अनुसरण करतील. मग टेबलमध्ये असा नियम असतो जो स्वतःला पराभूत करतो. सर्व्हरशीचे एन्क्रिप्टेड कनेक्शन ज्या कनेक्शनला स्थापित करण्याचा प्रयत्न करत आहे त्याच्या आतून जाण्याचा प्रयत्न करते.
दोन यंत्रणा तो लूप रोखतात. एक राउटिंग टेबलमध्ये दिसते, दुसरी अनुप्रयोगाच्या आत राहते.
आंतर्गत आणि बाह्य रहदारी वेगवेगळे निर्णय आहेत
अनुप्रयोग पॅकेट व्हर्च्युअल इंटरफेसमध्ये प्रवेश करते आणि एन्कॅप्स्युलेट होते. परिणाम सर्व्हरच्या सार्वजनिक पत्त्यावर पत्ता-युक्त नवीन पॅकेट आहे. त्या पॅकेटला भौतिक नेटवर्कवर रूट आवश्यक आहे, कारण त्यातील काहीही टनलमध्ये प्रवेश करू शकत नाही.
दोन्ही राउटिंग निर्णय आहेत, आणि फक्त पहिला टनलचा आहे. जेव्हा क्लायंट सर्व्हरलाही व्यापणारा डीफॉल्ट रूट स्थापित करतो, तेव्हा बाह्य पॅकेटही पकडले जाते.
लक्षणे तात्काळ आणि संपूर्ण आहेत. हँडशेक पूर्ण होतो आणि नंतर काहीही वाहत नाही, किंवा रूट स्थापित होताच क्षणी कनेक्शन तुटते. दोन्ही प्रसंगी keepalive आता बाहेर जाऊ शकत नाही.
पर्याय एक: एंडपॉइंटसाठी होस्ट रूट
थेट दृष्टिकोन मूळ गेटवेमार्फत सर्व्हरच्या पत्त्यासाठी रूट जोडतो. त्यासाठी एक ओळ लागते. टेबल वाचणाऱ्या प्रत्येकाला ते दिसते. बदल रेकॉर्डमध्ये समजावणेही सोपे आहे.
त्याची कमकुवतता तेव्हा दिसते जेव्हा अंतर्निहित मार्ग बदलतो. साठवलेला रूट जुन्या नेटवर्कचा गेटवे आणि इंटरफेस नावे देतो. Wi-Fi बदलल्यानंतर तो गेटवे नसू शकतो, आणि रूट मागे राहतो, बरोबर दिसतो आणि काहीही करत नाही.
# before the tunnel: which path reaches the endpoint?
ip route get 198.51.100.7
# pin it through the current gateway
ip route add 198.51.100.7/32 via 192.168.1.1 dev wlan0
# after the tunnel is up, confirm the pin survived
ip route get 198.51.100.7
होस्टनेम हे कठीण करते. एंडपॉइंट असे नाव असल्यास जे अनेक पत्त्यांमध्ये सोडवले जाते, तर अपवादाने प्रत्यक्षात वापरला जाणारा पत्ता व्यापला पाहिजे. नंतरचा शोध रूटने कधीही न व्यापलेली गोष्ट परत करू शकतो.
पर्याय दोन: सॉकेट संरक्षित करणे
दुसरा दृष्टिकोन राउटिंग टेबलला कधीही स्पर्श करत नाही. क्लायंट टनल वाहून नेणारे सॉकेट चिन्हांकित किंवा संरक्षित करतो, त्यामुळे ऑपरेटिंग सिस्टम धोरणानुसार त्या सॉकेटची रहदारी टनलबाहेर पाठवते. Android ही यंत्रणा थेट VPN अनुप्रयोगांना देते. डेस्कटॉप क्लायंट फायरवॉल मार्क किंवा डिव्हाइसला बांधण्याच्या कॉलने समतुल्य अंमलात आणतात.
फायदा असा की अपवाद साठवलेल्या गेटवेऐवजी कनेक्शनचे अनुसरण करतो. नेटवर्क बदल अंतर्निहित मार्ग पुन्हा लिहितो, आणि संरक्षित सॉकेट त्याच्यासोबत सरकते कारण ते कधीही पत्त्याला पिन केलेले नव्हते. रूट टेबल स्वच्छ राहते.
किंमत दृश्यमानता आहे. राउटिंग टेबलमध्ये काहीही अपवाद दाखवत नाही, म्हणून होस्ट रूट शोधणाऱ्या पुनरावलोककाला काहीही सापडत नाही आणि तो रचना असुरक्षित आहे असा निष्कर्ष काढू शकतो. संरक्षण क्लायंटच्या कोडमध्ये आणि तो कोड स्थापित करत असलेल्या धोरण नियमांमध्ये राहते.
दोघांमधून निवड
क्लायंट समर्थन देत असल्यास सॉकेट-स्तरीय यंत्रणा निवडा, कारण ती पिन केलेला रूट तोडणाऱ्या नेटवर्क बदलांना टिकून राहते. अपवाद इतर साधनांना दिसावा लागल्यास, किंवा क्लायंट चांगले काही देत नसल्यास होस्ट रूट निवडा.
कोणतीही यंत्रणा सर्व्हरचा पत्ता अजिबात पोहोचण्यायोग्य असण्याची गरज दूर करत नाही. खाजगी गेटवेला सार्वजनिक ऐकण्याचा पत्ता असतो, आणि टनलबाहेर राहिला पाहिजे तोच पत्ता. त्यामागील अंतर्गत नेटवर्क टनल अस्तित्वात आल्यावरच पोहोचण्यायोग्य होतात.
तुम्ही जे निवडले ते टनलच्या मालकीच्या घटकाजवळ ठेवा. हाताने जोडलेला भटकंती होस्ट रूट पुढच्या नेटवर्कपर्यंत काम करतो, आणि मग तो उद्याचा गूढ व्यत्यय बनतो.