Hindi matukoy ng ping watchdog ang sirang tunel mula sa malusog
Mas kaunti ang pinapatunayan ng ping sa internet kaysa sa nakikita. Suriin ang tunel mula sa loob, bilangin ang mga pagkabigo bago kumilos, at ituring ang paglipat ng server bilang hiwalay na desisyon.
Tatlong kondisyon ang nagpapasya kung nakakatulong o nakakasama ang watchdog: ano ang kayang makilala ng pagsusuri, ilang sunod-sunod na pagkabigo ang makatarungan para sa pagkilos, at kung ang pagkilos ay muling pagkonekta o paglipat. Ang isang linyang cron na nagpi-ping sa pampublikong address ay hindi magandang sumasagot sa alinman sa mga ito. Muling ikinokonekta nito ang mga tunel na maayos at iniiwan ang mga sirang tunel, at ginagawa ang dalawa nang walang anumang tala. Ang disenyong karapat-dapat panatilihin ay ginagawang malinaw ang tatlong pagpiling iyon.
Ang pagsusuri ang bahaging nagpapasya sa lahat ng iba pa.
Ano ang tunay na pinapatunayan ng ping sa internet
Ang pagpi-ping sa pampublikong resolver ay nagpapakita na ang lokal na landas ng internet ay buhay. Hindi nito pinapatunayan na nagdadala ng trapiko ang tunel, at sa profile na buong tunel ang ping mismo ay dumadaan sa tunel, kaya ang malusog na sagot at sirang tunel ay maaaring magkasabay habang nagpapadala pa rin ng packet ang kliyente. Kung ipinapadala ng profile ang mga paghahanap ng pangalan sa tunel, ang pagkabigo ng DNS ay binabasa bilang patay na link at nagsisimula ng muling pagkonekta na hindi kayang ayusin ang anuman.
Wala sa dalawang direksyon ng error ang lumilitaw sa exit code. Ang watchdog na itinayo sa signal na iyon ay isang paghagis ng barya na may cron schedule.
Suriin ang isang bagay na nabubuhay sa likod ng tunel
ip -brief addr show tun0 ip route get 10.100.20.10 nc -z -w3 10.100.20.10 443
Suriin mula sa loob, ang pinakamurang tseke muna. Kung may interface, nakataas ang tunel; ang paghahanap ng ruta patungo sa kilalang panloob na address ay nagsasabing papasok doon ang trapiko; ang TCP na tseke patungo sa host sa kabilang panig ay nagsasabing may tunay na sumasagot. Tanging mga kahilingang echo ang nanlilinlang: maraming panloob na host ang masayang sumasagot sa TCP ngunit itinatapon ang ICMP, kaya ang watchdog na nakabatay sa ping ay paulit-ulit na muling ikinokonekta ang tunel na hindi kailanman tumigil sa paggana.
Panatilihing may hangganan sa oras ang pagsusuri at bigyan ito ng hiwalay na exit status. Ang pagsusuring nakabitin ng tatlumpung segundo ay ginagawang detektor ng pagkaantala ang watchdog na may nakapaloob na pagkaantala.
Pumili sa pagitan ng isang linya at isang loop
* * * * * nc -z -w5 10.100.20.10 443 || myvpn reconnect
Ang entry ng cron ay isang linyang walang memorya, na bagay sa laptop kung saan walang gastos ang karagdagang muling pagkonekta. Ang binabantayang loop ay may counter at kumikilos lamang pagkatapos ng ilang pagpalya, na pumipigil sa walang-ayos na link na magdulot ng bagyo ng muling pagkonekta. Sa anumang kaso, patakbuhin ito sa ilalim ng supervisor upang makaligtas sa crash at makasulat sa journal. Pumili batay sa kung mahalaga ang kalabisan na muling pagkonekta, hindi batay sa kung aling bersyon ang mas maikli.
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
Binibilang ng loop na iyon ang sunod-sunod na pagkabigo kaysa sa bahagi sa isang window. Ang window ay nangangailangan ng orasan at memorya ng mga sample, at karamihan sa mga bug sa mga watchdog na ginawa ng kamay ay naninirahan sa aritmetikang iyon.
Ang paglipat ng server ay ibang desisyon
Ang pagpalit ng server ay naiiba sa muling pagkonekta. Punutin muna ang lumang link, dahil ang ikalawang kliyente na magsisimula habang hawak pa ng una ang address ay magbabangga. Bilangin ang sunod-sunod na pagkabigo bago lumipat, limitahan ang mga pagtatangka, at suriin muli kapag nakataas na ang bagong link sa halip na magtiwala sa exit status ng command na connect. Ang maling configuration ay hindi dapat umikot sa bawat server sa isang loop.
Huwag suriin ang pampublikong address ng mismong server ng VPN mula sa loob ng buong tunel. Ang tseke na iyon ay nakadepende sa bagay na sinusubukan nito, at nag-uulat ng tagumpay habang ang landas na dapat patunayan ay wala na.
Itala kung aling pagsusuri ang tumakbo, ano ang ibinalik at anong pagkilos ang sumunod. Ginagawa ng talang iyon ang mahiwagang muling pagkonekta na isang pangyayaring maaaring masuri.