பாதுகாப்பாளர் உதவுகிறாரா அல்லது தீங்கு செய்கிறாரா என்பதை மூன்று நிபந்தனைகள் தீர்மானிக்கின்றன: சோதனை எதை வேறுபடுத்த முடியும், எத்தனை தொடர்ச்சியான தோல்விகள் நடவடிக்கையை நியாயப்படுத்துகின்றன, மற்றும் நடவடிக்கை மறுஇணைப்பா அல்லது மாற்றமா. பொது முகவரிக்கு பிங் செய்யும் cron வரி இவற்றில் எதற்கும் நல்ல பதிலைத் தருவதில்லை. அது ஆரோக்கியமான சுரங்கங்களை மீண்டும் இணைக்கிறது, உடைந்தவற்றை அப்படியே விட்டுவிடுகிறது, இரண்டையும் எந்தப் பதிவும் இல்லாமல் செய்கிறது. தக்கவைக்கத் தகுந்த வடிவமைப்பு அந்த மூன்று தேர்வுகளைத் தெளிவாக்குகிறது.

சோதனையே மற்ற அனைத்தையும் தீர்மானிக்கும் பகுதி.

இணையத்திற்கான பிங் உண்மையில் எதை நிரூபிக்கிறது

பொது தீர்வியலுக்கு பிங் செய்வது உள்ளூர் இணையப் பாதை உயிருடன் இருப்பதைக் காட்டுகிறது. சுரங்கம் போக்குவரத்தை எடுத்துச் செல்கிறது என்பதை அது நிரூபிக்காது, முழு சுரங்க சுயவிவரத்தில் பிங் தானே சுரங்கத்தின் வழியாகச் செல்கிறது, எனவே ஆரோக்கியமான பதிலும் உடைந்த சுரங்கமும் ஒரே நேரத்தில் இருக்க முடியும், வாடிக்கையாளர் இன்னும் பொதிகளை அனுப்பிக் கொண்டிருக்கும்போது. சுயவிவரம் பெயர் தேடல்களைச் சுரங்கம் வழியாக அனுப்பினால், DNS தோல்வி இறந்த இணைப்பாகப் படிக்கப்பட்டு எதையும் சரிசெய்ய முடியாத மறுஇணைப்பைத் தொடங்குகிறது.

பிழையின் இரு திசைகளில் ஒன்றும் வெளியேறும் குறியீட்டில் தெரிவதில்லை. அந்த சமிக்ஞையின் மீது கட்டப்பட்ட பாதுகாப்பாளர் cron அட்டவணையுடன் கூடிய நாணயச் சுழற்றல்.

சுரங்கத்திற்குப் பின்னால் வாழும் ஒன்றைச் சோதிக்கவும்

ip -brief addr show tun0
ip route get 10.100.20.10
nc -z -w3 10.100.20.10 443

உள்ளேயிருந்து சோதிக்கவும், மலிவான சரிபார்ப்பு முதலில். இடைமுகம் இருக்கிறதா என்பது சுரங்கம் மேலே இருப்பதைச் சொல்கிறது; தெரிந்த உள் முகவரிக்கான பாதைத் தேடல் போக்குவரத்து அதில் நுழையும் என்பதைச் சொல்கிறது; மறுபக்கத்தில் உள்ள புரவலனுக்கான TCP சோதனை ஏதோ உண்மையில் பதிலளிக்கிறது என்பதைச் சொல்கிறது. echo கோரிக்கைகள் மட்டுமே திசைதிருப்புகின்றன: பல உள் புரவலர்கள் TCP-க்கு மகிழ்ச்சியுடன் பதிலளிக்கின்றன ஆனால் ICMP-ஐ தூக்கி எறிகின்றன, எனவே பிங்கை அடிப்படையாகக் கொண்ட பாதுகாப்பாளர் வேலை செய்வதை ஒருபோதும் நிறுத்தாத சுரங்கத்தை மீண்டும் மீண்டும் இணைக்கிறது.

சோதனையை நேரத்தில் வரம்பிட்டு வைத்து அதற்குத் தனி வெளியேறும் நிலையைக் கொடுக்கவும். முப்பது வினாடிகள் தொங்கும் சோதனை பாதுகாப்பாளரை உள்ளே கட்டப்பட்ட தாமதத்துடன் கூடிய தடங்கல் கண்டறிவானாக மாற்றுகிறது.

ஒரு வரிக்கும் ஒரு சுழற்சிக்கும் இடையே தேர்ந்தெடுக்கவும்

* * * * * nc -z -w5 10.100.20.10 443 || myvpn reconnect

cron உள்ளீடு நினைவகமற்ற ஒரு வரி, கூடுதல் மறுஇணைப்பு எதுவும் செலவாகாத மடிக்கணினிக்கு இது பொருந்தும். கண்காணிப்பில் உள்ள சுழற்சி ஒரு எண்ணிக்கையை வைத்துக்கொண்டு பல தவறுகளுக்குப் பிறகே நடவடிக்கை எடுக்கிறது, இது நிலையற்ற இணைப்பு மறுஇணைப்புகளின் புயலை ஏற்படுத்துவதைத் தடுக்கிறது. எப்படியிருந்தாலும், செயலிழப்பிலிருந்து தப்பி ஜர்னலில் எழுதும் வகையில் அதை ஒரு மேற்பார்வையாளரின் கீழ் இயக்கவும். எந்தப் பதிப்பு குறுகியது என்பதை வைத்தல்ல, தேவையற்ற மறுஇணைப்பு முக்கியமா என்பதை வைத்துத் தேர்ந்தெடுக்கவும்.

failures=0
while sleep 30; do
  if nc -z -w5 10.100.20.10 443; then failures=0
  else failures=$((failures+1)); fi
  if [ $failures -ge 3 ]; then myvpn reconnect; failures=0; fi
done

அந்த சுழற்சி சாளரத்தின் மீதான பின்னத்திற்குப் பதிலாக தொடர்ச்சியான தோல்விகளை எண்ணுகிறது. சாளரத்திற்கு ஒரு கடிகாரமும் மாதிரிகளின் நினைவகமும் தேவை, கையால் கட்டப்பட்ட பாதுகாப்பாளர்களின் பெரும்பாலான பிழைகள் அந்தக் கணக்கிலேயே வாழ்கின்றன.

சேவையக மாற்றம் வேறு ஒரு முடிவு

சேவையகங்களை மாற்றுவது மறுஇணைப்பிலிருந்து வேறுபடுகிறது. முதலில் பழைய இணைப்பைக் கிழிக்கவும், ஏனெனில் முதலாவது இன்னும் முகவரியைப் பிடித்திருக்கும்போது தொடங்கும் இரண்டாவது வாடிக்கையாளர் மோதும். மாற்றுவதற்கு முன் தொடர்ச்சியான தோல்விகளை எண்ணவும், முயற்சிகளை வரம்பிடவும், புதிய இணைப்பு மேலே வந்த பிறகு மீண்டும் சோதிக்கவும், connect கட்டளையின் வெளியேறும் நிலையை நம்புவதற்குப் பதிலாக. தவறான உள்ளமைவு சுழற்சியில் ஒவ்வொரு சேவையகத்திலும் சுற்றக்கூடாது.

முழு சுரங்கத்தின் உள்ளேயிருந்து VPN சேவையகத்தின் சொந்த பொது முகவரியைச் சோதிக்க வேண்டாம். அந்தச் சரிபார்ப்பு அது சோதிக்கும் பொருளையே சார்ந்துள்ளது, சரிபார்க்க வேண்டிய பாதை ஏற்கனவே போய்விட்டாலும் வெற்றியைத் தெரிவிக்கிறது.

எந்தச் சோதனை ஓடியது, என்ன திருப்பிக் கொடுத்தது, எந்த நடவடிக்கை வந்தது என்பதைப் பதிவு செய்யவும். அந்தப் பதிவு மர்மமான மறுஇணைப்பை நோயறியக்கூடிய நிகழ்வாக மாற்றுகிறது.

தொடர்புடைய கட்டுரைகள்