TUN ले के गर्छ, र VPN प्रोटोकलले अझै के गर्नुपर्छ
TUN ले कर्नेल र प्रोग्रामबीच IP प्याकेट सार्छ। ढुवानी, प्रमाणीकरण र इन्क्रिप्सन ती प्रोग्रामले बोल्ने प्रोटोकलको हो।
tun0 र VPN प्रोटोकललाई एउटै कुरा मान्नाले मानिसहरूलाई गलत लगमा पुर्याउँछ। इन्टरफेस एक स्थानीय सीमा हो जहाँ प्रयोगकर्ता-स्थानको प्रोग्रामले कर्नेलसँग IP प्याकेट आदानप्रदान गर्छ। प्रोटोकल भनेको प्याकेट प्राप्त भएपछि त्यो प्रोग्रामले तिनीहरूसँग गर्ने काम हो: ढुवानी, प्रमाणीकरण, इन्क्रिप्सन र एक सहकर्मी। यन्त्र बनाउनाले यीमध्ये केही पनि छान्दैन।
दुई घटक, एक प्याकेट मार्ग
कर्नेलले यन्त्रमा IP प्याकेट लेख्छ, र प्रोग्रामले त्यो फाइल डिस्क्रिप्टरबाट पढ्छ। अर्को दिशामा प्रोग्रामले प्याकेट फर्काएर लेख्छ र कर्नेलले त्यसलाई वास्तविक इन्टरफेसमा आएजस्तै रुट गर्छ। TUN ले IP बोक्छ, TAP ले इथरनेट फ्रेम बोक्छ। त्यो सीमामा प्याकेट पढ्दा फ्रेमिङ देखिन्छ, र यन्त्र ठ्याक्कै त्यहीका लागि हो।
त्यो सीमाभन्दा परको सबै कुरा प्रोग्रामको काम हो। दुई प्रोग्रामले एउटै इन्टरफेस अवधारणा प्रयोग गरेर प्याकेटसँग पूर्ण रूपमा फरक काम गर्न सक्छन्। यन्त्र आफैंलाई अब के हुन्छ भन्नेमा कुनै मत छैन। फाइल डिस्क्रिप्टर प्रोग्रामसँग कर्नेलतर्फ रहेको एकमात्र ह्यान्डल हो।
यन्त्र बनाउनुहोस्, त्यसपछि सीमा हेर्नुहोस्
सीमा परीक्षण गर्दा जानाजान यन्त्र बनाउनुहोस्। स्थायी यन्त्रले त्यसलाई बनाउने प्रक्रियापछि पनि रहन्छ, जुन प्रयोगका लागि उपयोगी छ र पछि भ्रमको सामान्य स्रोत बन्छ। VPN लाई दोष दिनुअघि झन्डाहरू र मालिक जाँच्नुहोस्।
sudo ip tuntap add dev tun9 mode tun user alice
ip -d link show tun9लिङ्कको विवरणले यन्त्रको प्रकार र जोडिएको मालिक देखाउँछ। कुनै प्रक्रियाले त्यसलाई खुला राख्दैन भने त्यसमा लेखिएका प्याकेट कतै जाँदैनन्। प्रक्रिया जोडिएको नभएको यन्त्र लिङ्क सूचीमा स्वस्थ देखिन सक्छ जबकि यसले केही पनि पार गर्दैन।
इन्टरफेसको नामले के वाचा गर्न सक्दैन
इन्टरफेसको नामले इन्क्रिप्सन वा प्रमाणीकरणबारे केही भन्दैन। प्रोग्रामले प्याकेटहरूलाई TLS मा, आफ्नै प्रोटोकलमा, IPsec मा वा केहीमा पनि बेर्न सक्छ। TAP को सट्टा TUN छान्दा सीमामा फ्रेमिङ बदलिन्छ, सुरक्षा डिजाइन होइन। फ्रेमिङको छनोट वास्तविक छ, र यो सुरक्षा प्रश्नभन्दा धेरै सानो छ।
पहिचान पनि उही तरिकाले काम गर्छ: पर्यवेक्षकले तारमा बाहिरी प्रोटोकल देख्छ, कुन स्थानीय यन्त्रले बनायो भन्ने लेबल होइन। अरू केहीजस्तै देखिने सुरुङले त्यो आफ्नो बाहिरी प्रोटोकलका कारण गर्छ, इन्टरफेसको नामका कारण होइन। पर्यवेक्षकले कुन स्थानीय यन्त्रले प्याकेट बनायो देख्न सक्दैन, प्याकेट कस्तो देखिन्छ मात्र देख्छ। उत्पादनको तुलना गर्दा यी दुई प्रश्न अलग राख्नुहोस्, किनकि एउटा उत्तरले कहिल्यै अर्कोलाई जनाउँदैन।
असफल हुने चरणसँग सुधार मिलाउनुहोस्
केही बिग्रँदा असफलताका चरणहरू अलग गर्नुहोस्। हराएको यन्त्र, अनुमतिको त्रुटि र अस्वीकृत लगइनले फरक प्रमाण र फरक सुधार दिन्छन्। पहिले स्थानीय अवस्था पढ्नुहोस्, त्यसपछि प्रोग्रामको आफ्नै लग, त्यसपछि सहकर्मीको दृष्टिकोण। केही बदल्नुअघि तीनै पढ्नुहोस्।
ip -d link show tun0
journalctl -u openvpn-client@corp --since '10 min ago'यन्त्र छ र कुनै प्रक्रियाले त्यसलाई समातेको छ भने स्थानीय सीमा काम गरिरहेको छ र समस्या अझ टाढा छ। यन्त्र छैन भने जतिसुकै प्रमाणपत्र जाँचले पनि सहयोग गर्दैन। तपाईंले नाम दिन सक्ने चरण नै परीक्षण गर्न सक्ने चरण हो। TUN/TAP कागजात ले सीमा र यन्त्रको ढाँचा वर्णन गर्छ।