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 દસ્તાવેજીકરણ સીમા અને ઉપકરણ મોડેલનું વર્ણન કરે છે.