VPN रूट कॅश तुमचा बदल लपवत आहे का? तीन गोष्टी तपासा
लिनक्समध्ये रिकामा करण्यासाठी जागतिक रूट कॅश नाही। जुनी चाचणी सहसा जुना सॉकेट, NAT नोंद किंवा पुन्हा लागू केलेली प्रोफाइल दर्शवते। तीन तपासण्या त्यांना वेगळे करतात।
बदल लागू न झाल्यावर रूट कॅश रिकामा करणे ही पहिली प्रवृत्ती आहे, आणि आधुनिक लिनक्सवर ते व्यर्थ श्रम आहे: जागतिक IPv4 रूट कॅश वर्षांपूर्वी काढून टाकली गेली, त्यामुळे ip route show cache काहीही छापत नाही आणि रिकामे करण्यासारखे काही नाही। तुम्हाला फसवणारी स्थिती एक थर वर राहते: सॉकेटमध्ये, NAT मॅपिंगमध्ये, रिझोल्व्हरमध्ये किंवा जुनी प्रोफाइल पुन्हा लागू केलेल्या नेटवर्क मॅनेजरमध्ये। तीन प्रश्न ती प्रकरणे वेगळी करतात: चुकीचा मार्ग नव्या प्रवाहातून येत आहे की जुन्या कनेक्शनमधून, तुमचे प्लॅटफॉर्म रूट कॅश ठेवते की नाही, आणि स्थिती राउटिंगमध्ये आहे की त्याच्या वर। इंटरफेस रीसेट करण्यापूर्वी त्यांची उत्तरे द्या।
तपासणी एक: जुना मार्ग नव्या प्रवाहातून येत आहे का?
प्रस्थापित कनेक्शन ज्या रूटसह तयार झाले ती रूट टिकवते। म्हणूनच टनलवरचे SSH सत्र राउटिंग टेबलचा बदल टिकून राहते, तर नवे सत्र लगेच नवा मार्ग घेते, आणि म्हणूनच «बदलाने काहीही केले नाही» याचा अर्थ अनेकदा «जुने सॉकेट ते अजून धरून आहे» असा होतो। आधीच उघडलेल्या विंडोने नाही, नव्या प्रक्रियेने चाचणी करा।
ss -tnp | head
ip route get 1.1.1.1
curl -m 5 -sS -o /dev/null -w '%{remote_ip}
' https://example.com
शेवटचा आदेश नव्या कनेक्शनने प्रत्यक्षात गाठलेला पत्ता छापतो, आणि स्थिती विंडोवर विश्वास न ठेवता खरा मार्ग पाहण्याचा हा सर्वात स्वस्त उपाय आहे। त्याची तुलना namespace किंवा इंटरफेसने वापरायच्या स्रोत पत्त्याशी करा।
नवा प्रवाह योग्य मार्ग घेतो आणि जुना सुधारत नाही, तर राउटिंग पाहणे थांबवा। रूट योग्य होती; सत्र जुने होते।
तपासणी दोन: तुमचे प्लॅटफॉर्म रूट कॅश ठेवते का?
लिनक्सवर उत्तर नाही आहे, बहुतेक मार्गदर्शक ज्या अर्थाने म्हणतात त्या अर्थाने। फेकून देण्यासाठी जागतिक गंतव्य कॅश नाही, आणि निवडलेली रूट धरून ठेवणारी प्रति-सॉकेट नोंद सॉकेटसोबत सोडली जाते। ip-route पुस्तिकेचा कॅश विभाग ऐतिहासिक वर्तन वर्णन करतो, सध्याच्या कर्नेलवर तुम्ही रिकामे करू शकता असे नाही।
इतर प्लॅटफॉर्म वेगळे आहेत, आणि सल्ले कॉपी करणे येथेच चुकते। Windows गंतव्य कॅश ठेवते, जी तुम्ही netsh interface ip delete destinationcache ने स्वच्छ करू शकता। BSD आणि macOS route -n get द्वारे प्रति-गंतव्य शोध दाखवतात, आणि त्यांचे कॅश स्वतःच्या वेळापत्रकानुसार संपतात। यापैकी एकावर चालणारा आदेश लिनक्सवर काहीच करत नाही, म्हणूनच तोच उपाय वापरून पाहणाऱ्या निम्म्या लोकांना तो अपयशी वाटतो।
NAT किंवा conntrack टेबल रूट कॅश नाही, जरी ती तेच लक्षण निर्माण करते। तुमच्या बदलापूर्वी अनुवादित झालेला प्रवाह आपला अनुवाद टिकवतो, आणि राउटिंग धोरण पुढे गेल्यावर बराच काळ conntrack -L तो दाखवत राहील। ती जुनी स्थिती आहे, पण रूट स्वच्छ करणे तिला स्पर्श करणार नाही।
तपासणी तीन: स्थिती राउटिंगमध्ये आहे की त्याच्या वर?
दुसरे काही वाचण्यापूर्वी सध्याचा शोध वाचा: गंतव्यासाठी ip route get, नंतर from आणि स्रोत पत्त्यासह तोच आदेश, नंतर ip rule show। हे तीन तुमच्या हेतूशी जुळत असतील, तर राउटिंग सुधारण्याचा थर नाही, आणि जुने निरीक्षण दुसरीकडून आले आहे।
तीन नेहमीचे संशयित राउटिंगच्या वर बसतात। नेटवर्क मॅनेजर तुम्ही रूट हटवल्यानंतर काही सेकंदात साठवलेल्या प्रोफाइलमधून ती पुन्हा स्थापित करू शकतो, त्यामुळे तुमचा बदल परत येत असल्यासारखा दिसतो; टेबल पुन्हा संपादित करण्यापूर्वी nmcli connection show --active आणि युनिटची स्थिती तपासा। रिझोल्व्हर कॅश जुना पत्ता परत देतो, जो कॅश तोडणाऱ्या साधनाने तेच नाव विचारेपर्यंत राउटिंग अपयशासारखा दिसतो। अॅप्लिकेशनचा कनेक्शन पूल जुन्या गंतव्यासाठी कार्यरत सॉकेट ठेवतो आणि कर्नेलला कधीही नवा निर्णय विचारत नाही।
तीन उत्तरे तुम्हाला काय निष्कर्ष काढू देतात
उत्तरे एकत्र ठेवा आणि दुरुस्ती अनेकदा स्वतः सांगते। रूट कॅश नसलेल्या प्लॅटफॉर्मवर नवा प्रवाह चुकीचा मार्ग घेतो म्हणजे धोरण खरोखर चुकीचे आहे, म्हणून टनलने स्थापित केलेले नियम आणि टेबल वाचा। जुने सत्र अडकलेले असताना नवा प्रवाह योग्य मार्ग घेतो म्हणजे समस्या अॅप्लिकेशन किंवा सॉकेटमध्ये आहे। दोन्ही प्रकरणांत योग्य रूटसह तुटलेले निरीक्षण म्हणजे स्थिती राउटिंगच्या वर आहे।
सामान्य रिफ्रेशला विरोध करा। नेटवर्क स्टॅक पुन्हा सुरू करणे किंवा ज्या मशीनचा डीफॉल्ट रूट टनल आहे तिथे प्रत्येक रूट हटवणे हे तुम्ही ते दुरुस्त करण्यासाठी वापरत असलेलेच कनेक्शन तोडू शकते, आणि कोणता थर अपयशी झाला हे सांगणारा पुरावा नष्ट करते।
खरोखर काही स्वच्छ करायचे असल्यास, निदानाशी जुळणारी सर्वात लहान गोष्ट स्वच्छ करा: एका प्रक्रियेचे सॉकेट, एक conntrack नोंद, रिझोल्व्हर कॅश। मग तीच नव्या-प्रवाहाची चाचणी पुन्हा करा आणि काय बदलले ते लिहा।
तुमच्या नोंदींमध्ये तीन स्थिती वेगळ्या ठेवा
साठवलेली कॉन्फिगरेशन, सध्याचा शोध आणि निरीक्षित प्रवाह या तीन वेगळ्या वस्तुस्थिती आहेत, आणि त्यांना «कॅश» मध्ये एकत्र करणे हेच दोष पुन्हा निर्माण करणे कठीण करते। रूटचा मालक प्रोफाइल किंवा युनिट, ip route get चे आउटपुट, आणि प्रत्यक्ष कनेक्शनचा स्रोत व गंतव्य लिहा।
त्यांच्या शेजारी प्लॅटफॉर्म आणि क्लायंट आवृत्ती लिहा, कारण Windows गंतव्य कॅश स्वच्छ करणारा उपाय लिनक्स होस्टवर लागू होणारा उपाय नाही, आणि दोघांमध्ये कॉपी केलेली प्रक्रिया चुकीचा धडा शिकवते। तुम्ही समस्या दुसऱ्या कोणाला दिल्यास, त्या तीन ओळी त्याला अंदाज न लावता अपयशी स्थिती पुन्हा निर्माण करू देतात।