लॉगमधील P_CONTROL_HARD_RESET_CLIENT_V2: ही त्रुटी आहे का?
hard-reset ऑपकोड सत्र उघडतो, ती खराबी नाही. तुम्हाला प्रत्यक्ष थांबवणारी प्रमाणपत्र, क्रेडेन्शियल किंवा राउटिंग अयशस्वीता शोधण्यासाठी पुढे वाचा.
ही ओळ दर काही सेकंदांनी पुनरावृत्त होते आणि सर्वांचे कारण वाटते: control hard reset नावाचा पॅकेट, जो कुठेही पोहोचत नसलेल्या क्लायंटकडून येतो. ही त्रुटी नाही. हा नवीन सत्राचा पहिला संदेश आहे, आणि पुनरावृत्ती पुढे इतर काहीतरी अयशस्वी होत असल्याचे लक्षण आहे. लेबल काय सांगते आणि कनेक्शनने त्यानंतर काय केले, हे वेगळे करणे हेच संपूर्ण निदान आहे.
ऑपकोड प्रोटोकॉलमधील स्थान सांगतो
OpenVPN एकाच सॉकेटवर अनेक प्रकारचे पॅकेट मल्टिप्लेक्स करतो, आणि ऑपकोड प्राप्तकर्त्याला सांगतो की कोणता प्रकार हातात आहे. hard-reset पॅकेट सत्र उघडतात, नियंत्रण पॅकेट हँडशेक सामग्री वाहतात, पोच पावत्या प्राप्तीची पुष्टी करतात आणि डेटा पॅकेट टनेलचा भार वाहतात. पहिला बाइट वाचल्यास त्या देवाणघेवाणीत पॅकेट कुठे बसतो हे कळते, आणि स्रोत कोडमधील पॅकेट व्याख्या प्रत्येक कुटुंबाचे नाव स्पष्टपणे देतात.
ते एवढेच सांगते. प्रारंभिक क्लायंट रीसेट म्हणून चिन्हांकित पॅकेट सिद्ध करते की पॅकेट तुमच्या निरीक्षण बिंदूपर्यंत पोहोचले आणि सहभागी सत्र सुरू करू इच्छितो. क्लायंटने तुमच्या प्रमाणपत्रावर विश्वास ठेवला, त्याची क्रेडेन्शियल्स स्वीकारली गेली, किंवा डेटा चॅनेल कधीही उपयुक्त झाले, हे ते सिद्ध करत नाही.
V2 प्रत्यय त्या पॅकेट कुटुंबासाठी प्रोटोकॉल पिढीचे चिन्ह आहे, उत्पादन आवृत्ती नाही आणि तुम्ही स्थापित करता ते संचयनही नाही. नावात टनेल रीसेट करणे, सेवा पुन्हा सुरू करणे किंवा कॅशे साफ करण्याशी संबंधित काहीही नाही.
त्या क्षणी क्लायंट प्रत्यक्ष काय करत आहे
क्लायंट सत्र ओळखकर्ता उघडतो, ज्याला दोन्ही बाजू पुढील नियंत्रण रहदारी जोडतील. नियंत्रण-चॅनेल संरक्षण संरचित असल्यास त्या पहिल्या पॅकेटमध्ये आधीच HMAC असतो, जो उर्वरित देवाणघेवाणीवर श्रम खर्च करावा का हे ठरवण्यास प्राप्तकर्त्याला सक्षम करतो. जो प्राप्तकर्ता त्याची पडताळणी करू शकत नाही तो पॅकेट शांतपणे टाकून देतो, म्हणूनच चुकीची सामायिक की रिकाम्या जागेत बोलणाऱ्या क्लायंटसारखी वाटते.
वापरकर्त्याला दिसणारे काहीही अजून घडलेले नाही. कोणतेही प्रमाणपत्र सत्यापित झाले नाही, कोणतेही वापरकर्तानाव सादर झाले नाही आणि कोणताही टनेल पत्ता दिला गेलेला नाही. रीसेट हँडशेकची प्रस्तावना आहे, म्हणून या क्षणी कनेक्शनबद्दलचा कोणताही निर्णय अकाली आहे.
निष्क्रिय पुन्हा-जोडणी लूपमध्ये मनोरंजक तपशील म्हणजे अंतर. प्रगतीशिवाय ठराविक चक्रात पुन्हा प्रयत्न करणारा क्लायंट सामान्यतः पुढे जाण्यापूर्वी नाकारला जातो, आणि कारण पॅकेटच्या नावात नाही, सहभागीच्या लॉगमध्ये आहे.
रीसेटनंतर खरी अयशस्वीता कुठे लपलेली आहे
दोन्ही लॉग शेजारी वाचा आणि रीसेट नसलेली पहिली घटना शोधा. क्लायंटवर प्रमाणपत्र पडताळणी अयशस्वीता ठोस कारणासह नोंदवली जाते: कालबाह्य प्रमाणपत्र, नावातील विसंगती किंवा अज्ञात जारीकर्ता. सर्व्हरवर क्रेडेन्शियल नाकारणे स्वतःच्या कारणासह प्रमाणीकरण अयशस्वीता म्हणून नोंदवली जाते. दोन्ही सर्व्हरच्या नवीन प्रयत्नांकडे पाहण्याच्या पुनरावृत्त दृष्टिकोनापेक्षा खूपच ठोस आहेत.
प्रत्येक लॉग स्वतंत्रपणे वाचण्याऐवजी एक प्रयत्न वेळेच्या शिक्क्याने जुळवा, कारण तीच अयशस्वीता दोन्ही ठिकाणी वेगळ्या शब्दांत आणि वेगळ्या तीव्रतेने दिसते. हार मानणारा सहभागी सामान्यतः कारण सांगतो.
जर कोणताही पक्ष नाकारणे नोंदवत नसेल आणि देवाणघेवाण तरीही थांबत असेल, तर मर्यादा पोहोचक्षमता आहे, विश्वास नाही. परतीची दिशा टाकून देणारा फायरवॉल, मॅपिंग कालबाह्य करणारे नेटवर्क पत्ता अनुवाद उपकरण, किंवा मोठे हँडशेक पॅकेट मारणारी MTU समस्या — सर्वच प्रमाणीकरण त्रुटीशिवाय थांबलेली देवाणघेवाण निर्माण करतात.
grep -nE 'VERIFY|AUTH_FAILED|TLS Error|SIGUSR1' /var/log/openvpn*.log
ती शोध स्वतः निदान नाही, पण एका पावलात तुम्हाला प्रोटोकॉलच्या शब्दसंग्रहातून खऱ्या अयशस्वीता वर्गाकडे नेते.
पडताळणी बंद करणे ही चुकीची प्रतिक्रिया का आहे
रीसेट दिसत राहिल्यास, सर्वात वेगवान वाटणारा उपाय म्हणजे प्रमाणपत्र पडताळणी बंद करणे किंवा काहीतरी जोडले जावे म्हणून नियंत्रण-चॅनेल संरक्षण सोडणे. ते निदान करता येणाऱ्या अयशस्वीतेच्या बदली न करता येणारी अयशस्वीता आणते, आणि नाकारण्यासाठी बांधलेल्या सहभागींना स्वीकारण्याच्या स्थितीत तैनाती ठेवते.
त्याऐवजी प्रत्यक्ष अयशस्वी झालेली मर्यादा बदला. विश्वासाची समस्या प्रमाणपत्र प्राधिकरण आणि त्याचा संदर्भ देणाऱ्या प्रोफाइलची आहे. वेळेची समस्या घड्याळाची आहे. क्रेडेन्शियलची समस्या ती नाकारणाऱ्या प्रमाणीकरण बॅकएंडची आहे, आणि अगम्य सहभागी दोन होस्टमधील मार्गाचा आहे.
सहाय्य संभाषणात ऑपकोड एका गोष्टीसाठी उपयुक्त आहे: सहभागी प्रयत्न करण्याइतका पुढे गेला हे तो सांगतो. त्यानंतर काय घडले हे तुम्हाला जाणून घ्यायचे आहे, आणि पहिले ठोस नाकारणे नोंदवणाऱ्या लॉगमध्ये ते लिहिलेले आहे. तिथून सुरुवात करा, मग रीसेट ओळ कारणासारखी दिसणे थांबवते आणि वेळेच्या शिक्क्यासारखी दिसू लागते.