જે Raspberry Pi ને ફક્ત પોતાનો આઉટબાઉન્ડ ટ્રાફિક સુરક્ષિત કરવાનો હોય તેની પાસે બે વાસ્તવિક ડિઝાઇન છે: નેટવર્ક મેનેજરને ટનલનો માલિક બનવા દેવો, અથવા એવી સ્ક્રિપ્ટ રાખવી જે તેની માલિક હોય. બંને ટ્રાફિક વહન કરી શકે છે. તેઓ જુદી જુદી જગ્યાએ નિષ્ફળ જાય છે, અને રાત્રે બે વાગ્યે દૂરથી જે નિષ્ફળતા તમે નિદાન કરી શકો તે જ પસંદ કરવા લાયક છે. માલિકી પર, IPv6 અને DNS સામેલ થાય ત્યારે સંપૂર્ણ ટનલનો અર્થ શું છે તેના પર, અને ટનલ પડે તે ક્ષણે શું થાય છે તેના પર તેમની સરખામણી કરો.

એક ટનલ માટે બે માલિક

ડિઝાઇન A એ સિસ્ટમના નેટવર્ક મેનેજરની અંદરની પ્રોફાઇલ છે: આયાત કરેલી OpenVPN પ્રોફાઇલ અથવા મૂળ WireGuard કનેક્શન, જે બૂટ વખતે Ethernet અને Wi-Fi ઉપર લાવતી એ જ સેવા દ્વારા સક્રિય થાય છે. ડિઝાઇન B એ તમારું પોતાનું યુનિટ છે જે ક્લાયન્ટને સીધું ચલાવે છે, રિઝોલ્વર રૂપરેખા સંપાદિત કરે છે અને પોતાના રૂટ અને ફાયરવોલ નિયમો સ્થાપિત કરે છે. બંને કાયદેસર ડિઝાઇન છે; તેમનો તફાવત એ છે કે રૂટિંગ કોષ્ટક બદલવાની પરવાનગી કોને છે.

નિષ્ફળતાઓ જુદી છે કારણ કે માલિકો જુદા છે. A માં, સક્રિય ન થતી પ્રોફાઇલ ઇન્ટરફેસ ઉપર અને ટનલ નીચે રાખે છે, અને મેનેજરના લોગ કારણ કહે છે. B માં, અડધી સફળ થતી સ્ક્રિપ્ટ એવા રૂટ છોડી જાય છે જે તેમને બનાવનાર પ્રોસેસ પછી પણ ટકી રહે છે. બંને ચલાવવા એ સૌથી ખરાબ પરિણામ છે: બે પ્રોસેસ ડિફોલ્ટ રૂટ લખે છે, બૂટ વખતે બે રિઝોલ્વર ફેરફાર સ્પર્ધા કરે છે, અને ફેરવવા માટે બે સેટ રહસ્યો.

દરેક ટનલ માટે એક માલિક પસંદ કરો અને કંઈપણ પરીક્ષણ કરતા પહેલાં બીજાને નિષ્ક્રિય કરો. બે માલિક એટલે ટનલ ઉપર હોય અને કંઈ રિઝોલ્વ ન થાય ત્યારે જોવા માટે બે જગ્યાઓ. એ જ એક નિયમ Pi VPN ચર્ચાઓમાં વર્ણવેલી મોટાભાગની ગૂંચવણભરી સ્થિતિઓને રોકે છે.

આયાત શું બનાવે છે અને શું નહીં

Raspberry Pi OS Bookworm અને પછીના વર્ઝનમાં ડિફોલ્ટ નેટવર્ક રૂપરેખા સાધન NetworkManager છે, તેથી પ્રોફાઇલ ક્લાયન્ટ ટનલ માટે કુદરતી ઘર છે. આયાત માટે અનુરૂપ પ્લગઇન સ્થાપિત હોવું જરૂરી છે; તેના વિના આયાત અસમર્થિત કનેક્શન પ્રકાર વિશેના સંદેશ સાથે નિષ્ફળ જાય છે, જે અટકીને પ્લગઇન સ્થાપિત કરવાનો પ્રામાણિક સંકેત છે.

nmcli connection import type openvpn file ./provider.ovpn
nmcli connection show
nmcli --ask connection up id provider-name

આયાત પ્રોફાઇલ સંગ્રહે છે. તે સાબિત કરતું નથી કે બીજી બાજુ પહોંચી શકાય છે, અને તે બાંયધરી આપતું નથી કે ફાઇલની દરેક સૂચના રૂપાંતરણ પછી ટકી છે. પરિણામી કનેક્શન ફરી વાંચો અને ઓળખ અને વિશ્વાસ ધરાવતા ભાગો તપાસો: પ્રમાણપત્ર, દૂરનું હોસ્ટ અને પોર્ટ, અને પાસવર્ડ માંગવામાં આવે છે કે સંગ્રહિત થાય છે.

--ask સાથે સક્રિયકરણ શેર કરેલી મશીન પર શેલ ઇતિહાસની બહાર પાસફ્રેઝ રાખે છે. દેખરેખ વિનાના Pi માટે તમે છેવટે ઇચ્છશો કે પ્રોફાઇલ બૂટ વખતે ઉપર આવે, જે હાથે એક વાર ઉપર લાવવાથી અલગ નિર્ણય છે.

સંપૂર્ણ ટનલ, બંને ડિઝાઇનની સરખામણીમાં

સંપૂર્ણ ટનલ રૂટ વિશેનું નિવેદન છે, ઇરાદા વિશે નહીં, અને બંને ડિઝાઇન તેને જુદી રીતે વ્યક્ત કરે છે. પ્રોફાઇલ અભિગમ મેનેજરને ડિફોલ્ટ રૂટ અને તેની રિઝોલ્વર સેટિંગ્સ સ્થાપિત કરવા કહે છે; સ્ક્રિપ્ટ અભિગમ સ્ક્રિપ્ટ જે કહે તે કરે છે, કંઈ ન કરવું પણ સામેલ. કોઈ પણ ડિઝાઇન IPv6 ને આવરી લેતી નથી જ્યાં સુધી તેને કહેવામાં ન આવે, અને અસ્પર્શિત IPv6 ડિફોલ્ટ રૂટ IPv4 સંપૂર્ણ દેખાય ત્યારે ખુશીથી ટનલની બહાર ટ્રાફિક વહન કરશે.

ip -4 route get 198.51.100.23
ip -6 route show default
resolvectl query example.org

રૂટ શોધ માટે દસ્તાવેજી સરનામું વાપરો અને તપાસવાની પરવાનગી હોય તેવા હોસ્ટ સાથે બદલો. પ્રથમ આદેશ બતાવે છે કે Pi સામાન્ય ગંતવ્ય માટે કઈ ઇન્ટરફેસ વાપરશે; બીજો બતાવે છે કે IPv6 ડિફોલ્ટ રૂટ હજી છે કે નહીં; ત્રીજો સાબિત કરે છે કે કયા રિઝોલ્વરે જવાબ આપ્યો. સંપૂર્ણ ટનલ વિશે કોઈપણ દાવો માનતા પહેલાં ત્રણેય વાંચો.

જો પ્રદાતાની સૂચનાઓ સંપૂર્ણ ટનલનું વચન આપે પણ IPv6 ડિફોલ્ટ રૂટ ટકી રહે, તો Pi લીક કરે છે. અપલિંક પર IPv6 નિષ્ક્રિય કરો અથવા પ્રોફાઇલને તેનો દાવો કરવા કહો, અને પછીથી શોધવાને બદલે સભાનપણે નિર્ણય લો.

ખુલ્લી નિષ્ફળતા સામે બંધ નિષ્ફળતા

જ્યારે ટનલ પડે છે, ત્યારે પોતાનો ડિફોલ્ટ રૂટ ગુમાવતું રૂટિંગ કોષ્ટક ફક્ત ભૌતિક અપલિંક પર પાછું જાય છે, અને ટ્રાફિક ખુલ્લામાં ચાલુ રહે છે. તે ખુલ્લી નિષ્ફળતા છે, અને કંઈ રોકે નહીં તો તે બંને ડિઝાઇનનું ડિફોલ્ટ વર્તન છે. મોટાભાગના લોકો અઠવાડિયા પછી ફાયરવોલ લોગ વાંચીને તે શોધે છે.

બંધ નિષ્ફળતા ટનલ નીચે હોય ત્યારે તમારું દૂરસ્થ પ્રવેશ ખર્ચે છે, તેથી સંચાલન માર્ગ માટે સભાન અપવાદની જરૂર છે. એક રીત એ નિયમ છે જે ટનલની બહાર ફક્ત VPN પીઅરનું સરનામું મંજૂર કરે છે:

sudo nft add table inet vpnkill
sudo nft 'add chain inet vpnkill out { type filter hook output priority 0; policy accept; }'
sudo nft add rule inet vpnkill out oifname != "tun0" ip daddr != 203.0.113.24 reject

ઓપરેશનલ ખર્ચની પ્રામાણિક સરખામણી કરો. પ્રોફાઇલ સામાન્ય રીતે આ નિયમ વ્યક્ત કરી શકતી નથી, તેથી બંધ નિષ્ફળતા તમને સ્ક્રિપ્ટ ડિઝાઇન તરફ અથવા ટનલથી સ્વતંત્ર રીતે નિયમ સ્થાપિત કરતા નાના યુનિટ તરફ ધકેલે છે. કોઈપણ સંજોગોમાં, એક અઠવાડિયું અસ્વીકારો લોગ કરો: શાંત અસ્વીકાર તૂટેલી સેવા જેવો જ દેખાય છે, અને જ્યારે વપરાશકર્તા જાણ કરે કે એક સાઇટ લોડ થવાનું બંધ થઈ ગયું ત્યારે તમને કાઉન્ટરની જરૂર પડશે.

સ્ક્રીન વિનાના Pi માટે પસંદગી

જો ઇમેજ પહેલેથી NetworkManager ચલાવે છે, ટનલને કંઈ વિચિત્ર જોઈતું નથી, અને તમે ઇચ્છો છો કે તે અપલિંકને આપોઆપ અનુસરે, તો પ્રોફાઇલ લો. જો તમને નીતિ રૂટિંગ, દરેક ગંતવ્ય માટે પસંદ કરાયેલી ઘણી ટનલ, અથવા ટનલ ઉપર આવે તે પહેલાં હોવો જરૂરી એવો બંધ-નિષ્ફળતા નિયમ જોઈએ, તો સ્ક્રિપ્ટ લો અને બૂટ ક્રમ અને સફાઈ સહિત તેના દરેક ભાગની માલિકી રાખો. બંને ડિઝાઇન ભેળવવી કોઈપણ એક કરતાં વધુ ખર્ચે છે.

તેમની વચ્ચે સ્થળાંતર મુખ્યત્વે ક્રમનો મુદ્દો છે: જૂના માલિકને નિષ્ક્રિય કરો, કોઈ જૂનું રૂટ કે રિઝોલ્વર એન્ટ્રી ટકી નથી તેની ખાતરી કરો, પછી નવું સક્રિય કરો અને બે વાર રીબૂટ કરો. એક રીબૂટ એવી રેસ છુપાવી શકે છે જે બીજું ઉજાગર કરે. ટનલને નહીં, Pi ને પરીક્ષણ કરીને પૂરું કરો: નામ રિઝોલ્વ કરો, IPv4 પરથી કંઈક લાવો, રાખ્યું હોય તો IPv6 પરથી લાવો, પછી ટનલ પાડો અને ખાતરી કરો કે તમે પસંદ કરેલું વર્તન ખરેખર થાય છે. ip link માં ઇન્ટરફેસ પરીક્ષણની શરૂઆત છે, અંત નહીં.

સંબંધિત લેખો