strongSwan कन्फिगरेसनमा कुनै जडान सूचीबद्ध गर्नुले केवल एउटा परिभाषा लोड भएको प्रमाणित गर्छ। यसको अर्थ साथीसँग सम्पर्क गरिएको, IKE SA अवस्थित छ वा कुनै ट्राफिक सुरक्षित छ भन्ने होइन। डेमनले परिभाषा र जीवित एसोसिएसनलाई छुट्टाछुट्टै वस्तुका रूपमा लिन्छ, र तिनीहरूबीचको दूरी जानाजान गरिएको डिजाइन निर्णय हो। कुन वस्तु जाँच गर्दै हुनुहुन्छ भन्ने थाहा हुनुले अस्पष्ट खराबीलाई अर्को ठोस आदेशमा बदल्छ।

लोड गर्नु जोडिनु होइन

लोड गरिएको जडान भनेको अब केमा वार्ता हुन सक्छ भन्ने कथन हो: साथीका ठेगाना, प्रमाणहरू, प्रस्ताव र ट्राफिक छनोटकर्ता। यस कथनमा केही पनि डेमनले कसैलाई फोन गरेको हुनुपर्ने माग गर्दैन। गेटवेले अर्को पक्ष पर्खन सक्छ, सुरुवातमा आफैं पहल गर्न सक्छ वा उपयुक्त ट्राफिकले ब्युँझाउने प्रतीक्षा गर्न सक्छ। तीनवटै वैध छन्, र तीनवटै कन्फिगरेसन फाइलमा सुरुवातको नीति नपढेसम्म एउटै देखिन्छन्।

अपरेटरहरू परिभाषाको सूचीलाई स्थितिको सूची ठानेर पढ्दा समस्यामा पर्छन्। प्रोफाइल छ, त्यसैले टनेल सक्रिय मानिन्छ, र अर्को घण्टा कहिल्यै नबनेको एसोसिएसनका रुटहरूको डिबगिङमा जान्छ।

उल्टो गल्ती पनि त्यत्तिकै सामान्य छ। हराएको प्रोफाइलले मानिसहरूलाई नेटवर्क खराबी खोज्न पठाउँछ जबकि कन्फिगरेसन कहिल्यै लोड भएको थिएन। वस्तुलाई नाम दिनुहोस् र त्यसपछि त्यसलाई अवलोकन गर्ने आदेश चलाउनुहोस्।

तीन वस्तु, तीन अवलोकन

strongSwan ले लोड गरिएको परिभाषा, IKE SA र CHILD SA राख्छ। पहिलो कन्फिगरेसन हो, दोस्रो प्रमाणित नियन्त्रण सम्बन्ध हो र तेस्रो चुनिएको ट्राफिकका लागि वार्ता गरिएको सुरक्षा हो। तिनीहरूका अलग नाम पनि छन्, त्यसैले hq नामको प्रोफाइलले hq-lan नामको child राख्न सक्छ।

तालिकाले प्रत्येक तहलाई त्यो देखाउने आदेशसँग जोड्छ। लग पढ्नुअघि पङ्क्ति पढ्नुहोस्।

LayerWhat it containsCommand
DefinitionPeer addresses, credentials, proposals, and traffic selectorsswanctl --list-conns
IKE SAOne authenticated control channel to the peerswanctl --list-sas
CHILD SAKeys and selectors for the traffic being protectedChild rows under the IKE SA

child माग्नुले पहिले त्यसको जनक IKE SA बनाउँछ जब कुनै हुँदैन। केवल IKE SA माग्नु अर्को कल हो। राम्ररी प्रमाणित हुने नियन्त्रण च्यानलले मागिएको child को ग्यारेन्टी गर्दैन।

यो भिन्नता आंशिक खराबीको क्रममा महत्त्वपूर्ण हुन्छ। IKE SA स्वस्थ हुन सक्छ जबकि child छनोटकर्ताको बेमेल वा साथीले स्वीकार नगर्ने प्रस्तावका कारण असफल हुन्छ। दुई वस्तु फरक कारणले असफल हुन्छन्, त्यसैले तिनीहरू अलग अवलोकनको योग्य छन्।

सुरुवातको कार्य जानाजान छान्नुहोस्

swanctl.conf मा child को start_action ले लोड भएपछिको व्यवहार निर्धारण गर्छ। पूर्वनिर्धारित none ले परिभाषालाई म्यानुअल सुरुवात वा responder का रूपमा प्रयोगका लागि छाड्छ। start ले यसलाई डायल गर्छ, जबकि trap ले उपयुक्त ट्राफिक देखिनासाथ वार्ता गर्ने नीति छाड्छ।

त्यसैले «लोड गर्नुले कहिल्यै टनेल सुरु गर्दैन» र «लोड गर्नुले सधैं एउटा सुरु गर्छ» दुवै गलत हुन्। कार्य प्रोफाइलको भाग हो र यो साथीको भूमिकासँग मिल्नुपर्छ। दुवै गेटवे अर्को पक्ष पर्खिरहे भने मौनता उत्पन्न हुन्छ, टनेल होइन।

trap सँग ट्राफिक छनोटकर्तासँग मिल्नुपर्छ, त्यसैले असम्बन्धित ping ले केही ब्युँझाउँदैन। start सँग साथीको ठेगाना प्रयोगयोग्य हुनुपर्छ र दुवै पक्ष प्रमाणीकरण र प्रस्तावमा सहमत हुनुपर्छ। दुईमध्ये कुनै कार्यले यी सर्तहरूको जाँचको ठाउँ लिँदैन।

पुनःप्राप्ति छुट्टै नीति हो

सुरुवात keepalive होइन। मृत साथीको पहिचान, साथीबाट स्पष्ट बन्द, कुञ्जीहरूको नवीकरण र प्रक्रियाको पुनः सुरुवात जीवनचक्रका फरक घटना हुन् जसका आफ्नै सेटिङ छन्। प्रत्येकलाई जानाजान कन्फिगर गर्नुहोस्, सुरुवाती सुरुवातले सबै ढाक्छ भन्ने अपेक्षा नराखी।

बुटमा उठ्ने र एक घण्टापछि मर्ने टनेल पुनःप्राप्तिको प्रश्न हो। सुरुवातको नीतिले आफ्नो काम गर्यो र त्यसपछि महत्त्वपूर्ण रहन छोड्यो। सुरुवाती वार्तालाई दोष दिनुअघि DPD र कुञ्जी नवीकरणका सेटिङ हेर्नुहोस्।

लोड गरिएका परिभाषा बदल्नु छुट्टै कार्य हो। गैर-पूर्वनिर्धारित सुरुवात नीतिहरूसँग कागजात गरिएका उल्टा कार्यहरू हुन्छन्, र पुनः लोड गर्नु सञ्चालन परिवर्तन हो, प्रत्येक एसोसिएसन ठाउँमै अद्यावधिक भयो भन्ने अनुमान होइन। पुनः लोड चरणबद्ध रूपमा गर्नुहोस्, जहाँ पुनः जोडिनु स्वीकार्य छ। नयाँ प्रमाणित नहुँदासम्म पुरानो कन्फिगरेसन राख्नुहोस्।

रुटिङ डिबग गर्नुअघि के अवस्थित छ जाँच्नुहोस्

तीनवटै अवलोकन क्रममा गर्नुहोस्: लोड गरिएका परिभाषा, सक्रिय IKE SA र child प्रविष्टिहरू। प्रत्येक उत्तरले अर्को प्रश्न साँघुरो बनाउँछ। एउटा चरण छोड्नुभयो भने अन्तमा कहिल्यै नबनेको तह डिबग गर्नुहुनेछ।

जे लोड छ र जे साँच्चै स्थापित छ त्यसबाट सुरु गर्नुहोस्:

swanctl --list-conns
swanctl --list-sas

प्रोफाइल सही हुँदा child हराएको छ भने, यसलाई नामले सुरु गर्नुहोस् र के हुन्छ हेर्नुहोस्। आउटपुटले प्रायः जनक पहिले उठ्यो कि भनेर बताउँछ।

swanctl --initiate --child hq-lan

सक्रिय CHILD SA अन्तिम रेखा होइन। अग्रगमन नियम, रुट र अनुप्रयोगको आफ्नै अधिकार अझै मिल्नुपर्छ। जीवनचक्रले केमा वार्ता भयो भन्ने जवाफ दिन्छ; यसले को सेवा प्रयोग गर्न सक्छ भनेर निर्णय गर्न सक्दैन।

सम्बन्धित लेखहरू