एका डेस्कटॉपवर दोन VPN क्लायंट: काय टक्कर घेते आणि काय चालते
दोन क्लायंट डीफॉल्ट रूट, रिझोल्व्हर आणि फिल्टर ड्रायव्हरसाठी भांडतात. इग्रेस कोणाकडे आहे ते नोंदवा, नंतर दुसरी बोगदा VM किंवा netns ने वेगळी करा.
तुमचा दुसरा क्लायंट जोडतो, पहिल्याची संसाधने रिझोल्व्ह होणे थांबते, आणि तिकिटात म्हटले आहे की कामाच्या VPN ने वैयक्तिक VPN तोडली. दोषाच्या अर्थाने काहीही तुटलेले नाही: दोन्ही क्लायंटनी ज्यासाठी ते बनवले गेले तेच केले, आणि मशीनकडे फक्त एक राउटिंग टेबल आहे. टक्कर अशा चार संसाधनांवर आहे जी प्रत्येक क्लायंट स्वतःची मानतो. ती क्रमाने पूर्ण करा, आणि उपाय सहसा दुरुस्तीऐवजी डिझाइनची निवड बनतो.
पायरी 1: इग्रेस कोणाकडे आहे ते शोधा
काहीही बदलण्यापूर्वी सध्याचा इग्रेस निर्णय वाचा. सार्वजनिक पत्त्यासाठीचा रूट लुकअप सांगतो की पॅकेट आता कोणते इंटरफेस आणि पुढील हॉप वापरेल, आणि हेच कोण जिंकले याचे उत्तर आहे. क्लायंटनी तयार केलेल्या इंटरफेस नावांशी त्याची तुलना करा, ज्यात सहसा उत्पादनाचे किंवा प्रोटोकॉलचे नाव असते. लुकअप तुम्ही अपेक्षा न केलेल्या बोगद्याकडे दाखवत असेल, तर तुम्ही टक्कर आधीच शोधली आहे.
ip route get 1.1.1.1
ip route show default
route print
काही क्लायंट डीफॉल्ट रूट अजिबात बदलत नाहीत; ते दोन अर्धे जोडतात, एक पत्ता-जागेच्या खालच्या अर्ध्यासाठी आणि एक वरच्या अर्ध्यासाठी, जे मिळून सर्व काही व्यापतात. यामुळे मूळ डीफॉल्ट रूट दिसत राहतो आणि हाताने केलेली दुरुस्ती बरोबर वाटते, तर रहदारी अजूनही बोगद्यातूनच जाते. फक्त डीफॉल्ट नोंदीची उपस्थिती नाही, मेट्रिक आणि प्रिफिक्सची लांबी वाचा.
जर दोन्ही क्लायंट एकाच मेट्रिकसह एकाच प्रिफिक्सचा दावा करत असतील तर थांबा. कर्नल एक निवडेल, आणि दुसरा काहीही वाहून नेणार नसतानाही जोडलेला दिसेल.
पायरी 2: रिझोल्व्हर आणि ओव्हरलॅपिंग प्रिफिक्स तपासा
DNS ही दुसरी टक्कर आहे, आणि ती एक वेगळे लक्षण निर्माण करते: पत्ते चालतात पण नावे अयशस्वी होतात. प्रत्येक क्लायंट स्वतःचा रिझोल्व्हर लादतो, आणि पुढील क्वेरींसाठी शेवटी लिहिणारा जिंकतो. क्लायंटचे सेटिंग्ज पान वाचण्याऐवजी प्रत्येक लिंकसाठी काय वापरते ते रिझोल्व्हर सेवेला विचारा.
resolvectl status
Get-DnsClientServerAddress
dig +short intranet.corp.example
मग दोन्ही नेटवर्क वापरत असलेल्या खाजगी प्रिफिक्सची तुलना करा. दोन्ही बाजू एकाच श्रेणीतून वाटप करत असतील, तर क्लायंट-बाजूची कोणतीही व्यवस्था ते सुधारणार नाही, कारण मशीन सांगू शकत नाही की कोणते 10.0.0.0/8 गंतव्य कोणत्या बोगद्याचे आहे. एका बाजूला पुन्हा क्रमांक देणे किंवा भाषांतर करणे आवश्यक आहे, आणि हे कॉन्फिगरेशन बदल नसून नेटवर्क मालकांशी बोलणे आहे. ओव्हरलॅप ही एकमेव टक्कर आहे जिथे प्रामाणिक उत्तर असे आहे की डिझाइन बदलावे लागेल.
प्रिफिक्स ओव्हरलॅप होत असतील तर इथे थांबा. या यादीतील पुढील सर्व काही त्यांचा ओव्हरलॅप होत नाही असे गृहीत धरते.
पायरी 3: टिकून राहणारी विभक्तता पद्धत निवडा
विश्वासार्ह पद्धती एकाच राउटिंग टेबलावर दोन क्लायंट चालवणे टाळतात. दोन्ही खाजगी नेटवर्कपर्यंत पोहोचणारे स्प्लिट-टनेल धोरण असलेला एक क्लायंट सर्वात सोपा आहे, जर गंतव्ये ओव्हरलॅप होत नसतील आणि धोरणाचा मालक सहमत असेल. आभासी मशीन किंवा नेटवर्क नेमस्पेस ही पुढील पायरी आहे, कारण प्रत्येकाला स्वतःचे टेबल आणि स्वतःचा रिझोल्व्हर मिळतो.
sudo ip netns add vpn2
sudo ip netns exec vpn2 ip link show
sudo ip netns exec vpn2 curl -sI https://intranet.corp.example/
नेमस्पेस दुसऱ्या ऑपरेटिंग सिस्टमशिवाय आभासी मशीनसारखेच विभक्तीकरण देते, पण त्याच्या कडा खडबडीत आहेत: बोगदा उपकरण त्यात हलवावे लागते, आणि अनुप्रयोग त्याच्या आत सुरू करावा लागतो. व्यवस्थापित कामाच्या क्लायंटसोबत वैयक्तिक VPN साठी वेगळे भौतिक उपकरण हा बहुतेकदा सर्वात कमी आश्चर्यकारक पर्याय असतो. एका बोगद्याला दुसऱ्यात रचणे ही विभक्तता पद्धत नाही; आतील टोक बाहेरील बोगद्यातून पोहोचण्यायोग्य राहिले पाहिजे, आणि ही रचना वर MTU आणि विलंबाच्या समस्या जोडते.
एक पद्धत निवडा आणि का ते लिहा. एका अनुप्रयोगासाठी नेमस्पेस आणि बाकीच्यांसाठी स्प्लिट टनेल मिसळल्यास मूळ टक्कर अधिक कठीण डीबग करण्याजोग्या स्वरूपात पुन्हा तयार होते.
पायरी 4: त्याच सत्रातून दोन्ही नेटवर्क सत्यापित करा
प्रत्येक खाजगी नेटवर्कवर एक संसाधन त्या वातावरणातून तपासा जिथे अनुप्रयोग प्रत्यक्षात चालतो, तुमच्या शेलमधून नाही जर ॲप नेमस्पेसच्या आत चालत असेल. इग्रेस इंटरफेस, रिझोल्व्ह झालेला पत्ता आणि प्रतिसाद कोड एकत्र तपासा, कारण तीनपैकी एकातील यश इतरांमधील अपयश लपवू शकते. रीबूटनंतर पुन्हा करा, कारण क्लायंट कोणत्या क्रमाने सुरू होतात ते कोण जिंकेल हे ठरवते. तोच क्रम लोक नोंदवायला विसरतात.
curl -sI https://intranet.corp.example/
curl -sI https://files.personal.example/
ip route get 10.20.30.40
प्रत्येक नेटवर्कसाठी क्लायंट आवृत्त्या, इंटरफेस, रिझोल्व्हरची स्थिती आणि प्रिफिक्स नोंदवा. जेव्हा क्लायंट अद्ययावत होतो आणि त्याचे रूट वर्तन बदलते, तेव्हा ती नोंद पाच मिनिटांची दुरुस्ती आणि पुनर्बांधणी यातील फरक असतो. पुढील व्यक्ती कोणता बोगदा आधी उभा राहिला याची तुमची आठवण सामायिक करणार नाही.
डीफॉल्ट रूटचा मालक इंटरफेस, प्रत्येक नाव वापरत असलेला रिझोल्व्हर, दुसरा बोगदा वेगळा करणारी पद्धत, आणि रीबूटनंतर प्रत्येक नेटवर्कसाठी एका विनंतीचा निकाल तुम्ही सांगू शकत असाल तेव्हा यादी पूर्ण होते. यापेक्षा कमी काहीही हे आज योगायोगाने चालणारे कॉन्फिगरेशन आहे.