સર્વર બદલતી વખતે કિલ સ્વિચ ટ્રાફિક કેમ ખેંચી લે છે
સર્વર બદલવા દરમિયાન કિલ સ્વિચ ટ્રાફિક કેમ બ્લોક કરે છે, તે સમયે ક્લાયન્ટ શું કરે છે અને સામાન્ય વિરામને અટવાયેલા બ્લોકથી કેવી રીતે અલગ પાડવો.
તમે નજીક લાગતું સર્વર પસંદ કરો છો, કનેક્ટ દબાવો છો અને નવું ટનલ તૈયાર થાય તે પહેલાં બ્રાઉઝર લોડ કરવાનું બંધ કરી દે છે. આઇકન કનેક્ટ થતી સ્થિતિમાં બદલાય છે અને દરેક ટૅબનો સમય પૂરો થાય ત્યાં સુધી ત્યાં જ રહે છે. આ વિરામ સામાન્ય રીતે કિલ સ્વિચનું ડિઝાઇન મુજબનું કામ છે: ક્લાયન્ટ પાસે મોકલવા માટે ટનલ ન હોય ત્યાં સુધી ટ્રાફિક બ્લોક રહે છે. વિરામ સ્વીકાર્ય છે કે નહીં તે તે સેકન્ડોમાં ક્લાયન્ટ શું કરે છે અને તે કહે છે ત્યારે બ્લોક ખરેખર ઉઠે છે કે નહીં તેના પર આધાર રાખે છે.
બે સર્વર વચ્ચે ક્લાયન્ટ શું કરે છે
એન્ડપોઇન્ટ બદલવો એ એક સ્વિચ નહીં, પણ ઘણા પગલાં છે. ક્લાયન્ટ વર્તમાન ટનલ તોડે છે, પોતાના બ્લોકિંગ નિયમો અપડેટ કરે છે, નવું એન્ડપોઇન્ટ રિઝોલ્વ કરીને ટનલની બહાર તેને પહોંચે છે, પછી નવા રૂટ મૂકે છે અને બ્લોક ઉપાડે છે. તમે અનુભવો છો તે અંતર પહેલા પગલા અને છેલ્લા પગલા વચ્ચે હોય છે.
અહીં ઝડપ કરતાં ક્રમ વધુ મહત્વનો છે. જો નવા એન્ડપોઇન્ટ માટેના અપવાદ પહેલાં બ્લોક નિયમો લાગુ થાય, તો ક્લાયન્ટ હેન્ડશેક પૂરો કરી શકતો નથી અને ટાઇમઆઉટ સુધી કનેક્ટ થતી સ્થિતિમાં રહે છે. જો અપવાદ જૂના સર્વરના સરનામાની નકલ હોય, તો નવો હેન્ડશેક બીજા કોઈ પણ આઉટબાઉન્ડ પેકેટ જેવો દેખાય છે અને કાઢી નાખવામાં આવે છે. બંને કિસ્સા બ્રાઉઝરથી એકસરખા દેખાય છે, એટલે છ સેકન્ડ પછી સુધરતો બદલાવ અને કદી ન સુધરતો બદલાવ સમાન કારણ ધરાવી શકે છે.
નવા એન્ડપોઇન્ટ માટે બ્લોકમાં એક છિદ્ર જોઈએ
ટનલ બનાવવા માટે ક્લાયન્ટે ભૌતિક ઇન્ટરફેસ પર નવા સર્વરના સરનામા અને પોર્ટ પર પેકેટ મોકલવા પડે છે, ઉદાહરણ તરીકે સામાન્ય WireGuard પ્રોફાઇલ માટે UDP 51820 અથવા OpenVPN માટે 1194 અને 443, તમારી પોતાની પ્રોફાઇલ જે નિર્દિષ્ટ કરે તે પ્રમાણે. એ ટ્રાફિક બનવા જઈ રહેલા ટનલની અંદર નથી, એટલે આખા ઉપકરણ માટેનો બ્લોક તેને ગળી જાય છે સિવાય કે મેળ ખાતો પરવાનગી નિયમ હોય.
હોસ્ટનામ આધારિત પ્રોફાઇલ બીજી શરત ઉમેરે છે: લુકઅપ પોતે. જો ક્લાયન્ટ બ્લોક ઉપાડતાં પહેલાં એન્ડપોઇન્ટ રિઝોલ્વ કરે, તો તે કૅશ કરેલું સરનામું વાપરી શકે છે, પણ પ્રોફાઇલ સરનામાં બદલે અથવા કૅશ એન્ટ્રી જૂની થાય ત્યારે હેન્ડશેક એવા સરનામા તરફ જાય છે જેને પરવાનગી નિયમ આવરી લેતો નથી. IPv6 આને દૃશ્યમાન બનાવે છે, કારણ કે ડ્યુઅલ-સ્ટેક એન્ડપોઇન્ટ A અને AAAA બંને રેકોર્ડ પ્રકાશિત કરી શકે છે, અને ફક્ત v4 સરનામું આવરતો પરવાનગી નિયમ ક્લાયન્ટને બ્લોક થયેલા v6 સરનામા સામે ફરી પ્રયત્ન કરતો રાખે છે.
વિકલ્પોના નામ અને ડિફોલ્ટ મૂલ્યો ક્લાયન્ટ અને આવૃત્તિ પ્રમાણે બદલાય છે, એટલે સ્ક્રીનશોટ પરથી અનુમાન ન કરતાં તમારા માટેની દસ્તાવેજી યાદી વાંચો. OpenVPN Connect ની સેટિંગ્સ સંદર્ભ openvpn.net/connect-docs/app-settings-windows પર એક ઉદાહરણ છે કે ક્લાયન્ટ પોતાના બ્લોક અને સ્પ્લિટ-ટનલ વિકલ્પો કેવી રીતે વર્ણવે છે.
Fail-closed એ સ્ટેટ મશીન છે, સ્વિચ નહીં
મોટા ભાગના ક્લાયન્ટ બ્લોકને ફાયરવોલ નીતિ તરીકે ત્રણ સ્થિતિમાં વ્યક્ત કરે છે: ટનલ ચાલુ, ટ્રાફિક ટનલમાંથી જાય છે અને બ્લોક નથી; ટનલ બંધ, બ્લોક સક્રિય; અને સંક્રમણ, બ્લોક સક્રિય સાથે એન્ડપોઇન્ટ માટે કામચલાઉ અપવાદ. ત્રીજી સ્થિતિમાં જ બગ્સ રહે છે, કારણ કે તેને થોડી સેકન્ડોમાં બે વાર બદલાવું પડે છે, અને તેમાંથી બહાર ન નીકળવું કાયમી બ્લોક જેવું જ દેખાય છે.
આ પ્રક્રિયા પ્લેટફોર્મ પ્રમાણે અલગ પડે છે, અને નિષ્ફળતા પણ. Windows Filtering Platform ના ફિલ્ટરમાં વજન હોય છે, એટલે તમારી પરવાનગીને પાછળ છોડતું બ્લોક ફિલ્ટર પરવાનગી હોવા છતાં પેકેટ કાઢતું રહે છે, અને માર્યા ગયેલા ક્લાયન્ટ પ્રોસેસે છોડેલા ફિલ્ટર એપ ગયા પછી પણ મશીનને ઑફલાઇન રાખી શકે છે. macOS ક્લાયન્ટ સામાન્ય રીતે pf નિયમો એન્કરમાં લખે છે, જ્યાં નિયમનો ક્રમ અને ઝડપી નિર્ણય નક્કી કરે છે કે કયો નિયમ લાગુ પડે. Linux ક્લાયન્ટ સામાન્ય રીતે drop નીતિ સાથે nftables અથવા iptables ચેન ચલાવે છે અને એન્ડપોઇન્ટ, ટનલ ઇન્ટરફેસ અને લૂપબેક માટે સ્પષ્ટ પરવાનગી આપે છે. Android નું always-on VPN, VPN વગરના કનેક્શન બ્લોક કરવાના વિકલ્પ સાથે, આ જૂથમાં સૌથી કડક છે, કારણ કે ઓપરેટિંગ સિસ્ટમ બ્લોક આખા ઉપકરણ પર લાગુ કરે છે, એપ દીઠ નહીં.
WireGuard માટે અલગ નોંધ જરૂરી છે, કારણ કે AllowedIPs રૂટિંગ પસંદગીકાર છે, બ્લોકર નહીં. કઈ મંઝિલો ટનલમાં જાય તે તે નક્કી કરે છે; જે પેકેટ પાસે હજી ટનલ નથી તેને Wi-Fi દ્વારા બહાર જતું અટકાવવા માટે તે કંઈ કરતું નથી. ફક્ત WireGuard અને કોઈ ફાયરવોલ નિયમ ન હોય તેવા સેટઅપમાં કિલ સ્વિચ વાસ્તવમાં રૂટની ગેરહાજરી છે, અને કાઢી નાખેલા હેન્ડશેક પછી ભૌતિક ઇન્ટરફેસ પરથી સાચું પેકેટ બહાર જઈ શકે છે.
આઇકન જોવાને બદલે અંતર માપો
સ્થિતિના દીવા પર નહીં, પેકેટ પર નજર રાખો. Linux માં એક ટર્મિનલમાં જાહેર સરનામા પર ધીમું ping શરૂ કરો અને બીજામાં ભૌતિક ઇન્ટરફેસ પર ટનલનો ટ્રાન્સપોર્ટ પોર્ટ કૅપ્ચર કરો:
ping -i 0.2 -c 100 1.1.1.1 | tail -5
sudo tcpdump -ni eth0 'udp port 51820'
બંને ચાલુ હોય ત્યારે ક્લાયન્ટમાં સર્વર બદલો. ત્રણ બાબતો મહત્વની છે: ping કેટલો સમય થંભે છે, કૅપ્ચર દર્શાવે છે કે હેન્ડશેક નવા એન્ડપોઇન્ટ સુધી પહોંચે છે કે નહીં, અને ક્લાયન્ટની સ્થિતિ કનેક્ટેડ થવાના પહેલાં કે પછી ટ્રાફિક પાછો આવે છે. જો ping નું અંતર પહેલાં પૂરું થાય, તો કાં તો બ્લોક વહેલો ઉપાડ્યો છે અથવા ઇન્ડિકેટર સ્વીકારે તે પહેલાં ટનલ ચાલુ છે. જો અંતર પછી પૂરું થાય, તો ઇન્ડિકેટર વધુ પડતું આશાવાદી છે.
Windows માં netsh wfp show state એક સ્નેપશોટ લખે છે, જેમાં તમે એવા બ્લોક ફિલ્ટર શોધી શકો છો જે હજી હાજર છે જ્યારે ક્લાયન્ટ પોતાને ડિસ્કનેક્ટેડ કહે છે. macOS માં sudo pfctl -sr લોડ થયેલા નિયમો અને તેમનો ક્રમ યાદીમાં દર્શાવે છે. કોઈ પણ સ્નેપશોટને ક્લાયન્ટના પોતાના લોગ સાથે જોડો; તમારા ping ની સમયરેખા કહે છે કે બ્લોક મોડો પૂરો થયો કે કદી નહીં.
સામાન્ય અંધારું વિરુદ્ધ અટવાયેલો બ્લોક
થોડો વિક્ષેપ આ સુવિધાનો હેતુ છે, એટલે કોઈ પણ સેટિંગ બદલતાં પહેલાં વર્ગીકરણ કરો:
| What you see | Usually means | Next check |
|---|---|---|
| Two or three seconds of timeouts, then normal browsing | Expected fail-closed gap | Nothing to fix |
| State says connected, traffic stays dead | Block filter or route left behind | Firewall snapshot, client log |
| One app dead while others work | TCP session bound to the old exit address | Restart the app |
| LAN devices unreachable after the switch | LAN exception not reapplied | Allow-LAN or split-tunnel setting |
| New server hangs, the old one reconnects | Permit covers only the old address | Resolved address of the new host, including AAAA |
જો તમે બીજી કે પાંચમી હરોળમાં આવો, તો પરીક્ષણ માટે કિલ સ્વિચ બંધ ન કરો, કારણ કે તે રૂટિંગ બગને લીકમાં ફેરવે છે. ક્લાયન્ટની સેવા ફરી શરૂ કરો, અથવા જ્યાં પ્રોસેસ માર્યા પછી પણ ફિલ્ટર ટકે છે ત્યાં મશીન રીબૂટ કરો, પછી જુઓ કે બ્લોક સાફ થાય છે કે નહીં. જો થાય, તો દોષ બ્લોકનો નહીં પણ બદલાવ દરમિયાનની સફાઈનો છે.
તમારા આગલા બદલાવ પહેલાં ચાર બાબતોની ખાતરી કરો: એન્ડપોઇન્ટ પરવાનગી તમારી પ્રોફાઇલ જે દરેક સરનામા કુટુંબ રિઝોલ્વ કરે તેને આવરે છે, ક્લાયન્ટ લોગ સંક્રમણ પૂર્ણ થયાનું દર્શાવે છે, તમારી ping કસોટી આઇકન નહીં પણ અંતર માપે છે, અને ક્લાયન્ટ બંધ કરવાથી સામાન્ય કનેક્ટિવિટી પાછી આવે છે. જે કિલ સ્વિચ બદલાવ દરમિયાન ટકે અને પછી છોડે તે પોતાનું કામ કરે છે. જે વહેલો છોડે, અથવા કદી ન છોડે, તે ડિબગ કરવા લાયક છે.